Haftungsausschluss: Ich habe dies nur unter OSX getestet. Aufgrund der verschiedenen Dokumente erwarte ich, dass es auf anderen Plattformen funktioniert.
"Projektverzeichnis" bezieht sich auf das Basisverzeichnis für das Vagrant-Projekt - das Verzeichnis, das enthält Vagrantfile
.
Von Vagrant automatisch generierte Ansible Inventory-Datei:
Vagrant erstellt eine Inventardatei mit den Standard-Ansible-Verbindungsvariablen. Suchen Sie es in <project directory>/.vagrant/provisioners/ansible/inventory/vagrant_ansible_inventory
.
Diese Datei wird von Vagrant bei Bedarf neu generiert, sodass manuelle Änderungen überschrieben werden. Den Vagrant-Dokumenten zufolge können Sie jedoch mehrere Computer, Gruppenvariablen usw. in angeben Vagrantfile
, die dieser Inventardatei hinzugefügt werden.
Konfigurieren Sie Ansible als Standard für diese Inventardatei:
Um diese Datei als Standard für den ansible
Befehl festzulegen, wenn Sie sich im Projektverzeichnis (auf dem Host) befinden, fügen Sie eine ansible.cfg
Datei mit dem folgenden Inhalt in Ihr Projektverzeichnis ein, und ändern Sie den Pfad nach Bedarf:
[defaults]
inventory = ./path/to/inventory
Um zu bestätigen, dass diese Inventardatei verwendet wird, suchen Sie sie als Standard, der von ansible gemeldet wird:
(aus dem Projektverzeichnis)
$ ansible | grep inventory
ERROR! Missing target hosts
-i INVENTORY, --inventory-file=INVENTORY
specify inventory host path (default=./.vagrant/provis
ioners/ansible/inventory/vagrant_ansible_inventory) or
So bestätigen Sie Ihre Gastgeber:
$ ansible all --list-hosts
hosts (2):
master
slave
Ansible mit diesen Hosts verwenden:
Aus dem Projektverzeichnis heraus sollten Sie dann in der Lage sein, ansible
die von Ihnen definierten Hosts wie gewohnt zu verwenden Vagrantfile
.
Zum Beispiel:
ansible slave -a 'hostname'
~/.ssh/config