Ansible Venv 激活权限被拒绝 Django CMS

Ansible Venv Activate Permission Denied Django CMS

我正在扮演一个角色来安装一个干净的 Django CMS 实例,当我试图激活我安装的虚拟环境时,我遇到了一个权限错误,我已经读过,有时这可能是在用不同的环境创建环境时引起的当您尝试激活它时的权限。在这两种情况下,我都尝试过使用和不使用 root sudo。

我正在使用 Ubuntu/Trusty64 盒子。

这是我从我的任务中得到的错误:

TASK [dependancies : Activate Venv] ******************************************** fatal: [default]: FAILED! => {"changed": false, "cmd": ". env/bin/activate", "failed": true, "msg": "[Errno 13] Permission denied", "rc": 13}

这是我的角色文件:

---
- name: Update apt-get
  become: yes
  apt:
    update_cache: yes

- name: Install Packages
  apt:
    name: "{{ item }}"
  with_items:
    - nginx
    - python3
    - python-pip
    - nodejs
    - git
    - python-passlib # for htpasswd
    - postgresql
    - libpq-dev # for postgresql
    - python-psycopg2 # for postgresql
    - ansible # to run ansible-pull
  become: yes

- name: Install Python Libraries
  pip:
    name: "{{ item }}"
    executable: pip
  become: yes
  with_items:
    - virtualenv
    - awscli # for backups

- name: Create Venv
  command: virtualenv env
  args:
    creates: env/bin/activate

- name: Activate Venv
  command: . env/bin/activate

- name: Install Django-CMS Insaller
  pip:
    name: djangocms-installer
    executable: pip

- name: Create Folder
  file: path=django state=directory

- name: Create Django CMS
  command: djangocms -s -p . testSite
  args:
    chdir: django
  become: yes

如有任何建议,我们将不胜感激。

你一开始就不应该这样做!

使用带有 virtualenv 参数的 pip 包。如果你还想激活。请参阅 this SO question 中的示例。

如果您仍想在 shell 中激活虚拟环境,您应该使用 shell 模块(而不是 command!)以使 source bin/activate 工作。 source. 是 bash 内置函数,因此 command 模块无法执行它们。