Ansible: vars_files tidak dapat melihat fakta atau variabel lain yang dapat dilihat oleh peran dalam permainan yang sama

Dibuat pada 10 Agu 2017  ·  3Komentar  ·  Sumber: ansible/ansible

JENIS MASALAH
  • Laporan Bug
NAMA KOMPONEN

pedoman

VERSI ANSIBLE
ansible 2.4.0
  config file = None
  configured module search path = [u'/Users/szabop/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /Library/Python/2.7/site-packages/ansible
  executable location = /usr/local/bin/ansible
  python version = 2.7.10 (default, Jul 14 2015, 19:46:27) [GCC 4.2.1 Compatible Apple LLVM 6.0
KONFIGURASI

Saya mengimpor peran dan permainan dari direktori lain jadi saya punya di ansible.cfg

[defaults]
roles_path = ../../../deployment/playbooks/roles
OS / LINGKUNGAN

OSX 10.10.5

RINGKASAN

Ketika saya mencoba memutuskan secara dinamis file vault mana yang ingin saya impor dengan menggunakan variabel di vars_files (pengujian unit tidak boleh menggunakan sandi produksi!) Untuk pemutaran yang diimpor, saya tidak dapat melakukannya menggunakan group_vars, host_vars, atau fact diatur dalam permainan setup. Saya hanya dapat menggunakan argumen baris perintah yang memungkinkan.

LANGKAH UNTUK REPRODUKSI

ansible-playbook -t app_test -i inventories/localhost/local.hosts unit.yml

---
#
# network.yml
#
- name: Setup the networks
  hosts: dockerhosts
  vars_files:
     - demoVars.yml
     - "{{ vault_file }}"   # this will only be valid if declared on the ansible command line.
  roles:
    - role: debug     # note this will print out a valid {{ vault_file }} in all cases (but comment out the vars_files line or it will error first)
    - role: network_setup
      options:
        internal: "{{ networks.internal }}"
        external: "{{ networks.external }}"
        nginx: "{{ networks.nginx }}"
  tags:
    - setup
    - standalone
    - app_test
# unit.yml
---
- name: create facts used to compose variables later in this playbook
  hosts: dockerhosts
  vars:
    esTmpDir: "/tmp/es"
  roles:
    - role: unitenv_setup
  tags:
    - app_test
- import_playbook: ../../../deployment/playbooks/network.yml
HASIL YANG DIHARAPKAN

Jika variabel vault_file ditentukan pada baris perintah yang memungkinkan menggunakan --extra-vars skrip berjalan dengan baik. Seharusnya berjalan dengan baik ketika vault_file diatur dari file inventaris atau ditetapkan sebagai fakta dalam unitenv_setup , tetapi tidak

HASIL NYATA

Menggunakan metode apa pun selain baris perintah untuk mengatur vault_file , saya mendapatkan kesalahan berikut:

PLAY [Setup the networks] *********************************************************************
ERROR! vars file {{ vault_file }} was not found

mode yang sangat bertele-tele:

ETA: ran handlers
META: ran handlers
Read vars_file 'demoVars.yml'
skipping vars_file '{{ vault_file }}' due to an undefined variable
Read vars_file 'demoVars.yml'
skipping vars_file '{{ vault_file }}' due to an undefined variable

PLAY [Setup the networks] *********************************************************************
Read vars_file 'demoVars.yml'
ERROR! vars file {{ vault_file }} was not found

affects_2.4 bug core

Komentar yang paling membantu

mungkin Anda harus memperbaiki dokumentasinya? Tidak terlalu jelas ...

Semua 3 komentar

Saya perhatikan ada sesuatu yang kompleks tentang lingkungan produksi saya yang sepertinya tidak bisa saya buat menjadi reproduksi sederhana yang dapat dibagikan. Bagaimanapun, inilah upaya untuk mereproduksi.

Kemungkinan Kesalahpahaman

Hai!

Terima kasih banyak atas kiriman Anda ke Ansible. Ini sangat berarti bagi kami.

Kami yakin tiket yang Anda ajukan agak disalahpahami, karena satu hal berfungsi sedikit berbeda dari yang disebutkan.

fakta, host dan vars grup .. pada dasarnya semua 'host terkait vars' tidak tersedia untuk vars_files , hanya bermain scoped vars atau vars ekstra yang tersedia pada saat itu. Gunakan tugas include_vars sebagai gantinya.

Di masa mendatang, ini mungkin topik yang lebih cocok untuk daftar pengguna, yang juga dapat Anda posting di sini jika Anda membutuhkan bantuan lebih lanjut tentang hal di atas.

Terima kasih sekali lagi untuk ini dan minat Anda pada Ansible!

mungkin Anda harus memperbaiki dokumentasinya? Tidak terlalu jelas ...

Apakah halaman ini membantu?
0 / 5 - 0 peringkat