Ansible - ジョブのグループ変数にアクセスする

Ansible - ジョブのグループ変数にアクセスする

私の在庫ファイルはグループ変数で構成されています。例:

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"
}

おすすめ記事