अस्थिर प्लेबुक में पूर्णांक के लिए स्ट्रिंग परिवर्तित
मुझे पावरशेल कमांड से एक काउंट मिल रहा है और इसे वेरिएबल पर रजिस्टर करना है। मुझे उस गिनती का इस्तेमाल कब करना है। मैं इसे बदलने के लिए जब यह भी हालत में उपयोग करने से पहले int के लिए बदल दिया है। फिर भी वह कार्य (मेल नोटिफिकेशन) बंद हो रहा है, अंततः यहां गिनती 0 है। क्या कोई मुझे बता सकता है कि मैं यहां क्या गलत कर रहा हूं। नीचे कोड मैं निष्पादित कर रहा हूं
- 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}}"
# सेट_फैक्ट का उपयोग करके शर्त से पहले पूर्णांक में कनवर्ट करना
- 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
जवाब
6 RomanSpiak
यहाँ मैंने इसे बनाने के लिए क्या किया:
---
- 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
और यहां प्लेबुक रन का परिणाम है:
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
इसलिए पुनर्कथन करने के लिए:
- आपको यह देखना चाहिए कि रजिस्टर चर अधिक जटिल संरचना नहीं है - यह आमतौर पर है
- आपको एक और कस्टम तथ्य की आवश्यकता नहीं है
- आपको अपने वैरिएबल को कंडीशन
{{ }}
में उपयोग किए बिना कन्वर्ट करने की आवश्यकता हैwhen