小编Dom*_*nik的帖子

Ansible“lineinfile”:添加新行(使用 PATH=)或附加到现有行(使用 PATH=)

我正在尝试将路径部分替换或附加到 Linux 机器上 /etc/environment 中的路径定义。

这是我所拥有的:

//all.yml
my_path: "/usr/bin:/usr/sbin"
my_extra_path: "/usr/extra/path"
Run Code Online (Sandbox Code Playgroud)

在我的角色文件中:

//updatePath.yml
- name: update /etc/environment
  lineinfile:
    dest=/etc/environment
    state=present
    backrefs=yes
    regexp='PATH=({{ my_path }}:?)?({{ my_extra_path }}:?)?(.*)'
    line='PATH={{ my_extra_path }}:{{ my_extra_path }}:\3'
Run Code Online (Sandbox Code Playgroud)

现在,当我运行该角色时,它可以很好地更新现有的 PATH 行,但不会在该行内创建重复项,甚至不会创建重复的行。到目前为止,一切都很好。

当没有包含“PATH=”的行时,我希望它添加一个新行。但事实并非如此。

是我的预期错误还是问题出在哪里?

regex ansible

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

ansible ×1

regex ×1