gpt4 book ai didi

ansible - 在 Ansible 中,如何在文件末尾添加一行?

转载 作者:行者123 更新时间:2023-12-03 07:59:35 30 4
gpt4 key购买 nike

我希望这很简单。我正在使用 lineinfile像这样的模块:

- name: Update bashrc for PythonBrew for foo user
lineinfile:
dest=/home/foo/.bashrc
backup=yes
line="[[ -s ${pythonbrew.bashrc_path} ]] && source ${pythonbrew.bashrc_path}"
owner=foo
regexp='^'
state=present
insertafter=EOF
create=True

我遇到的问题是它用我的新行替换文件中的最后一行(即 fi),而不是附加该行。这会产生语法错误。

我的参数是否正确?我尝试将正则表达式设置为 '^''' (空白的)。还有其他方法可以解决这个问题吗?

我正在使用 Ansible 1.3.3。

最佳答案

The Ansible discussion group帮助我解决了这个问题。问题是 regexp范围。

由于我只想将该行附加到文件一次,因此我需要正则表达式以尽可能接近地匹配该行。在我的情况下,这很复杂,因为我的行包含变量。但是,假设线路开始 [[ -s $HOME/.pythonbrew ,我发现以下内容就足够了:

- name: Update bashrc for PythonBrew for foo user
lineinfile:
dest: /home/foo/.bashrc
line: "[[ -s ${pythonbrew.bashrc_path} ]] && source ${pythonbrew.bashrc_path}"
regexp: "^\[\[ -s \\$HOME/\.pythonbrew"
owner: foo
state: present
insertafter: EOF
create: True

关于ansible - 在 Ansible 中,如何在文件末尾添加一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19688885/

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