gpt4 book ai didi

linux - Ansible - 如何在 lineinfile 模块中使用三元函数?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:34:34 32 4
gpt4 key购买 nike

如果它不在基于主机名的文件中,我们需要添加行。

意思是:

  • 如果主机名是 abc 则行 "ABC" 转到 /etc/app.conf
  • 否则 "XYZ" 行将转到 /etc/app.conf 文件。

对此有什么更好的方法?
我们是使用 jinja2 模板还是在 playbook 中定义逻辑?
请对两者提出建议。

最佳答案

这真的是一个偏好问题,你想在输出中记录什么。我想对于这样一个简单的任务,使用以下方法是最简单的:

- name: Ensure line ABC is configured for host ABC
lineinfile:
dest: /etc/abc.conf
line: "ABC"
when: inventory_hostname == "abc"

- name: Ensure line XYZ is configured for hosts other than ABC
lineinfile:
dest: /etc/abc.conf
line: "XYZ"
when: inventory_hostname != "abc"

或者在一个任务中使用三元过滤器:

- lineinfile:
dest: /etc/abc.conf
line: "{{ ( inventory_hostname == 'abc' ) | ternary ('ABC','XYZ') }}"

如果配置文件需要更多更改,或者您希望确保配置完全符合您的要求,模板文件会更合适。

关于linux - Ansible - 如何在 lineinfile 模块中使用三元函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39261914/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com