내 재고 파일이 그룹 변수로 구성되어 있습니다. 예:
all:
children:
europe:
vars:
network_id: 3
network_name: "europe-eu"
hosts:
europe-eu-1254:
ansible_host: 8.8.8.8
ansible_ssh_pass: password
ansible_ssh_user: user
...
내 작업에서 그룹 변수를 가져오고 싶지만 방법을 모르겠습니다.
작업 예:
- name: Start latest container
docker_container:
name: "server-{{ hostvars[inventory_hostname].vars.network_name }}"
image: "{{ docker_registry }}:{{ docker_tag }}"
state: started
recreate: yes
network_mode: host
oom_killer: no
restart_policy: always
become: yes
...
제 생각에는 이것은 {{ hostvars[inventory_hostname].vars.network_name }}
올바른 접근 방식이 아닙니다.
답변1
변수를 인용하면 됩니다. 예를 들어, 스크립트
shell> cat playbook.yml
- hosts: all
tasks:
- debug:
var: network_name
- debug:
msg: "{{ network_name }}"
주어진 (요약된)
shell> ansible-playbook playbook.yml
ok: [europe-eu-1254] => {
"network_name": "europe-eu"
}
ok: [europe-eu-1254] => {
"msg": "europe-eu"
}