जवाबों:
यहाँ यह करने का एक और तरीका है:
- name: my command
command: echo stuff
when: "'groupname' not in group_names"
group_names
दस्तावेज़ के रूप में एक जादुई चर है: https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#accessing-information-about-other-hosts-with-magic-variables :
group_names उन सभी समूहों की एक सूची (सरणी) है जो वर्तमान होस्ट में है।
when: inventory_hostname not in groups.certain_groups
inventory_hostname in groups['groupname']
क्योंकि ऐसे मामलों में जहां ग्राउट स्वयं मौजूद नहीं होता है, तो Ansible एक त्रुटि फेंक देगा जैसे "सुनिश्चित करें कि आपके चर नाम में अमान्य वर्ण नहीं हैं जैसे '-': 'StrictUndefined' प्रकार का तर्क चलने योग्य नहीं है
आप group_vars/
इस तरह से या सीधे मेजबान फ़ाइल में स्थित vars फ़ाइलों में एक नियंत्रण चर सेट कर सकते हैं :
[vagrant:vars]
test_var=true
[location-1]
192.168.33.10 hostname=apollo
[location-2]
192.168.33.20 hostname=zeus
[vagrant:children]
location-1
location-2
और इस तरह से कार्य चलाएं:
- name: "test"
command: "echo {{test_var}}"
when: test_var is defined and test_var
This one looks easy to fix. It seems that there is a value started with a quote, and the YAML parser is expecting to see the line ended with the same kind of quote.