我正在尝试将几个环境变量附加到服务器上的.bashrc
文件中:
- name: append environment variables to the end of .bashrc file
blockinfile:
dest: "/home/username/.bashrc"
insertafter: EOF
block: |
# environment variable exports
export something="something";
运行以上结果会出现以下错误:
fatal: [ip-address]: FAILED! => {"changed": false, "msg": "Path /home/username/.bashrc does not exist !", "rc": 257}
如果我将路径从/home/username/.bashrc
更改为~/.bashrc
,则该剧本成功,但是当我使用相关用户登录服务器时,.bashrc
尚未更新。
Ansible版本:2.5.1 服务器操作系统:Ubuntu 16.04
我是否应该使用另一个文件而不是.bashrc
来为指定用户附加环境变量(与我运行ansible-playbook
的用户相同)?
目标是添加环境变量,然后在单独的任务source
中添加文件,以便为该用户永久提供环境变量。
答案 0 :(得分:0)
经过几个小时的调试并搜索解决方案后,发现主deploy.yml
文件的设置为connection: local
,导致每个任务都在本地计算机而不是远程服务器上执行。这是导致文件未找到错误的原因。
我现在也使用~/.profile
来存储环境变量,而不是~/.bashrc
,这似乎是首选位置。