2017-07-03 36 views
1

这Ansible任务创建的virtualenv,但目录(/home/chris/.virtualenvs/foobar)由根(不太好)资(好!):ansible与根所有者创建的virtualenv

- 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以便它是由“克里斯”所拥有的。任何想法如何强制?

失败的是,如何让“复制”任务以与“点”任务相同的权限运行,以便我可以复制我的文件?

编辑:解决第二个问题 - 我需要使用“复制”任务,而不是文件任务。因此,这...

- 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

什么是错误讯息? –

+0

如果您使用'chris'帐户运行它,Ansible将无法创建由root拥有的目录。使用具有最小/适当权限的帐户。 – techraf

回答

2

尝试运行pipchris

- name: install requirements 
    pip: 
    chdir: /home/chris/website 
    requirements: ./requirements.txt 
    virtualenv: /home/chris/.virtualenvs/foobar 
    become: yes 
    become_user: chris 

而且要一致,使chrissitecustomize.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