Pat*_*ttu 3 bash virtualenvwrapper ansible ansible-playbook
我有一个在远程服务器上运行的python virtualenv.我正在尝试使用Ansible使用以下信息更新远程服务器的bashrc.
export WORKON_HOME=~/TestEnvs
source /usr/local/bin/virtualenvwrapper.sh
workon my_virtual_env
Run Code Online (Sandbox Code Playgroud)
有没有办法用Ansible实现这个目标?
tec*_*raf 19
使用Ansible blockinfile模块来维护.bashrc或中的行/etc/bashrc:
- name: Ensure virtualenv is sourced from the .bashrc
blockinfile:
dest: "{{ ansible_env.HOME }}/.bashrc"
block: |
export WORKON_HOME=~/TestEnvs
source /usr/local/bin/virtualenvwrapper.sh
workon my_virtual_env
marker: '# {mark} ANSIBLE MANAGED BLOCK - virtualenv'
insertbefore: BOF
create: yes
Run Code Online (Sandbox Code Playgroud)或者更好:创建一个.bashrc.d(或.bash_profile.d)目录,.bashrc用一个调用来替换源目录中的所有文件:
while read filename
do
source "$filename"
done < <(find -L ~/.bashrc.d -type f)
Run Code Online (Sandbox Code Playgroud)
并将上述命令添加为单独的文件.将其他命令从当前.bashrc文件移动到另一个文件并将其放在.bashrc.d目录中.
这可以通过Ansible 轻松实现file和copy模块.
| 归档时间: |
|
| 查看次数: |
3319 次 |
| 最近记录: |