我有一个正在构建的 HA 设置。我正在使用 Ansible 2.9.11。我需要搜索主机名,如果是 b 端,则将备份配置复制过来。我已经尝试了以下代码,但它不起作用。或者有没有不同的方法来实现这一点?
[警告]:条件语句不应包含 jinja2 模板分隔符,例如 {{ }} 或 {% %}。发现:{{inventory_hostname}} 中的 'b' 致命:[dev-sca02b]:失败!=> {"msg": "{{inventory_hostname }}' 中的条件检查 ''b' 失败。错误是:评估条件时出错({{inventory_hostname }} 中的'b'):'dev' 未定义\ n\n错误似乎在“/Users/user1/Documents/Ansible/sca_fusion.yaml”:第 134 行,第 5 列,但可能\n在文件中的其他地方,具体取决于确切的语法问题。\n\n违规行似乎是:\n\n\n - 名称:“将 keepalived 更改为备份”\n ^ 此处\n"}
- name: "Change keepalived to backup"
replace:
path: /etc/keepalived/keepalived.conf
regexp: "MASTER"
replace: "BACKUP"
when: "'b' in {{ inventory_hostname }}"
Run Code Online (Sandbox Code Playgroud)
该警告应将您指向问题的主要来源:
警告]:条件语句不应包含 jinja2 模板分隔符,例如 {{ }} 或 {% %}。
一个when条件是已经在一个隐含的神社模板内容,让您无需显式地创建一个你。你要:
- name: "Change keepalived to backup"
replace:
path: /etc/keepalived/keepalived.conf
regexp: "MASTER"
replace: "BACKUP"
when: "'b' in inventory_hostname"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
86 次 |
| 最近记录: |