Ich versuche, psycopg2 mit Ansibles pip
Modul in einem virtuellen Python-Server zu installieren , aber ich muss einen Eintrag in PATH voranstellen, damit er korrekt erstellt wird (der Pfad zum Verzeichnis muss bekannt sein pg_config
). Ich sehe, dass ich environment
zum pip
Modul übergehen kann , bin mir aber nicht sicher, wie ich es voranstellen soll, anstatt es zu überschreiben PATH
.
Hier versuche ich, dem Pfad das erforderliche Verzeichnis voranzustellen, aber es überschreibt die virtuelle Umgebung PATH
und schlägt fehl:
- pip:
name: psycopg2
virtualenv: /path/to/my/venv
environment:
PATH: /usr/pgsql-9.3/bin:$PATH
quelle
ansible_env.PATH
Option war das, was ich brauchte - hat perfekt funktioniert. Vielen Dank!~/bin
, verwenden SiePATH: "{{ansible_env.HOME}}/bin:{{ansible_env.PATH}}"
. Wenn Sie stattdessen verwendenPATH: "~/bin:{{ansible_env.PATH}}"
, können einige Programme (z. B. Python'sshutil.which
) diese Komponente nicht verwenden.ansible_env
sich dies auf die Umgebung des SSH-Benutzers bezieht, nicht auf diesudo
Umgebung.ansible_env.USER
kann daherroot
eher zu einem nicht privilegierten Benutzer führen.