首页 > 数据库 > 数据库开发技术 > Ansible自动化运维必备“四剑客”
Ansible自动化运维必备“四剑客”
yum模块,service模块,User模块,group模块
Ansible作为一款优秀的自动化运维工具,在现代的IT行业中发挥着越来越重要的作用。它通过模块化的设计和简洁的语法,让复杂的自动化任
变得易于管理。今天我将带大家深入了解Ansible中四个常用的模块:yum、service、User和group,以及它们在日常工作中如何帮助我们提高效率。
除了精彩的内容,我们还为大家精心准备了一份粉丝福利,记得查看文章末尾哦!
yum模块
在 Ansible 中,yum 模块用于在基于 RPM 的 Linux 发行版(如 Red Hat, CentOS, Fedora 等)上管理软件包。你可以使用此模块来安装、更新、删除或列出软件包。
参数:
name:指定需要管理的软件包名称。例如,name: nginx。
state:用于指定软件包的状态。有以下可选值:
present 或 installed:确保软件包已经安装。
absent 或 removed:删除对应的软件包。
latest:安装yum中最新的版本。
ansible -m yum -a 'name=httpd state=installed' 192.168.8.6
这条命令的目的是在 IP 地址为 192.168.8.6 的远程主机上安装 httpd(即 Apache HTTP 服务器)软件包。

ansible -m yum -a 'name=httpd state=removed' 192.168.8.6
这条命令使用了yum模块,并通过-a参数传递了 name=httpd state=removed 这样的参数列表,指定了要卸载

ansible -m yum -a 'name=httpd download_dir=/backup download_only=yes' 192.168.8.6使用 yum 模块在远程主机 192.168.8.6 上尝试仅下载 httpd 软件包而不实际安装它,并将下载的 RPM 文件保存在指定的目录 /backup 中。

ansible -m archive -a 'path=/etc dest=/tmp/etc.tar.gz format=gz' 192.168.8.6
使用Ansible 的 archive 模块在远程服务器 192.168.8.6 上对 /etc 目录进行归档操作,并将结果保存为 gzip 压缩的 tar 文件

service模块
Ansible的service模块用于管理系统服务。它允许你启动、停止、重启或重新加载服务,以及检查服务状态。
参数:
name参数指定了要操作的服务名称。
state参数指定了你想要的服务状态。
ansible -m service -a 'name=httpd state=started' 192.168.8.6
使用Ansible的service模块来在目标主机 192.168.8.6 上启动名为 httpd 的服务。

ansible -m service -a 'name=httpd enabled=yes' 192.168.8.6
使用Ansible的service模块来设置目标主机 192.168.8.6 上 httpd 服务的启用状态(即在系统启动时是否自动启动)。

ansible -m service -a 'name=httpd enabled=no' 192.168.8.6
在Ansible中,使用-m service -a 'name=httpd enabled=no'这样的命令的本意是想要禁用(即不设置为开机启动)名为httpd的服务。

ansible -m service -a 'name=httpd state=stopped enabled=yes' 192.168.8.6
在 IP 地址为 192.168.8.6 的主机上,使用 Ansible 的 service 模块来停止 httpd 服务,并确保在系统启动时它仍然被设置为自动启动(尽管现在是停止状态)
使用 Ansible (ansible): Ansible 是一个自动化工具,用于配置管理、应用部署、任务自动化等。
指定模块 (-m service): -m 选项后面跟的是要使用的模块名。在这个例子中,service 模块用于管理服务(如启动、停止、重启服务等)。
指定模块参数 (-a 'name=httpd state=stopped enabled=yes'): -a 选项后面跟的是传递给模块的参数。
name=httpd: 这指定了要操作的服务名称,即 HTTPD(Apache HTTP Server 的常见缩写)。
state=stopped: 这指示 Ansible 要停止 httpd 服务。
enabled=yes: 这意味着尽管 httpd 服务当前被停止,但在系统启动时它仍然会被设置为自动启动。但是要注意,enabled 参数在 service模块中可能并不总是被支持,特别是在某些平台上(如Windows)。这个参数通常在用于管理 Linux 系统服务时更为常见。
指定目标主机 (192.168.8.6): 这指定了 Ansible 命令要执行的目标主机的 IP 地址。

