Ansible: filter default tidak menyelesaikan variabel di Ansible 1.8.2

Dibuat pada 19 Des 2014  ·  3Komentar  ·  Sumber: ansible/ansible

Jenis Masalah:

Laporan Bug

Versi yang Mungkin:

1.8.2

Lingkungan:

RHEL 5

Ringkasan:

Filter default tidak menyelesaikan variabel yang ditentukan dalam inventaris.

Misalnya, jika saya telah mendefinisikan dalam file inventaris saya variabel berikut:

app_install_dir=/test

Buku pedoman saya memiliki ini dan "beberapa variabel" tidak ditentukan:

dest_dir="{{ beberapa variabel | default('{{app_install_dir}}/DATA') }}"

Saat menjalankan buku pedoman, defaultnya gagal untuk menyelesaikan "app_install_dir"

Ini digunakan untuk bekerja pada Ansible 1.7.1.

Langkah-langkah Untuk Mereproduksi:

1) Tentukan variabel dalam inventaris yang disebut "test_directory=/tmp/testdir"
2) Di playbook, punya tugas untuk membuat direktori yang ditentukan oleh variabel dest={{ undefined_variable | default('{{test_directory}}') }}
3) Setelah menjalankan playbook, gagal menyelesaikan nilai "test_directory"

Hasil yang diharapkan:

Filter default harus dapat menyelesaikan variabel

Hasil nyata:

Filter default tidak menyelesaikan variabel yang ditentukan dalam inventaris

Komentar yang paling membantu

Saya biasanya tidak melihat posting di tiket tertutup tetapi pengguna irc mem-ping saya tentang ini:
dest={{ undefined_variable | default(test_directory + '/subdir') }}

Semua 3 komentar

Kemungkinan Kesalahpahaman

Hai!

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

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

dest={{ undefined_variable | default('{{test_directory}}') }}

adalah ekspresi yang tidak valid, Anda tidak dapat membuat sarang {{ }}, yang mungkin Anda inginkan adalah sebagai berikut:

dest={{ undefined_variable | default(test_directory) }}

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

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

@bcoca : Senang mengetahuinya, tetapi apakah itu berarti kami tidak dapat menggabungkan variabel dan literal secara default? Sesuatu seperti: dest={{ undefined_variable | default('{{test_directory}}/subdir') }} (tetapi tidak valid ;-)

Saya biasanya tidak melihat posting di tiket tertutup tetapi pengguna irc mem-ping saya tentang ini:
dest={{ undefined_variable | default(test_directory + '/subdir') }}

Apakah halaman ini membantu?
0 / 5 - 0 peringkat