현재 플레이 북의 호스트가 특정 그룹에 속하지 않는 경우에만 ansible 작업을 실행하고 싶습니다 . 반 의사 코드에서 :
- name: my command
command: echo stuff
when: "if {{ ansible_hostname }} not in {{ ansible_current_groups }}"
어떻게해야합니까?
답변
이를 수행하는 또 다른 방법은 다음과 같습니다.
- name: my command
command: echo stuff
when: "'groupname' not in group_names"
group_names
https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#accessing-information-about-other-hosts-with-magic-variables에 설명 된 매직 변수입니다 .
group_names는 현재 호스트가 속한 모든 그룹의 목록 (배열)입니다.
답변
다음 group_vars/
과 같이 호스트 파일 에있는 vars 파일에서 제어 변수를 직접 설정할 수 있습니다 .
[vagrant:vars]
test_var=true
[location-1]
192.168.33.10 hostname=apollo
[location-2]
192.168.33.20 hostname=zeus
[vagrant:children]
location-1
location-2
그리고 다음과 같은 작업을 실행하십시오.
- name: "test"
command: "echo {{test_var}}"
when: test_var is defined and test_var