如何在Ansible主机名称中对冒号特殊字符进行转义
解决方法
原配置中未转义的冒号会被Ansible识别为主机模式的分隔符,因此会拆成my和host两个独立主机匹配,你可以通过以下方式转义冒号,让其被识别为单个主机名:
方法1:单引号包裹+单反斜杠转义
单引号内的反斜杠不需要额外转义,写法更简洁:
- name: Do stuff hosts: 'my\:host' ...
方法2:双引号包裹+双反斜杠转义
双引号会自动转义反斜杠本身,因此需要写两个反斜杠才能被Ansible识别为转义符:
- name: Do stuff hosts: "my\\:host" ...
通用兼容方案
如果担心转义符在不同Ansible版本下的兼容性,也可以通过条件判断匹配目标主机,无需处理特殊字符转义:
- name: Do stuff hosts: all gather_facts: no when: inventory_hostname == 'my:host' tasks: # 你的任务逻辑 ...
内容的提问来源于stack exchange,提问作者calebwoof
相关产品推荐
相关产品推荐

