Konnte die Konfigurationsdatei unter "/ etc / ansible /" unter Mac OS X nicht finden

27290
MikeiLL

Ich bin auf Mac OS X und Ansible neu . Ich habe vergessen, wie ich es installiert habe. Ich denke über pip:

$ pip freeze altgraph==0.12 ansible==1.9.2 

Jedenfalls sollte aus dem, was ich lese, eine Konfigurationsdatei vorhanden sein /etc/ansible/, aber der Inhalt dieses Verzeichnisses ist nur:

$ ls -a /etc/ansible/ . .. .hosts.swp hosts roles 

Es sieht auch nicht so aus, als wäre eine Umgebungsvariable definiert:

$ echo $ANSIBLE_CONFIG # blank line 

Ansible funktioniert soweit ich kann (ohne ein lokales ansible.cfg, und es gibt nichts im ansibleOrdner im Benutzerverzeichnis), aber ich bin verwirrt.

Kann jemand bitte erklären, was ich hier nicht bekomme?

11

4 Antworten auf die Frage

12
JakeGould

Soweit ich weiß, kann sich die Ansible- Konfigurationsdatei ( ansible.cfg) hier für Konfigurationseinstellungen auf Benutzerebene befinden:

~/.ansible.cfg 

Sowie die systemweite Konfig hier; Wo Sie angeben, dass Sie keine solche Datei finden können:

 /etc/ansible/ansible.cfg 

Wenn Sie auf Ihrem System mehrere Benutzer haben, gibt es möglicherweise ein ~/.ansible.cfgFloating in einem ihrer Benutzerverzeichnisse, das Sie vergessen haben?

Sie geben zwar an, dass Sie es installiert haben pip, aber wenn Sie die Homebrew-Formel für Ansible überprüfen, wurde sie erst kürzlich am 4. September von Version 1.9.2 auf 1.9.3 gestoßen . Also hast du es vielleicht über Homebrew installiert?

Und Ihre Hauptsorge scheint zu sein, ob das ansible.cfgnotwendig ist:

Ansible funktioniert soweit ich kann (ohne ein lokales ansible.cfg, und es gibt nichts im ansibleOrdner im Benutzerverzeichnis), aber ich bin verwirrt.

Kann jemand bitte erklären, was ich hier nicht bekomme?

Ja, es sollte ohne Konfiguration gut funktionieren. Bei den meisten Software-Elementen werden in einer Konfigurationsdatei nur die Standardeinstellungen des Kernsystems überschrieben. Wenn ansible.cfgalso fehlt, würde Ansible zwar funktionieren, aber nur die Standardeinstellungen des Kernsystems verwenden. Wie in der offiziellen Dokumentation von Ansible erläutert :

Bestimmte Einstellungen in Ansible sind über eine Konfigurationsdatei einstellbar. Die Bestandskonfiguration sollte für die meisten Benutzer ausreichend sein. Es gibt jedoch Gründe, warum Sie sie ändern möchten.

Änderungen können in einer Konfigurationsdatei vorgenommen und verwendet werden, die in der folgenden Reihenfolge verarbeitet wird:

