2017-03-14 5 views
0

Ich mache eine vernünftige Rolle, um eine saubere Django CMS Instanz zu installieren, wenn ich versuche, meine installierte virtuelle Env zu aktivieren Ich erhalte einen Berechtigungsfehler, ich habe gelesen, dass dies manchmal verursacht werden kann make das env mit verschiedenen Berechtigungen, wenn Sie es versuchen und aktivieren. Ich habe mit und ohne root sudo in beiden Fällen versucht.Ansible Venv Aktivieren Berechtigung verweigert Django CMS

Ich verwende eine Ubuntu/Trusty64 Box.

Hier ist der Fehler im von meiner Aufgabe bekommen:

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

Hier ist meine Rolle Datei:

--- 
- 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 

Jede Beratung wäre sehr dankbar.

+1

Mögliches Duplikat von [Ansible creating a virtualenv] (http://stackoverflow.com/questions/26402123/ansible-creating-a-virtualenv) –

+0

Sie können 'activate' auf diese Weise nicht verwenden, da jede Ansible-Task ist eine andere Sitzung. –

+0

@KonstantinSuvorov Danke für die Antwort, ich habe versucht, die folgende Aufgabe auszuführen: '- Name: Installieren Sie Django-CMS Insaller Befehl:. env/bin/activate && pip installieren djangocms-installer werden: ja' Aber es sagt immer noch die Erlaubnis verweigert. –

Antwort

2

Sie sollten es nicht auf diese Weise machen!

Verwenden Sie pip Paket mit virtualenv Parameter. Wenn Sie immer noch aktivieren möchten. Siehe Beispiel in this SO question.

Wenn Sie weiterhin die virtuelle Umgebung in einer Shell aktivieren möchten, sollten Sie das shell-Modul (nicht command!) Für source bin/activate verwenden, um zu funktionieren. source und . sind Bash-Einbauten, so command Modul kann sie nicht ausführen.

+0

Danke, dass ich darauf hingewiesen habe, bei näherer Betrachtung der Pip-Dokumentation hätte ich diesen Ansatz in erster Linie verwenden sollen, es hat die Installation der Python-Pakete im ventv behoben, aber ich versuche immer noch, das djangocms-Installationsprogramm zum Laufen zu bringen. –

Verwandte Themen