Ansible Playbook'ta dizeyi tam sayıya dönüştürme
Aug 17 2020
Powershell komutundan bir sayı alıyorum ve onu değişkene kaydediyorum. Bu sayımı ne zaman yapmalıyım. Bunu when condition'da kullanmadan önce int olarak değiştirdim. Burada sayı 0 olmasına rağmen yine de bu görev (posta bildirimi) atlanıyor. Biri bana burada neyi yanlış yaptığımı söyleyebilir mi? Çalıştırdığım kod aşağıdadır
- name: Get message_count
shell: echo "{{ (output.stdout | from_json).MessageCount }}"
register: message_count #message_count is Zero here
delegate_to: localhost
- set_fact:
countt: "{{ message_count | int}}"
set_fact kullanarak koşula geçmeden önce # tamsayıya dönüştürmeyi denedi
- debug: var=countt
- name: send mail notification
mail:
host: abc.zzzz.net
port: 25
from: <[email protected]>
to:
- [email protected]
subject: Test mail sent from core server
body: Test mail sent from core server
delegate_to: localhost
when: countt==0
Yanıtlar
6 RomanSpiak Aug 17 2020 at 05:53
işte çalışmasını sağlamak için yaptığım şey:
---
- name: answer serverfault
hosts: all
become: yes
tasks:
- name: Get message_count
shell: ls /tmp/empty | wc -l
register: tmp_count
delegate_to: localhost
- debug: var=tmp_count.stdout
- name: do something else when tmp_count.stdout == 0
shell: echo "I am doing it"
delegate_to: localhost
when: tmp_count.stdout | int == 0
ve işte başucu kitabı çalıştırma sonucu:
ripper@mini-ripper:~/Devel/ansible$ ansip ./test_playbook.yml -i localhost,
PLAY [answer serverfault] **************************************************************************************************************************************************************************************
TASK [Gathering Facts] ********************************************************************************************************************************************************************************************
[WARNING]: Platform linux on host localhost is using the discovered Python interpreter at /usr/bin/python, but future installation of another Python interpreter could change this. See
https://docs.ansible.com/ansible/2.9/reference_appendices/interpreter_discovery.html for more information.
ok: [localhost]
TASK [Get message_count] ******************************************************************************************************************************************************************************************
changed: [localhost -> localhost]
TASK [debug] ******************************************************************************************************************************************************************************************************
ok: [localhost] => {
"tmp_count.stdout": "0"
}
TASK [do something else when tmp_count.stdout == 0] ***************************************************************************************************************************************************************
changed: [localhost -> localhost]
PLAY RECAP ********************************************************************************************************************************************************************************************************
localhost : ok=4 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
özetlemek gerekirse:
- kayıt değişkeninin daha karmaşık bir yapı olup olmadığını kontrol etmelisiniz - genellikle
- başka bir özel gerçeğe ihtiyacın yok
- Eğer kullanmadan Değişkeninizi dönüştürmek gerekir
{{ }}
yılındawhen
koşulu
Nicole Kidman, Michael Keaton ve Val Kilmer'in Batman Olarak Paylaştığı Bu 1 Çekici Özelliğe Bayıldı
Gene Simmons, KISS Çizgi Romanlarının Potansiyel Olarak "İnsanlığı Yeniden Yaratabileceğini" Söyledi
Charly Reynolds Yakın Zamandaki Vokal Kord Ameliyatını Açıkladı: 'Şarkı Söylemekte Sorun Yaşıyordum'
Kevin Jonas'ın Kızı Alena, Doğum Günü Fotoğrafında Büyümüş Görünüyor: '9 Yaşında Gerçek Hissetmiyor'