User模块
Ansible 的 user 模块用于管理远程主机上的用户账户。你可以使用这个模块来创建、删除、修改用户账户,以及设置用户的密码、SSH 密钥等属性。
· name: 要创建或修改的用户名
· state: 用户的状态(present 表示创建或确保存在,absent 表示删除)
· create_home: 是否创建用户的家目录(默认为 yes)
· shell: 用户的默认 shell
remove: 当删除用户时,是否同时删除用户的家目录和邮件池(默认为 no)
ansible -m user -a 'name=usera state=present' 192.168.8.6
使用 Ansible 的命令行接口来直接在一个远程主机(IP 地址为 192.168.8.6)上执行 user 模块的操作。这个命令尝试在远程主机上创建一个名为 usera 的新用户(如果尚不存在

ansible -m user -a 'name=usera groups=test2' 192.168.8.6
使用Ansible的命令行来确保远程主机192.168.3.10 上存在一个名为 usera 的用户,并将其添加到 test2 组中。
但是,如果组 test2 在远程主机上不存在,该命令将会失败,并显示类似于您之前看到的错误信息。为了避免这种情况,您应该确保在尝试将用户添加到组之前,该组已经存在。

ansible -m user -a 'name=usera group=test2' 192.168.8.6
在 Ansible 的 user 模块中,group 参数用于设置用户的主组(primary group)
如果您希望 usera 的主组是 test2,并且不添加任何附加组,那么您的命令是正确的。

ansible -m user -a 'name=userc shell=/sbin/nologin create_home=no system=yes group=test2' 192.168.8.6
使用了user模块来管理远程主机(IP地址为192.168.3.10)上的用户账户。具体地说,它试图执行以下操作:
· name=userc: 创建一个或管理一个名为userc的用户账户。
· shell=/sbin/nologin: 设置该用户的默认shell为/sbin/nologin。这通常用于系统账户或那些不应该直接登录的账户,因为/sbin/nologin是一个特殊的shell,当尝试登录时会显示一条消息并退出。
· create_home=no: 不为该用户创建主目录。默认情况下,Ansible的user模块会为新创建的用户创建主目录。但是,通过设置create_home=no,可以禁止这一行为。
· system=yes: 将此用户标记为系统用户。系统用户通常用于运行系统服务,而不是供人类用户登录。它们的UID通常小于1000(尽管这不是由Ansible直接设置的,而是由系统的用户账户数据库管理的)。
· group=test2: 设置该用户的主组(primary group)为test2。如果test2组不存在,该命令可能会失败,除非Ansible的配置或模块版本有特别的处理方式。
· 192.168.3.10: 目标远程主机的IP地址。

ansible -m user -a 'name=userc state=absent' 192.168.8.6
使用了 user 模块来管理远程主机(IP 地址为 192.168.8.6)上的用户账户。具体地说,它执行以下操作:
· name=userc: 指定要管理的用户名为 userc。
· state=absent: 设置用户状态为 absent,这意味着 Ansible 将尝试删除该用户账户。
· 192.168.3.10: 指定了目标远程主机的 IP 地址。

group模块
在Ansible中,group模块的主要作用是管理远程主机上的用户组。该模块提供了一些参数来指定和管理用户组,包括:
name参数:这是必须参数,用于指定要操作的组名称。
state参数:用于指定组的状态,有两个可选值:present和absent。默认为present,表示创建或保留组。如果设置为absent,则表示删除组。但需要注意的是,当组被用户使用时,只能删除附加组,不能删除主组。
gid参数:用于指定组的GID(Group ID)。
ansible -m group -a 'name=test1' 192.168.8.6
在远程主机 192.168.3.10 上创建一个名为 test1 的用户组(如果它还不存在的话)。

ansible -m group -a 'name=test1 state=absent' 192.168.8.6
用于通过 Ansible 的命令行工具来删除远程主机 192.168.8.6 上名为 test1 的用户组(如果该组存在的话)。
具体来说:
· ansible: 这是 Ansible 的命令行工具。
· -m group: 这指定了要使用的模块是 group,即用户组管理模块。
· -a 'name=test1 state=absent': 这是传递给 group 模块的参数。其中 name=test1 指定了要操作的组名为 test1,而 state=absent 指定了要删除这个组(如果它存在的话)。
· 192.168.8.6: 这是目标主机的 IP 地址,Ansible 会尝试在这个主机上执行指定的任务。

ansible -m group -a 'name=test1' 192.168.8.6
用于在远程主机 192.168.8.6 上创建或确保用户组 test1 存在。这个命令使用了Ansible的命令行界面,并指定了group模块来管理用户组。

ansible -m group -a 'name=test2 system=yes' 192.168.8.6
使用Ansible 的 group模块来管理远程主机 192.168.8.6 上的用户组

敬请关注博主,我们将持续为您带来云计算行业及更多前沿技术的最新信息,助您把握技术动态,领先一步!”
若您渴望深入了解云计算知识,或希望与云计算、运维、网络等领域的精英们共同交流学习,欢迎您私信博主,博主将为您提供宝贵的免费学习资料,并引荐您加入专业交流群。在这里,您可以与各路大咖切磋技艺,共享行业前沿资讯,一同成长进步。期待您的参与,让我们共同开启云计算领域的探索之旅!




🌟亲爱的朋友们,你是否对云计算充满好奇,想要深入了解这一前沿科技?那么,现在就有一个绝佳的机会摆在你面前!🌟
💡**只要简单两步,你就能轻松获取珍贵的云计算资料一份!**💡
1️⃣ 立即关注博主:不错过任何一次与前沿科技近距离接触的机会!
2️⃣ 回复关键词“云计算资料”:打开通往云计算知识宝库的大门!
🎁这份资料包含了云计算的精华内容,无论是初学者还是专业人士,都能从中获得宝贵的启示和收获。🎁

原文作者:网络豆云计算学堂;如有侵权,请联系管理员删除。