pedoman
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
Saya mengimpor peran dan permainan dari direktori lain jadi saya punya di ansible.cfg
[defaults]
roles_path = ../../../deployment/playbooks/roles
OSX 10.10.5
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.
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
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
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
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.
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 ...
Komentar yang paling membantu
mungkin Anda harus memperbaiki dokumentasinya? Tidak terlalu jelas ...