* ANSIBLE_CONFIG (an environment variable) * ansible.cfg (in the current directory) * .ansible.cfg (in the home directory) * /etc/ansible/ansible.cfg 
an keinem Ort. und ich bin der einzige Benutzer. Ich denke, ich könnte es einfach aus dem Git Repo kopieren und in eines dieser Verzeichnisse legen. MikeiLL vor 9 Jahren 0
Guten Anruf. Es wurde nicht über Homebrew installiert, aber es war Version 1.9.2. Neuinstallation via Pip im Moment ... MikeiLL vor 9 Jahren 0
jetzt bei 1.9.3, kann aber an keiner der oben genannten Stellen ein Konfigurationsverzeichnis finden. Es gibt `~ / .ansible / cp` und` / etc / ansible / `mit gleichem Inhalt. MikeiLL vor 9 Jahren 0
Vielen Dank. Macht Sinn. Ich war mir einfach nicht sicher, ob die Bestandskonfiguration normalerweise in einer der referenzierten `ansible.cfg'-Dateien gespeichert wurde. MikeiLL vor 9 Jahren 0
@MikeiLL Nein, mach dir keine Sorgen. Meine letzte Bearbeitung war, als ich endlich Ihre Bedenken verstanden habe. Ich kann mir ehrlich gesagt keine bekannte Software vorstellen, die nicht nach der Logik von "Ich habe Kernvorgaben" funktioniert, aber wenn ich eine Benutzer-Konfigurationsdatei finde, die die Standardeinstellungen überschreibt. Die große Sicherheit / Stabilität Das Risiko, das Sie bekommen, wenn Ihr gesamtes System von einer externen Konfigurationsdatei abhängt, besteht die Gefahr, dass das gesamte System zusammenbricht? Kein guter Plan. Glücklich verstehen Sie jetzt, dass nichts passiert, wenn die Konfigurationsdatei fehlt. JakeGould vor 9 Jahren 1
Ich auch:) Nun zurück zu den ansible docs ... MikeiLL vor 9 Jahren 0
11
Mike D

Die homebrewFormel ersetzt die Zeichenfolge /etc/ansiblein constants.pymit /usr/local/etc/ansible. Scheint mir schlechtes juju zu sein.

Ich hatte nicht /usr/local/etc/ansibledanach brew install ansible. Ich habe jedoch bestätigt, dass, wenn Sie dort eine gültige ansible.cfgAngabe machen, diese (vorerst) berücksichtigt wird.

Meine Empfehlungen:

  1. Verwenden Sie nicht brewzum Installieren Ansible.
  2. Seien Sie explizit über Ihre Konfiguration und hängen Sie nicht von globalen Systemumgebungen ab, wie z /etc/ansible/ansible.cfg.

Code Refs:

Ersetzungsrezept # 475 von Brew Ansible: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/ansible.rb#L475

ansible constants.py # 61: https://github.com/ansible/ansible/blob/v1.9.3-1/lib/ansible/constants.py#L61

Homebrew arbeitet im Benutzerraum, so dass sich alles unter / usr / local befindet. Das ist okay. gagarine vor 8 Jahren 0
2
vaichidrewar

Unter OSX hatte ich ansible mit pip installiert und festgestellt, dass ansible.cfg nicht in / etc / ansible oder in meinem Home-Verzeichnis vorhanden ist.

Quelle: https://github.com/ansible/ansible/issues/18512

pip installiert im Allgemeinen keine Konfigurationsdateien und pip mit ansible ist nicht anders. Wenn Sie nur Ansible ausprobieren möchten, funktioniert dies im Allgemeinen ohne die Datei ansible.cfg. (Sie müssen etwas Inventar angeben, Sie können dies jedoch in der Befehlszeile und nicht in einer Datei tun, wenn Sie möchten.) Wenn Sie eine Beispielkonfigurationsdatei für die Anpassung erhalten möchten, können Sie sie vom Tarball oder vom Quell-Repository hier erhalten: https://github.com/ansible/ansible/blob/devel/examples/ansible.cfg

Inventardateien werden hier erläutert: http://docs.ansible.com/ansible/intro_inventory.html Um Hosts für das Inventar in der Befehlszeile anzugeben, führen Sie einfach Folgendes aus:

ansible -i 'host1,host2,host3' all -m command -a 'hostname' 

Wenn Sie einen einzelnen Host über die Befehlszeile angeben möchten, verwenden Sie ein nachfolgendes Komma in der Inventarzeichenfolge:

ansible -i 'host1,' all -m command -a 'hostname' 
1
Guardius

Ich habe festgestellt, dass Homebrew weder ein /etc/ansibleVerzeichnis noch eine Konfigurations- oder Hostdatei erstellt. Wenn Sie jedoch das /etc/ansibleVerzeichnis erstellen und die Konfiguration aus dem Github-Repository in das /etc/ansibleVerzeichnis kopieren, wird dies als Konfiguration erkannt.

Möglicherweise möchten Sie auch in diese Konfig gehen und die Zeile, in der der Lagerort angegeben ist, mit einem Kommentar versehen:

inventory = / etc / ansible / hosts

Auf diese Weise funktioniert ansible bei einer Homebrew-Installation genauso wie bei jeder anderen Installation, und die Online-Dokumentation kann mit der Homebrew-Version verwendet werden.