首页 > 解决方案 > 通过 Ansible 修改 PATH 变量

问题描述

下面是我系统中 root 用户的 bash 配置文件。

[root@newvm-2 ~]# cat .bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

我想编写一个 ansible 代码,它将在 root 用户的 bash_profile 中的 PATH 末尾添加以下路径:

/usr/edb/efm 例如:新的 PATH 看起来像

PATH=$PATH:$HOME/bin:/usr/edb/efm

标签: ansible

解决方案


- lineinfile:
    regexp: '^(PATH=.*)$'
    backrefs: yes
    line: '\1:/user/edb/efm'
    path: '/root/.bashrc'

lineinfile 操作文件中的各个行。 regexp: '^(PATH=.*)$'说:找到以开头的最后一行PATH=并记住该行。这也指定将更改哪一行。 backrefs: yes意味着我可以在我设置的行中使用该记住的行。 line: '\1:/user/edb/efm'表示取正则表达式匹配的第一组( 中的整行())并:/user/edb/efm在其后面写。 path: '/root/.bashrc'只是指定了哪个文件被操纵,我在这里猜到了,你可能知道正确的那个。

这只是一个任务,如果你想要一个完整的游戏,只需前置

- hosts: all
  tasks:

并将所有内容缩进一次


推荐阅读