Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更新文件配置,但通过Ansible保留以前的值_Ansible - Fatal编程技术网

更新文件配置,但通过Ansible保留以前的值

更新文件配置,但通过Ansible保留以前的值,ansible,Ansible,是否可以通过lineinfle或其他模块更新文件配置,但保留以前的值 例如: SOME_ARGS=" -AA:1AA -BB:2BB -CC:3CC" 在行尾或行首添加-DD:4DD,结果为: SOME_ARGS=" -AA:1AA -BB:2BB -CC:3CC -DD:4DD" 或 这将不起作用,因为它将用行值替换文本: - lineinfile: path: "/some/file.txt" regexp: "^SOME_ARGS=.*-DD:4DD" line

是否可以通过
lineinfle
或其他模块更新文件配置,但保留以前的值

例如:

SOME_ARGS=" -AA:1AA -BB:2BB -CC:3CC"
在行尾或行首添加
-DD:4DD
,结果为:

SOME_ARGS=" -AA:1AA -BB:2BB -CC:3CC -DD:4DD"

这将不起作用,因为它将用行值替换文本:

- lineinfile:
    path: "/some/file.txt"
    regexp: "^SOME_ARGS=.*-DD:4DD"
    line: "-DD:4DD"
    insertafter: "^SOME_ARGS=\""
    state: present

谢谢你的帮助

Ansible有些困难,我建议您将这些值更改存储在VCS上,然后您可以返回到以前的任何值

使用lineinfle,一个简单的解决方案是应用模块两次,一次用于注释上一个值,例如在开始处放置一个#,第二次将在注释后插入一个新行

注意,您的regexp需要处理其他文件值,Ansible中的这个模块要正确处理一些配置文件有点困难

- lineinfile:
    path: "/some/file.txt"
    regexp: "^SOME_ARGS=.*-DD:4DD"
    line: "-DD:4DD"
    insertafter: "^SOME_ARGS=\""
    state: present