Ansible:特定のグループに属していないサーバーを除くすべてのサーバーのファイルをコピーする(2)

Ansible:特定のグループに属していないサーバーを除くすべてのサーバーのファイルをコピーする(2)

Repoファイルをコピーする必要があるサーバーが200を超えるため、AppClusterやDBClusterサーバーなどのサーバーにファイルをコピーしたくありません。クラスタには異なるRepoファイルがあるため、標準には異なるRepoファイルがあります。

[AppCluster]
172.16.55.5
172.16.55.6
172.16.55.7
172.16.55.8

[DBCluster]
172.16.56.5
172.16.56.6
172.16.55.7
172.16.55.8

頑張った

- name: Copy YUM File                                                                  
  copy:                                                                                
    src: /home/sysadmin/ansible_files/modules_utils/templates/repofile/rhel-remote.repo
    dest: /etc/yum.repos.d/                                                            
    owner: root                                                                        
    group: root

    mode: '0644'
  when: ansible_distribution_major_version == "7" and (group_names != "AppCluster" or group_names != "DBCluster")

しかしうまくいかないようです

どんな提案でも

ベストアンサー1

尋ねる:「AppClusterおよびDBClusterサーバーにこのファイルをコピーしないでください。」

答え:この条件を試してください。

  when:
    - ansible_distribution_major_version == '7'
    - group_names|intersect(['AppCluster', 'DBCluster'])|length == 0

はい

在庫を考えると

shell> cat hosts 
srv1
srv2
srv3

[AppCluster]
srv2

[DBCluster]
srv3

スクリプト

shell> cat pb.yml
- hosts: all
  gather_facts: false
  tasks:
    - debug:
        msg: "Copy repo to {{ inventory_hostname }}"
      when: group_names|intersect(['AppCluster', 'DBCluster'])|length == 0

与えられた

shell> ansible-playbook -i hosts pb.yml 

PLAY [all] ********************************************************************************

TASK [debug] ******************************************************************************
skipping: [srv3]
ok: [srv1] => 
  msg: Copy repo to srv1
skipping: [srv2]

PLAY RECAP ********************************************************************************
srv1: ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
srv2: ok=0    changed=0    unreachable=0    failed=0    skipped=1    rescued=0    ignored=0   
srv3: ok=0    changed=0    unreachable=0    failed=0    skipped=1    rescued=0    ignored=0

おすすめ記事