kann ~ / .bashrc-Datei nicht mit ansible beziehen

8

Ich habe eine Liste von Aliasen in einer Datei, .bash_aliases , die mit ansible playbook auf entfernte Server kopiert wird. Die Datei wird in das Ziel kopiert, aber die Datei .bashrc (die wiederum die Datei .bash_aliases lädt) wird nicht mit der folgenden ansprechbaren Aufgabe geladen.

  

Ich habe versucht, das ausführbare Argument

zu geben
%Vor%
  

Ohne Argument

%Vor%
  

Mit Rohmodul

%Vor%

Mit Befehlsmodul       - name: Quelle der .bashrc-Datei         Befehl: source ~ / .bashrc

Nichts funktioniert !!! Irgendeine Hilfe

    
Ajeet Khan 07.12.2015, 12:41
quelle

2 Antworten

4

Nachdem Sie Ihre Kommentare gelesen haben, haben Sie angegeben, dass Sie permanate Aliase erstellen möchten und nicht für eine bestimmte Sitzung. Warum erstellen Sie diese Aliasnamen nicht innerhalb von /etc/profile.d auf den Computern, auf denen diese speziellen Aliase anstelle von Benutzern aktiviert sein müssen?

Auch von einem anderen Post, der auftauchte, als ich eine Google-Suche nach Ansible-Details durchführte, da ich kein Ansible-Experte bin ... Mit Ansible ist es nicht möglich, .bashrc zu finden (Danke an @chucksmash für den Link)

"Steve Midgley

Sie haben zwei Möglichkeiten, die Quelle mit ansible zu verwenden. Einer ist mit dem Befehl "shell:" und / bin / sh (der Standard für das Ansible). "Quelle" heißt "." in / bin / sh. Also wäre dein Befehl:

%Vor%

Beachten Sie, dass Sie nach dem Sourcing einen Befehl ausführen müssen. Bashrc b / c Jede ssh-Sitzung ist unterschiedlich - jeder ansible-Befehl wird in einer separaten ssh-Transaktion ausgeführt.

Ihre zweite Option besteht darin, die Ansible-Shell zur Verwendung von bash zu zwingen, und dann können Sie den "source" -Befehl verwenden: \

%Vor%

Abschließend möchte ich noch erwähnen, dass Sie "/ etc / profile" tatsächlich beziehen sollten, wenn Sie auf Ubuntu oder ähnlichem sind, was eine lokale Anmeldung vollständiger simuliert. "

    
bluerojo 07.12.2015 15:23
quelle
0

Wenn Sie erwarten, dass die Variablen, die Sie in einer Bash-Instanz festgelegt haben, in anderen Bash-Instanzen oder in der Ansible-Instanz, in der dieses Bash-Skript ausgeführt wurde, sichtbar sind, gibt es keine Möglichkeit; Dies ist dem Unix-Prozessmodell inhärent.

Was Sie tun können ist, setzen Sie eine Variable und führen Sie dann das Werkzeug aus, das für diesen Wert benötigt wird.

%Vor%

Dies kann beliebig komplex sein, obwohl Sie wahrscheinlich besser ein separates externes Skript erstellen, wenn die Aufgabe, die Sie ausführen müssen, mehr als nur das einfachste Debugging erfordern kann.

    
tripleee 13.07.2016 17:59
quelle

Tags und Links