通过yum_repository模块,对Ansible客户端主机配置YUM仓库,yum_repository模块是配置YUM仓库的专用模块,模块选项参数丰富,通过此模块配置YUM仓库,对运维工程师来说,更加专业,具有成就感。
示例1:配置Ansible客户端主机YUM仓库,Playbook脚本如下:
vim install_yum.yml
---
- name: Configure local yum repository
hosts: all
tasks:
- name: Yum repository executive options
yum_repository:
name: local_repo
baseurl: "http://x.x.x.x/repository/centos/7/os/$basearch/"
description: "local yum repo"
enabled: yes
gpgcheck: True
gpgkey: "http://x.x.x.x/repository/centos/RPM-GPG-KEY-CentOS-7"
执行Playbook:
ansible-playbook install_yum.yml
示例2:添加多个仓库到一个同事的文件中,Playbook脚本如下:
vim install_yum.yml
---
- name: Configure remote yum repository
hosts: all
tasks:
- name: Yum repository executive options
yum_repository:
name: remote_repo
file: local_repo
baseurl: "http://apt.sw.be/redhat/el7/en/$basearch/rpmforge"
description: "remote yum repo"
enabled: yes
gpgcheck: False
执行Playbook:
ansible-playbook install_yum.yml
注意:示例2的功能是把YUM仓库信息写入到示例1的仓库文件中,示例1仓库文件中包含两个YUM源。实现此功能的关键是file参数的应用。示例2中yum_repository模块的file值与示例1中yum_repository模块的name值相同即可,如果示例1中有file参数,与file值相同即可。
yum_repository模块常用选项解析:
属性 | 含义 |
---|---|
async | 如果设置为’ yes ', Yum将尽可能从该repo中并行下载包和元数据。值为布尔类型,默认为yes |
baseurl | yum仓库的“repodata”目录所在目录的URL。它也可以是多个URL的列表。如果“state”设置为“present ”,则需要“metalink”或“mirrorlist”参数。 |
description | 描述仓库的可读字符串。此选项对应于repo文件中的“name”属性。仅当“state”设置为“present”时,此参数才是必需的。 |
enabled | 是否启动这个仓库,值为布尔类型,默认为yes |
gpgcheck | 是否应该对包执行GPG签名检查。无默认设置。如果未设置该值,将使用/etc/yum.conf中的系统设置或系统默认值“no”。 |
gpgkey | 指向存储库的ASCII保护的GPG密钥文件的URL。可以是多个URL的列表。gpgcheck属性值是yes时,gpgkey值是必需的。 |
name | 值是唯一的。此选项在repo文件中构建仓库的部分名称。仅当“state”设置为“present”或“absent”时,才需要此参数。 |
state | repo文件状态,值有present或sbsent,默认值为present |
file | 用于保存仓库的文件名,不带“. repo”扩展名。默认为“name”的值。 |