ansible - 通过 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
解决方案
- 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:
并将所有内容缩进一次
推荐阅读
- angular - 从 api 响应分配数据时,BehaviorSubject 未更新
- javascript - jquery自动完成没有拿起数组
- java - Java:切换面板时 JPanel 组件向一侧倾斜
- javascript - 使用 mmenu 修复引导模式
- python - sqlalchemy 如何获取数据列表而不是 sqlalchemy.util._collections.result 列表
- scala - 如何创建 Spark 活动以在 HDInsight 上运行 Scala 脚本?
- angular - 带 Angular 的 Firepad
- javascript - 我要整理排名积分(MySQL)
- android - 调用静态变量?
- r - 在组覆盖/替换其他字符串/NA 中第一次出现后携带字符串