Ansible新手咨询:Windows服务器基于主机名设变量的语法是否正确?
你的Ansible变量条件设置语法是正确的
你给出的写法完全符合Ansible的Jinja2模板语法规范,能精准实现你的需求:
- 当
inventory_hostname(Ansible内置的清单主机名变量)包含字符'Z'时,my_variable会被赋值为value_if_contains_Z - 主机名不含'Z'时,自动使用
default_value
如果需要不区分大小写的匹配(比如主机名含小写'z'也触发指定值),可以稍作调整:
vars: my_variable: "{{ 'value_if_contains_Z' if 'z' in inventory_hostname.lower() else 'default_value' }}"
你可以用以下简单playbook测试逻辑是否生效:
- name: 测试条件变量配置 hosts: windows_servers vars: my_variable: "{{ 'value_if_contains_Z' if 'Z' in inventory_hostname else 'default_value' }}" tasks: - name: 打印变量值 ansible.windows.win_debug: msg: "主机 {{ inventory_hostname }} 使用的变量值: {{ my_variable }}"
内容的提问来源于stack exchange,提问作者user18610347
相关产品推荐
相关产品推荐

