Ansible模块——软件包管理模块

简介: Ansible模块——软件包管理模块

软件包管理模块

yum_repository

yum_repository 模块可以帮助我们管理远程主机上的 yum 仓库

  • name参数:必须参数,用于指定要操作的唯一的仓库ID,也就是”.repo”配置文件中每个仓库对应的”中括号”内的仓库ID。
  • baseurl参数:此参数用于设置 yum 仓库的 baseurl。
  • description参数:此参数用于设置仓库的注释信息,也就是”.repo”配置文件中每个仓库对应的”name字段”对应的内容。
  • file参数:此参数用于设置仓库的配置文件名称,即设置”.repo”配置文件的文件名前缀,在不使用此参数的情况下,默认以 name 参数的仓库ID作为”.repo”配置文件的文件名前缀,同一个”.repo” 配置文件中 可以存在多个 yum 源。
  • enabled参数:此参数用于设置是否激活对应的 yum 源,此参数默认值为 yes,表示启用对应的 yum源,设置为 no 表示不启用对应的 yum 源。
  • gpgcheck参数:此参数用于设置是否开启 rpm 包验证功能,默认值为 no,表示不启用包验证,设置为 yes 表示开启包验证功能。
  • gpgkey参数:当 gpgcheck 参数设置为 yes 时,需要使用此参数指定验证包所需的公钥。 state参数:默认值为 present,当值设置为 absent 时,表示删除对应的 yum 源。

示例

注意环境默认的yum源http://content.example.com/rhel8.0/x86_64/dvd/AppStream
//为webservers的主机配置yum源,设置ID为AppStream 
 [student@workstation  ansible]$ ansible web -m  yum_repository -a 'name=AppStream  description="AppStream"  baseurl="http://classrom.example.com/rhel8/AppStream" gpgcheck=no  file=rhel8'  
[student@workstation ansible]$ ansible web -m yum_repository -a 'name=BaseOS  description="BaseOS" baseurl="http://classrom.example.com/rhel8/BaseOS" gpgcheck=no file=rhel8'  
[student@workstation  ansible]$ ansible web -a "cat  /etc/yum.repos.d/rhel8.repo"  

yum/dnf模块

  • name参数:必须参数,用于指定需要管理的软件包,比如 nginx。
  • state参数:用于指定软件包的状态 ,默认值为。present,表示确保软件包已经安装,除了。present,其他可用值有 installed、latest、absent、removed,其中 installed 与present 等效,latest 表示安装 yum 中最新的版本,absent 和 removed 等效,表示删除对应的软件包。
  • disable_gpg_check参数:用于禁用对 rpm 包的公钥 gpg 验证。默认值为 no,表示不禁用验证,设置为 yes 表示禁用验证,即不验证包,直接安装。在对应的 yum 源没有开启 gpg 验证的情况下,需要将此参数的值设置为 yes,否则会报错而无法进行安装。
  • enablerepo参数:用于指定安装软件包时临时启用的 yum 源。假如你想要从A源中安装软件,但是你不确定A源是否启用了,你可以在安装软件包时将此参数的值设置为 yes,即使A源的设置是未启用,也可以在安装软件包时临时启用A源。
  • disablerepo参数:用于指定安装软件包时临时禁用的 yum 源。某些场景下需要此参数,比如,当多个 yum 源中同时存在要安装的软件包时,你可以使用此参数临时禁用某个源,这样设置后,在安装软件包时则不会从对应的源中选择安装包。
  • enablerepo参数和disablerepo参数可以同时使用。

示例

#ansible all -m yum -a "name=httpd disable_gpg_check=yes"  
 #ansible all -m yum -a  "name=httpd disbale_gpg_check=yes  state=present(/installed/latest)" 
 在 ansible-demo3 主机上安装 telnet 时,确定多个源中都有 telnet,但是不想从 local 源中安装,所以在安装时临时禁用 local 源。 
#ansible all -m yum -a 'name=telnet disable_gpg_check=yes  disablerepo=local'    
在主机上安装 telnet 时不确定 local 源是否启用,使用 enablerepo=local确保临时启用 local 源。 
#ansible all -m yum -a 'name=telnet disable_gpg_check=yes  enablerepo=local'  

Service/systemd模块

  • name参数:此参数用于指定需要操作的服务名称,比如 nginx。
  • state参数:此参数用于指定服务的状态,比如,我们想要启动远程主机中的 nginx,则可以将 state 的值设置为 started;如果想要停止远程主机中的服务,则可以将 state 的值设置为 stopped。此参数的可用值有 started、stopped、restarted、reloaded。
  • enabled参数:此参数用于指定是否将服务设置为开机 启动项,设置为 yes 表示将对应服务设置为开机启动,设置为 no 表示不会开机启动
  • arguments: 给命令提供一些选项
  • runlevel : 运行等级
  • sleep: 如果运行看restarted 则stop and start 之间沉睡几秒中

示例

pattern:定义一个模式,如果通过status指令来查看服务的状态时,没有响应,就会通过ps指令在进程中根据该模式进行查找,如果匹配到,则认为该服务依然在运行
#ansible all -m  systemd -a "name=nginx  state=stopped  enabled=no "  
#ansible  all -m service -a "name=httpd state=started  enabled=yes"  
 验证服务启动 
[root@master ~]#ansible webservers -m shell -a 'systemctl is-active httpd'


相关文章
|
运维 Shell Linux
Ansible自动化运维工具之常用模块使用实战(5)
Ansible自动化运维工具之常用模块使用实战(5)
387 0
|
运维 Kubernetes 网络安全
Ansible自动化运维工具之主机管理与自定义配置文件(2)
Ansible自动化运维工具之主机管理与自定义配置文件(2)
143 0
|
网络协议 网络安全
Ansible模块介绍——防火墙模块
Ansible模块介绍——防火墙模块
265 0
|
3月前
|
缓存 Shell Linux
[ansible]常用内置模块
[ansible]常用内置模块
|
4月前
|
Shell 应用服务中间件 Linux
Ansible的常用模块
Ansible的常用模块
97 6
|
4月前
|
Shell 数据安全/隐私保护
Ansible Ad-hoc,命令执行模块
Ansible Ad-hoc,命令执行模块
43 1
|
4月前
|
运维 Linux 应用服务中间件
Linux之自动化运维工具ansible、ansible模块(2)
Linux之自动化运维工具ansible、ansible模块(2)
|
4月前
|
运维 Linux Shell
Linux之自动化运维工具ansible、ansible模块(1)
Linux之自动化运维工具ansible、ansible模块(1)
|
6月前
|
算法 安全 Linux
Ansible 中的copy 复制模块应用详解
Ansible 中的copy 复制模块应用详解
430 1
|
运维 Linux
Ansible自动化运维工具之常用模块使用实战(6)
Ansible自动化运维工具之常用模块使用实战(6)
187 0