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