【发布时间】:2019-12-21 12:40:33
【问题描述】:
我有一个使用 YAML 文件进行配置的 Web 应用程序。这是文件中的一个例外:
---
settings:
domain: 127.0.0.1
我有一个 Ansible 剧本,它使用 lineinfile 模块将上面 YAML 文件中的 IP 地址替换为服务器的公共 IP 地址。
- name: Discovering Public Internet Protocol Address
ipify_facts:
register: public_ip
- name: Configuring Application with discovered Public IP
lineinfile:
dest: /application/path/settings.yml
regexp: '^(.*)domain: (.*)$'
line: 'domain: {{ ipify_public_ip }}'
这会找到 127.0.0.1 IP 并将其替换为公共服务器的 IP,但它会破坏 YAML 缩进如下:
---
settings:
domain: 54.12.33.3
问题:“域”与“设置”移动到同一行,我的 ruby 应用程序无法运行迁移,因为它识别出 YAML 语法错误。
我不介意用另一个模块替换 lineinfile,但如果可能的话我想保留它。我已经为此苦苦挣扎了几个小时,并将感谢任何帮助。
【问题讨论】: