第一支 playbook

  1. yum_repository 模組可以增加或刪除套件庫,第一支 playbook 寫一支 yum_repo.yml 腳本,只有一個任務,設定主機 dev 的套件庫,沒有善後處理工作,yum repository 要求如下:
  2. Repository 1
    1. 名稱 (name):DYW_BASE
    2. 描述 (description):DYW base software
    3. 套件來源網址:http://dywang.csie.cyut.edu.tw/alma9/BaseOS
    4. 啟甪 GPG 簽章檢查
    5. GPG 金鑰網址:http://dywang.csie.cyut.edu.tw/materials/RPM-GPG-KEY-AlmaLinux-9
  3. Repository 2
    1. 名稱 (name):DYW_STREAM
    2. 描述 (description):DYW stream software
    3. 套件來源網址:http://dywang.csie.cyut.edu.tw/alma9/AppStream
    4. 啟甪 GPG 簽章檢查
    5. GPG 金鑰網址:http://dywang.csie.cyut.edu.tw/materials/RPM-GPG-KEY-AlmaLinux-9
  4. 編輯 yum_repo.yml
    [deyu1@kvm19 ansible]$ vim yum_repo.yml
    [deyu1@kvm19 ansible]$ cat yum_repo.yml
    ---
    - hosts: dev
      tasks:
        - name: Add BaseOS repository
          ansible.builtin.yum_repository:
            name: DYW_BASE
            description: DYW base software
            baseurl: http://dywang.csie.cyut.edu.tw/alma9/BaseOS
            gpgcheck: yes
            gpgkey: http://dywang.csie.cyut.edu.tw/materials/RPM-GPG-KEY-AlmaLinux-9
    
        - name: Add Stream repository
          ansible.builtin.yum_repository:
            name: DYW_STREAM
            description: DYW stream software
            baseurl: http://dywang.csie.cyut.edu.tw/alma9/AppStream
            gpgcheck: yes
            gpgkey: http://dywang.csie.cyut.edu.tw/materials/RPM-GPG-KEY-AlmaLinux-9
    
  5. ansible-playbook 執行 yum_repo.yml,結果成功,kvm11 被更動。
    [deyu1@kvm19 ansible]$ ansible-playbook yum_repo.yml
    
    PLAY [dev] **********************************************************************
    
    TASK [Gathering Facts] **********************************************************
    ok: [kvm11]
    
    TASK [Add BaseOS repository] ****************************************************
    changed: [kvm11]
    
    TASK [Add Stream repository] ****************************************************
    changed: [kvm11]
    
    PLAY RECAP **********************************************************************
    kvm11    : ok=3  changed=2  unreachable=0  failed=0  skipped=0  rescued=0  ignored=0
    
  6. 查詢主機 dev 的 /etc/yum.repos.d 目錄,產生了兩個 .repo 檔,檔名是 yum_repo.yml 設定的名稱 name。
    [deyu1@kvm19 ansible]$ ansible dev -m shell -a "ls -l /etc/yum.repos.d/"
    kvm11 | CHANGED | rc=0 >>
    total 8
    -rw-r--r--. 1 root root 189 Feb 21 17:15 DYW_BASE.repo
    -rw-r--r--. 1 root root 196 Feb 21 17:15 DYW_STREAM.repo
    
  7. 查詢主機 dev 已設定好 repositories,其中 repo id 及 repo name 是 yum_repo.yml 設定的名稱 name 及描述 description。
    [deyu1@kvm19 ansible]$ ansible dev -m shell -a "yum repolist"
    kvm11 | CHANGED | rc=0 >>
    repo id                             repo name
    DYW_BASE                            DYW base software
    DYW_STREAM                          DYW stream software