Saya mencoba mencetak yang sebelumnya terdaftar mosh_version
variabel yang menggunakan debug msg
perintah yang mungkin seperti ini:
- name: Print mosh version
debug: msg="Mosh Version: {{ mosh_version.stdout }}"
Tidak berfungsi dan mencetak kesalahan berikut:
Note: The error may actually appear before this position: line 55, column 27
- name: Print mosh version
debug: msg="Mosh Version: {{ mosh_version.stdout }}"
^
We could be wrong, but this one looks like it might be an issue with
missing quotes. Always quote template expression brackets when they
start a value. For instance:
with_items:
- {{ foo }}
Should be written as:
with_items:
- "{{ foo }}"
Saya mencoba
- name: Print mosh version
debug: msg=Mosh Version: "{{ mosh_version.stdout }}"
tetapi ini hanya akan mencetak "Mosh".
Apa cara terbaik untuk menjalankan ini?
deployment
ansible
Zulakis
sumber
sumber
TASK: [ Print mosh version] ************************************** ok: [127.0.0.1] => { "msg": "Mosh" }
ok: [127.0.0.1] => { "var": { "mosh_version.stdout_lines": [ "mosh 1.2.4a [build mosh-1.2.4-57-g9eeb2fb]" ] } }
ini berfungsi, saya benar-benar lebih suka pesan khusus ;-)Jawaban paling sederhana
sumber
Hapus saja titik dua
sumber
when
menghapus usus besar sebenarnya adalah cara paling sederhana untuk menyelesaikan ini. jadi sayaSaya menggunakan ini, perhatikan lokasi tanda kutip ganda (") dan tanda kutip tunggal (')
sumber
Kapan pun saya memiliki masalah dengan karakter khusus di string / cmds yang dimungkinkan, saya melakukan ini:
Jadi usus besar standar Anda menjadi
{{':'}}
Dan tugas Anda menjadi:
Sekali lagi ini berfungsi untuk sebagian besar karakter khusus, bahkan string. Pertimbangkan yang berikut ini:
Untuk menjalankan ini di Ansible, cukup terapkan logika yang sama, tugas berikut dijalankan seperti yang diharapkan:
sumber