天天看點

19-yum_repository子產品-Ansible常用子產品

一、概述

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 表示開啟包驗證功能。

gpgcakey參數:當 gpgcheck 參數設定為 yes 時,需要使用此參數指定驗證包所需的公鑰。

state參數:預設值為 present,當值設定為 absent 時,表示删除對應的 yum 源。

三、示例

1.在 ansible-demo3 主機上設定ID為 aliEpel 的 yum 源,倉庫配置檔案路徑為 /etc/yum.repos.d/aliEpel.repo。

[root@ansible-manager ~]# ansible ansible-demo3 -m yum_repository -a 'name=aliEpel description="alibaba EPEL" baseurl=https://mirrors.aliyun.com/epel/$releasever\Server/$basearch/'
ansible-demo3 | SUCCESS => {
    "changed": true, 
    "repo": "aliEpel", 
    "state": "present"
}
           

2.在 ansible-demo3 主機上設定ID為 aliEpel 的 yum 源,倉庫配置檔案路徑為 /etc/yum.repos.d/alibaba.repo。

[root@ansible-manager ~]# ansible ansible-demo3 -m yum_repository -a 'name=aliEpel description="alibaba EPEL" baseurl=https://mirrors.aliyun.com/epel/$releasever\Server/$basearch/ file=alibaba'
ansible-demo3 | SUCCESS => {
    "changed": true, 
    "repo": "aliEpel", 
    "state": "present"
}
           

3.在 ansible-demo3 主機上設定ID為 local 的 yum 源,但是不啟用它(local源使用系統CD光牒鏡像作為本地 yum 源,以便測試舉例,是以 baseurl 中的值以 file:/// 開頭)。

ansible ansible-demo3 -m yum_repository -a 'name=local baseurl=file:///media description="local cd yum" enabled=no'
           

4.在 ansible-demo3 主機上設定ID為 local 的 yum 源,開啟包驗證功能,并指定驗證包所需的公鑰位置為 /media/RPM-GPG-KEY-CentOS-7。

ansible ansible-demo3  -m yum_repository -a 'name=local baseurl=file:///media description="local cd yum" gpgcheck=yes gpgcakey=file:///media/RPM-GPG-KEY-CentOS-7'
           

5.在 ansible-demo3 主機上删除 /etc/yum.repos.d/alibaba.repo 配置檔案中的 aliEpel 源。

[root@ansible-manager ~]# ansible ansible-demo3 -m yum_repository -a 'file=alibaba name=aliEpel state=absent'
ansible-demo3 | SUCCESS => {
    "changed": true, 
    "repo": "aliEpel", 
    "state": "absent"
}           

繼續閱讀