I have a python virtualenv running on a remote server. I am trying to update the bashrc of the remote server with the following info using Ansible.
export WORKON_HOME=~/TestEnvs
source /usr/local/bin/virtualenvwrapper.sh
workon my_virtual_env
Is there any way to accomplish this using Ansible?
Use Ansible blockinfile
module to maintain the lines in the .bashrc
or /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
Or better: create a .bashrc.d
(or .bash_profile.d
) directory, replace your .bashrc
with a call to source all files in the directory:
while read filename
do
source "$filename"
done < <(find -L ~/.bashrc.d -type f)
and add the above commands as a separate file. Move other commands from the current .bashrc
to another file and place it in .bashrc.d
directory.
This you can easily achieve with file
and copy
modules in Ansible.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With