这个Ansible任务创建了一个virtualenv(好!),但目录(/home/chris/.virtualenvs/foobar)由root拥有(不太好):
- name: install requirements
pip:
chdir: /home/chris/website
requirements: ./requirements.txt
virtualenv: /home/chris/.virtualenvs/foobar
但令我疯狂的是,下一个任务失败了,显然是因为根所有权
- name: copy sitecustomize.py
file:
src: /home/chris/website/sitecustomize.py
dest: /home/chris/.virtualenvs/foobar/lib/python2.7/sitecustomize.py
remote_src: yes
我认为我真正想要解决的问题是创建.virtualenv,以便它由" chris"拥有。知道怎么强迫吗?
如果做不到,怎么能得到"复制"任务以与" pip"相同的权限运行任务,以便我可以复制我的文件?
编辑:解决了第二个问题 - 我需要使用"复制"任务,而不是文件任务。所以这......
- name: copy sitecustomize.py
copy:
src: /home/chris/website/sitecustomize.py
dest: /home/chris/.virtualenvs/foobar/lib/python2.7/sitecustomize.py
remote_src: yes
答案 0 :(得分:2)
尝试将pip
作为chris
运行:
- name: install requirements
pip:
chdir: /home/chris/website
requirements: ./requirements.txt
virtualenv: /home/chris/.virtualenvs/foobar
become: yes
become_user: chris
为了保持一致,请chris
成为sitecustomize.py
的所有者:
- name: copy sitecustomize.py
file:
src: /home/chris/website/sitecustomize.py
dest: /home/chris/.virtualenvs/foobar/lib/python2.7/sitecustomize.py
remote_src: yes
group: chris
owner: chris