ansible
Inventar
Suche…
Parameter
Parameter | Erläuterung |
---|---|
ansible_connection | Verbindungstyp zum Host Dies kann der Name eines der Verbindungs-Plugins von ansible sein. SSH Protokolltypen sind smart , ssh oder paramiko . Der Standard ist smart. Nicht-SSH-basierte Typen werden im nächsten Abschnitt beschrieben. |
ansible_host | Der Name des Hosts, zu dem eine Verbindung hergestellt werden soll, falls er sich von dem Alias unterscheidet, den Sie ihm geben möchten. |
ansible_port | Die SSH-Portnummer, wenn nicht 22 |
ansible_user | Der standardmäßige ssh-Benutzername, der verwendet werden soll. |
ansible_ssh_pass | Das zu verwendende ssh-Passwort (dies ist unsicher, wir empfehlen dringend die Verwendung von --ask-pass oder SSH-Schlüsseln) |
ansible_ssh_private_key_file | Von ssh verwendete private Schlüsseldatei. Nützlich, wenn mehrere Schlüssel verwendet werden und Sie keinen SSH-Agenten verwenden möchten. |
ansible_ssh_common_args | Diese Einstellung wird immer an die Standardbefehlszeile für sftp , scp und ssh angehängt. Nützlich zum Konfigurieren eines ProxyCommand für einen bestimmten Host (oder eine bestimmte Gruppe). |
ansible_sftp_extra_args | Diese Einstellung wird immer an die Standard- Sftp- Befehlszeile angehängt. |
ansible_scp_extra_args | Diese Einstellung wird immer an die Standard-Befehlszeile von scp angehängt. |
ansible_ssh_extra_args | Diese Einstellung wird immer an die standardmäßige ssh- Befehlszeile angehängt. |
ansible_ssh_pipelining | Bestimmt, ob SSH-Pipelining verwendet werden soll oder nicht. Dies kann die pipelining Einstellung in ansible.cfg . |
ansible_become | Äquivalent zu ansible_sudo oder ansible_su , um die Privilegieneskalation zu erzwingen |
ansible_become_method | Ermöglicht das Festlegen der Berechtigungseskalationsmethode |
ansible_become_user | Äquivalent zu ansible_sudo_user oder ansible_su_user : Ermöglicht die Einstellung des Benutzers, zu dem Sie eine Privilegieneskalation erhalten |
ansible_become_pass | Entspricht ansible_sudo_pass oder ansible_su_pass . Hier können Sie das Kennwort für die Berechtigungseskalation festlegen |
ansible_shell_type | Der Shell-Typ des Zielsystems. Sie sollten diese Einstellung nur verwenden, wenn Sie die ansible_shell_executable auf eine nicht mit Bourne (sh) kompatible Shell festgelegt haben. Standardmäßig werden Befehle mit der sh -Style-Syntax formatiert. Wenn Sie diese Einstellung auf csh oder fish , folgen die auf Zielsystemen ausgeführten Befehle stattdessen der Syntax dieser Shell. |
ansible_python_interpreter | Der Python-Pfad des Zielhosts. Dies ist nützlich für Systeme mit mehr als einem Python oder nicht unter / usr / bin / python wie * BSD oder wo / usr / bin / python kein Python der 2.X-Serie ist. Wir verwenden den Mechanismus / usr / bin / env nicht , da hierfür der Pfad des Remote-Benutzers richtig gesetzt werden muss. Außerdem wird davon ausgegangen , dass die ausführbare Python- Datei python genannt wird, wobei die ausführbare Datei etwa python2.6 heißen könnte . |
ansible _ * _ dolmetscher | Funktioniert für alles wie Ruby oder Perl und funktioniert genauso wie ansible_python_interpreter . Dies ersetzt Shebang von Modulen, die auf diesem Host ausgeführt werden. |
ansible_shell_executable | Dadurch wird die Shell festgelegt, die der anpassbare Controller auf dem Zielcomputer verwendet. Er überschreibt die executable in ansible.cfg die standardmäßig auf / bin / sh eingestellt ist . Sie sollten es eigentlich nur ändern, wenn / bin / sh nicht verwendet werden kann (dh / bin / sh ist nicht auf dem Zielcomputer installiert oder kann nicht von sudo ausgeführt werden.). Neu in Version 2.1. |
Inventar mit Benutzername und Passwort
Inventory ist die Ansible-Methode, um alle Systeme in Ihrer Infrastruktur zu verfolgen. Hier ist eine einfache Inventardatei, die ein einzelnes System und die Anmeldeinformationen für Ansible enthält.
[targethost]
192.168.1.1 ansible_user=mrtuovinen ansible_ssh_pass=PassW0rd
Inventar mit benutzerdefiniertem privaten Schlüssel
[targethost]
192.168.1.1 ansible_user=mrtuovinen ssh_private_key_file=~/.ssh/custom_key
Inventar mit benutzerdefiniertem SSH-Port
[targethost]
192.168.1.1 ansible_user=mrtuovinen ansible_port=2222
Statisches Inventar an das Ansible-Playbook übergeben
ansible-playbook -i path/to/static-inventory-file -l myhost myplaybook.yml
Übergeben Sie das dynamische Inventar an das Ansible-Playbook
ansible-playbook -i path/to/dynamic-inventory-script.py -l myhost myplaybook.yml
Weitere Informationen finden Sie unter Dynamisches Inventar .
Inventar, Gruppen-Vars und Sie
Projektstruktur (Ansible Best Practice).
project/
group_vars/
development
inventory.development
playbook.yaml
Alles beginnt mit der Entwicklung von Lagerbeständen
[development]
dev.fakename.io
[development:vars]
ansible_host: 192.168.0.1
ansible_user: dev
ansible_pass: pass
ansible_port: 2232
[api:children]
development
Damit können Sie auf group_vars verlinken. Halten Sie die Daten für diese Umgebung "spezifisch" ...
---
app_name: NewApp_Dev
app_url: https://dev.fakename.io
app_key: f2390f23f01233f23f
Damit kann man das folgende Playbook gegen die Inventardatei ausführen:
---
- name: Install api.
hosts: api
gather_facts: true
sudo: true
tags:
- api
roles:
- { role: api, tags: ["api"] }
mit der folgenden runline:
ansible-playbook playbook.yaml -i inventory.development
Hosts-Datei
Die Hostdatei wird zum Speichern von Verbindungen für Anisble-Playbooks verwendet. Es gibt Optionen zum Definieren von Verbindungsparametern:
ansible_host
ist der Hostname oder die IP-Adresse
ansible_port
ist der Port, den die Maschine für SSH verwendet
ansible_user
ist der entfernte Benutzer, zu dem eine Verbindung hergestellt werden soll
ansible_ssh_pass
wenn ein Kennwort für SSH verwendet wird
ansible_ssh_private_key_file
wenn Sie mehrere für Hosts spezifische Schlüssel verwenden müssen
Dies sind die am häufigsten verwendeten Optionen. Weitere Informationen finden Sie in der offiziellen Dokumentation von Ansible .
Hier ist eine Beispiel- hosts
Datei:
# Consolidation of all groups
[hosts:children]
web-servers
offsite
onsite
backup-servers
[web-servers]
server1 ansible_host=192.168.0.1 ansible_port=1600
server2 ansible_host=192.168.0.2 ansible_port=1800
[offsite]
server3 ansible_host=10.160.40.1 ansible_port=22 ansible_user=root
server4 ansible_host=10.160.40.2 ansible_port=4300 ansible_user=root
# You can make groups of groups
[offsite:children]
backup-servers
[onsite]
server5 ansible_host=10.150.70.1 ansible_ssh_pass=password
[backup-servers]
server6 ansible_host=10.160.40.3 ansible_port=77