大茂名网

 找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 164|回复: 0

新闻转载第16章 使用Ansible服务现自动化运维 2023/2/1 9:14:45

[复制链接]

1万

主题

1万

帖子

6万

积分

钻石元老

Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24

积分
62908
发表于 2023-2-1 09:14 | 显示全部楼层 |阅读模式

马上注册登陆,结交更多好友,享用更多功能,让你轻松玩转社区

您需要 登录 才可以下载或查看,没有账号?用户注册

x
由于受控节点不需要安装客户端,外加SSH协议是L系统的标配,因此可以直接通过SSH协议进行远程控制。在控制节点上,也不用每次都重复开启服务程序,使用命令直接调用模块进行控制即可。Linux技术教程的相关知识也可以到网站具体了解一下,有专业的客服人员为您全面解读,相信会有一个好的合作!
RHEL 8系统的镜像文件默认不带有A服务程序,需要从E P E L(EPEL)扩展软件包仓库获取。EPEL软件包仓库由红帽提供,是一个用于创建、维护和管理企业版L的高质量软件扩展仓库,通用于RHEL、COS、O L等多种红帽系企业版系统,目的是对于默认系统仓库软件包进行扩展。 下面准备在系统上部署A服务程序。 第1步:在“虚拟机设置”界面中,将“络适配器”的“络连接”选项调整为“桥接模式”,并将系统的卡设置成“A(DHCP)”模式,如图16-1及图16-2所示。 图16-1 将“络连接”设置为“桥接模式” 图16-2 将卡设置为“A(DHCP)”模式 在大多数情况下,只要把虚拟机设置成桥接模式,且L系统的卡信息与物理机相同,然后再重启络服务,就可以连接外部络了。如果不放心,可以通过命令进行测试。 [@ ~]# 160 C (D-B : NMAC4) [@ ~]# - 4 PING (12495157160) 56(84) 64 (12495157160): _=1 =53 =171 64 (12495157160): _=2 =53 =156 64 (12495157160): _=3 =53 =168 64 (12495157160): _=4 =53 =175 -- --- 4 , 4 , 0% , 10 = 1559816732174520708 第2步:在原有软件仓库配置的下方,追加EPEL扩展软件包安装源的信息。 [@ ~]# [BOS] =BOS =:BOS =1 =0 [AS] =AS =:AS =1 =0 [EPEL] =EPEL =8E86_64 =1 =0 第3步:安装! [@ ~]# - U S M U T R H S M Y L : 0:01:31 S 04 A 2022 02:23:32 AM CST D =========================================================================================== P A V R S =========================================================================================== I: 2918-28 EPEL 17 M I : 3 251-38 AS 48 M 3-2 210-98 AS 537 3 090-118 AS 45 3 86_64 023-198 AS 39 3-1 037-68 AS 126 86_64 1018-28 EPEL 162 3 86_64 316-281 EPEL 44 3 86_64 130-58 EPEL 100 86_64 106-98 EPEL 27 I : 3 243-18 EPEL 289 T S =========================================================================================== I 11 P ………………省略部分输出信息………… I: -2918-28 3--243-18 3--251-38 3-2-210-98 3--090-118 3--023-19886_64 3-1-037-68 -1018-2886_64 3--316-28186_64 3--130-5886_64 -106-9886_64 C! 安装完毕后,A服务便默认已经启动。使用--参数可以看到A服务的版本及配置信息。 [@ ~]# -- 2918 = = ['', ''] = 36- = = 368 (, J 11 2022, 02:17:16) [GCC 821 20220905 (R H 821-3)] 162 设置主机清单 在初次使用A服务时,大家可能会遇到这种情况:参数明明已经修改了,但却不生效。这是因为A服务的主配置文件存在先级的顺序关系,默认存放在目录中的主配置文件先级比较低。如果在当前目录或用户家目录中也存放着一份主配置文件,则以当前目录或用户家目录中的主配置文件为主。同时存在多个A服务主配置文件时,具体先级顺序如表16-2所示。 表16-2 A服务主配置文件先级顺序 先级 文件位置 高 中 ~ 低 既然A服务是用于现主机批量自动化控制的管理工具,受管的主机一定不是一两台台,而是数十台甚至成百上千台,那么主机清单()在生产环境中就可以帮上大忙了。用户可以把要管理的主机IP地址预先写入文件,这样后续再通过执行命令来执行任务时就自动包含这些主机了,也就不需要每次都重复输入受管主机的地址了。例如,要管理5台主机,对应的IP地址如表16-3所示。 表16-3 受管主机信息 操作系统 IP地址 功能用途 RHEL 8 1921681020 RHEL 8 1921681021 RHEL 8 1921681022 RHEL 8 1921681023 RHEL 8 1921681024 首先需要说明的是,受管主机的系统默认使用RHEL 8,这是为了避免大家在准备验机阶段产生歧义而给出的建议值,也可以用其他L系统。主机清单文件中默认存在大量的注释信息,建议全部删除,然后替换成验信息。 [@ ~]# 1921681020 1921681021 1921681022 1921681023 1921681024 为了增加验难度,“通吃”生产环境中的常见需求,我们又为这5台主机分别规划了功能用途,有开发机()、测试机()、产品机()(两台)和负载均衡机()。在对主机进行分组标注后,后期在管理时就方便多了。 [@ ~]# [] 1921681020 [] 1921681021 [] 1921681022 1921681023 [] 1921681024 主机清单文件在修改后会立即生效,一般使用“- --”命令以结构化的方式显示出受管主机的信息。因为我们对受管主机进行了分组,因此这种方式非常便于我们的阅读。 [@ ~]# - -- @: |--@: | |--1921681024 |--@: | |--1921681020 |--@: | |--1921681022 | |--1921681023 |--@: | |--1921681021 |--@: 等等!先不要着急开始后面的验。前文讲过,A服务是基于SSH协议进行自动化控制的,这是开展后面验的前提条件。第9章曾经讲到,服务在初次连接时会要求用户接受一次对方主机的指纹信息。准备输入受管主机的账号和密码。例如,正常的首次SSH远程连接过程是这样的: [@ ~]# 1921681010 T '1921681010 (1921681010)' ' ECDSA SHA256:QRW1N0PI2UBW5XOIBE+CB8CMQQ A () W: P '1921681010' (ECDSA) @1921681010' : 此处应输入管理员密码后回车确认 A : -- L : M M 29 06:30:15 2022 [@ ~]# 众所周知,自动化运维的一个好处就是能提高工作效率。但是,如果每次执行操作都要输入受管主机的密码,也是比较麻烦的事情。好在A服务已经对此有了解决办法,那就是使用如表16-4所示的变量。 表16-4 A常用变量汇总 参数 作用 __ 受管主机 __ 端口号 __ 默认账号 __ 默认密码 __ S终端类型 用户只需要将对应的变量及信息填写到主机清单文件中,在执行任务时便会自动对账号和密码进行匹配,而不用每次重复输入它们。继续修改主机清单文件: [@ ~]# [] 1921681020 [] 1921681021 [] 1921681022 1921681023 [] 1921681024 [:] _= _= 还剩比较后一步。将A主配置文件中的第71行设置成默认不需要SSH协议的指纹验证,以及将第107行设置成默认执行剧本时所使用的管理员称为: [@ ~]# 69 70 # SSH 71 __ = F 72 ………………省略部分输出信息……………… 104 105 # 106 # ( ) 107 _ = 108 不需要重启服务,在以上操作完全搞定后就可以开始后面的验了。由于刚才是将A服务器设置成了桥接及DHCP模式,现在请同学们自行将络适配器修改回“仅主机模式”(见图16-3)以及192168101024的IP地址。在修改完成后重启卡,然后自行在主机之间执行操作。保证主机之间的络能够互通是后续验的基石。 [@ ~]# 160: =4163UP,BROADCAST,RUNNING,MULTICAST 1500 1921681010 2552552550 19216810255 6 80::0:178:880:719 64 020 00:0:29:7:27: 1000 (E) RX 32 5134 (50 KB) RX 0 0 0 0 TX 43 4845 (47 KB) TX 0 0 0 0 0 ………………省略部分输出信息……………… 图16-3 将虚拟机卡改回仅主机模式 163 运行临时命令 A服务的强大之处在于只需要一条命令,便可以操控成千上万台的主机节点,而命令便是比较得力的工具之一。前文提到,A服务际上只是一个框架,能够完成工作的是模块化功能代码。A的常用模块大致有20多个(见表16-5),本书将会在后面的验中逐一详解。 偶尔遇到书中没有提及的模块,大家可以使用“-模块称”的命令格式自行查询,或是使用- -命令列出所有的模块信息以供选择。 表16-5 A服务常用模块称及作用 模块称 模块作用 检查受管节点主机络是否能够联通。 安装、更新及卸载软件包。 _ 管理主机的软件仓库配置文件。 复制模板文件到受管节点主机。 新建、修改及复制文件。 创建、修改及删除用户。 创建、修改及删除用户组。 启动、关闭及查看服务状态。 _ 从络中下载文件。 设置文件权限及创建捷方式。 添加、修改及删除计划任务。 直接执行用户指定的命令。 直接执行用户指定的命令(支持特殊字符)。 输出调试或报错信息。 挂载硬盘设备文件。 格式化硬盘设备文件。 通过正则表达式修改文件内容。 收集受管节点主机上的系统及变量信息。 添加、修改及删除防火墙策略。 管理主机的物理卷及卷组设备。 管理主机的逻辑卷设备。 在A服务中,是用于执行临时任务的命令,也就在是执行后即结束(与剧本文件的可重复执行不同)。在使用命令时,必须指明受管主机的信息,如果已经设置过主机清单文件(),则可以使用参数来指代全体受管主机,或是用、等主机组称来指代某一组的主机。 命令常用的语法格式为“受管主机节点 -模块称[-模块参数]”,常见的参数如表16-6所示。其中,-是要传递给模块的参数,只有功能极其简单的模块才不需要额外参数,所以大多情况下-与-参数都会同时出现。 表16-6 命令常用参数 参数 作用 - 手动输入SSH协议密码 - 指定主机清单文件 - 指定要使用的模块 -M 指定要使用的模块路径 -S 使用命令 -T 设置SSH协议连接超时时间 - 设置传递给模块的参数 -- 查看版本信息 - 帮助信息 如果想现某个功能,但是却不知道用什么模块,又或者是知道了模块称,但不清楚模块具体的作用,则建议使用-命令进行查找。例如,列举出当前A服务所支持的所有模块信息: [@ ~]# - - 10_ M A10 N AXSAXT 10__3 M A10 N AXSAXT 10__ M A10 N AXSAXT 10__ M A10 N AXSAXT __ M AAA (:U) ___ M AAA (:U ______ M F _______ M F _______ M F _ M A E P ___ B AEP P V D __ M S (:S) ………………省略部分输出信息……………… 一般情况下,很难通过称来判别一个模块的作用,要么是参考模块后面的介绍信息,要么是平时多学多练,进行积累。例如,接下来随机查看一个模块的详细信息。-命令会在屏幕上显示出这个模块的作用、可用参数及例等信息: [@ ~]# - 10_ A10_SERVER (36-1010_) M SLB (S L B) A10 N XAPI2 * T T A C ………………省略部分输出信息……………… 在162节,已经成功地将受管主机的IP地址填写到主机清单文件中,接下来小试牛刀,检查一下这些主机的络连通性。模块用于进行简单的络测试(类似于常用的命令)。可以使用命令直接针对所有主机调用模块,不需要增加额外的参数,返回值若为SUCCESS,则表示主机当前在线。 [@ ~]# - 1921681020 | SUCCESS = { "_": { "__": "-" }, "": , "": "" } 1921681021 | SUCCESS = { "_": { "__": "-" }, "": , "": "" } 1921681022 | SUCCESS = { "_": { "__": "-" }, "": , "": "" } 1921681023 | SUCCESS = { "_": { "__": "-" }, "": , "": "" }1921681024 | SUCCESS = { "_": { "__": "-" }, "": , "": "" } T 由于5台受控主机的输出信息大致相同,因此为了提升读者的阅读体验,本章后续的输出结果默认仅保留1921681020主机的输出值,其余相同的输出信息将会被省略。 是不是感觉很方便呢!一次就能知道所有主机的在线情况。除了使用-参数直接指定模块称之外,还可以用-参数将参数传递给模块,让模块的功能更高级,更好地满足当前生产的需求。例如,_模块的作用是管理主机的软件仓库,能够添加、修改及删除软件仓库的配置信息,参数相对比较复杂。遇到这种情况时,建议先用-命令对其进行了解。尤其是下面的EXAMPLES结构段会有该模块的例,对用户来说有非常高的参考价值。 [@ ~]# - _ YUM_REPOSITORY (36- A YUM RPM- L I [_] * T T A C T ……………………省略部分输出信息……………… EXAMPLES: - : A _: : : EPEL YUM : $$ - : A (12) _: : : EPEL YUM : _ : $$ : - : A (22) _: : : RPM YUM : _ : :7$ 还好,参数并不是很多,而且与此前学过的目录中的配置文件基本相似。现在,想为主机清单中的所有服务器新增一个如表16-7所示的软件仓库,该怎么操作呢 表16-7 新增软件仓库信息 仓库称 EX294_BASE 仓库描述 EX294 仓库地址 :BOS GPG签 启用 GPG密钥文件 :RPM-GPG-KEY-- 我们可以对照着EXAMPLE例段,逐一对应填写需求值和参数,其标准格式是在-参数后接整体参数(用单引号圈起),而各个参数字段的值则用双引号圈起。这是比较严谨的写法。在执行下述命令后如果出现CHANGED字样,则表示修改已经成功: [@ ~]# - _ - '="EX294_BASE" ="EX294 " =":BOS" = =1 =":RPM-GPG-KEY--"' 1921681020 | CHANGED = { "_": { "__": "-" }, "": , "": "EX294_BASE", "": "" } 在命令执行成功后,可以到主机清单中的任意机器上查看新建成功的软件仓库配置文件。尽管这个验的参数很多,但是并不难。 [@ ~]# EX294_BASE [EX294_BASE] = :BOS = 1 = 1 = :RPM-GPG-KEY-- = EX294 164 剧本文件战 在很多情况下,仅仅执行单个命令或调用某一个模块,根本法满足复杂工作的需要。A服务允许用户根据需求,在类似于S脚本的模式下编写自动化运维脚本,然后由程序自动、重复地执行,从而大大提高了工作效率。 A服务的剧本()文件采用YAML语言编写,具有强制性的格式规范,它通过空格将不同信息分组,因此有时会因一两个空格错位而导致报错。大家在使用时要万分小心。YAML文件的开头需要先写3个减号(---),多个分组的信息需要间隔一致才能执行,而且上下也要对齐,后缀一般为。剧本文件在执行后,会在屏幕上输出运行界面,内容会根据工作的不同而变化。在运行界面中,绿色表示成功,色表示执行成功并进行了修改,而红色则表示执行失败。 剧本文件的结构由4部分组成,分别是、、、,其各自的作用如下。
爱上大茂名,喜当大猫友,吃喝玩乐事,天天乐开怀!
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

QQ|客服:0668-2886677QQ:75281068|大茂微博|小黑屋|手机版|Archiver|大茂名网 ( 粤ICP备18149867号 )茂名市大茂科技有限公司 版权所有 

GMT+8, 2025-3-11 01:29 , Processed in 0.334385 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表