ansible
Inwentarz
Szukaj…
Parametry
Parametr | Wyjaśnienie |
---|---|
ansible_connection | Typ połączenia z hostem. Może to być nazwa dowolnej wtyczki połączenia ansible. Typy protokołów SSH to smart , ssh lub paramiko . Domyślnie jest sprytny. Typy inne niż SSH są opisane w następnej sekcji. |
ansible_host | Nazwa hosta, z którym chcesz się połączyć, jeśli jest inna niż alias, który chcesz mu nadać. |
ansible_port | Numer portu ssh, jeśli nie 22 |
użytkownik_odpowiedzi | Domyślna nazwa użytkownika ssh do użycia. |
ansible_ssh_pass | Hasło ssh do użycia (jest to niepewne, zdecydowanie zalecamy używanie --ask-pass lub SSH) |
ansible_ssh_private_key_file | Plik klucza prywatnego używany przez ssh. Przydatne, jeśli używasz wielu kluczy i nie chcesz używać agenta SSH. |
ansible_ssh_common_args | To ustawienie jest zawsze dołączane do domyślnego wiersza poleceń dla sftp , scp i ssh . Przydatne do skonfigurowania ProxyCommand dla określonego hosta (lub grupy). |
ansible_sftp_extra_args | To ustawienie jest zawsze dołączane do domyślnego wiersza polecenia sftp . |
ansible_scp_extra_args | To ustawienie jest zawsze dołączane do domyślnego wiersza polecenia scp . |
ansible_ssh_extra_args | To ustawienie jest zawsze dołączane do domyślnego wiersza polecenia ssh . |
ansible_ssh_pipelining | Określa, czy używać potokowania SSH. Może to zastąpić ustawienie pipelining w ansible.cfg . |
ansible_become | Odpowiednik ansible_sudo lub ansible_su pozwala wymusić eskalację uprawnień |
ansible_become_method | Pozwala ustawić metodę eskalacji uprawnień |
ansible_become_user | Odpowiednik użytkownika ansible_sudo_user lub ansible_su_user , pozwala ustawić użytkownika, którym zostaniesz, poprzez eskalację uprawnień |
ansible_become_pass | Odpowiednik ansible_sudo_pass lub ansible_su_pass , pozwala ustawić hasło eskalacji uprawnień |
ansible_shell_type | Typ powłoki systemu docelowego. Nie powinieneś używać tego ustawienia, chyba że ustawisz ansible_shell_executable na ansible_shell_executable niezgodną z Bourne (sh). Domyślnie polecenia są formatowane przy użyciu składni sh style. Ustawienie tej wartości na csh lub fish spowoduje, że polecenia wykonywane w systemach docelowych będą zgodne ze składnią tych powłok. |
ansible_python_interpreter | Ścieżka python hosta docelowego. Jest to przydatne w systemach z więcej niż jednym Pythonem lub nie znajdujących się w / usr / bin / python, takich jak * BSD, lub gdzie / usr / bin / python nie jest Pythonem z serii 2.X. Nie używamy mechanizmu / usr / bin / env jako że wymaga ścieżkę zdalnego użytkownika należy ustawić prawo, a także zakłada, że Python jest wykonywalny o nazwie python, gdzie plik wykonywalny może być nazwany coś podobnego python2.6. |
interpreter ansible _ * _ | Działa na wszystko, takie jak Ruby lub Perl i działa podobnie jak ansible_python_interpreter . Zastępuje shebang modułów, które będą działały na tym hoście. |
ansible_shell_executable | Ustawia powłokę, której kontroler ansible będzie używał na maszynie docelowej, zastępuje executable w ansible.cfg który domyślnie ma wartość / bin / sh . Naprawdę powinieneś to zmienić tylko wtedy, gdy nie można użyć / bin / sh (tzn. / Bin / sh nie jest zainstalowany na komputerze docelowym lub nie można go uruchomić z sudo.). Nowości w wersji 2.1. |
Zapasy z nazwą użytkownika i hasłem
Inwentaryzacja to Ansible sposób śledzenia wszystkich systemów w infrastrukturze. Oto prosty plik inwentarza zawierający pojedynczy system i dane logowania do Ansible.
[targethost]
192.168.1.1 ansible_user=mrtuovinen ansible_ssh_pass=PassW0rd
Inwentaryzacja z niestandardowym kluczem prywatnym
[targethost]
192.168.1.1 ansible_user=mrtuovinen ssh_private_key_file=~/.ssh/custom_key
Inwentaryzacja z niestandardowym portem SSH
[targethost]
192.168.1.1 ansible_user=mrtuovinen ansible_port=2222
Przekaż inwentarz statyczny do playbooka ansible
ansible-playbook -i path/to/static-inventory-file -l myhost myplaybook.yml
Przekaż dynamiczne zapasy do Ansible-Playbook
ansible-playbook -i path/to/dynamic-inventory-script.py -l myhost myplaybook.yml
Zobacz dynamiczne zasoby, aby uzyskać więcej informacji.
Inwentaryzacja, zmienne grupowe i Ty
struktura projektu (najlepsza praktyka ansible).
project/
group_vars/
development
inventory.development
playbook.yaml
wszystko zaczyna się od inwentaryzacji
[development]
dev.fakename.io
[development:vars]
ansible_host: 192.168.0.1
ansible_user: dev
ansible_pass: pass
ansible_port: 2232
[api:children]
development
który pozwala linkować do group_vars. Trzymaj dane „specyficzne” dla tego środowiska ...
---
app_name: NewApp_Dev
app_url: https://dev.fakename.io
app_key: f2390f23f01233f23f
który pozwala uruchomić następujący poradnik PRZECIW plikowi inwentarza:
---
- name: Install api.
hosts: api
gather_facts: true
sudo: true
tags:
- api
roles:
- { role: api, tags: ["api"] }
z następującą linią czasu:
ansible-playbook playbook.yaml -i inventory.development
Plik hostów
Plik hosta służy do przechowywania połączeń dla podręczników Anisble. Istnieją opcje definiowania parametrów połączenia:
ansible_host
to ansible_host
hosta lub adres IP
ansible_port
to port używany przez maszynę do SSH
ansible_user
to zdalny użytkownik, z którym można się połączyć
ansible_ssh_pass
jeśli używasz hasła do SSH
ansible_ssh_private_key_file
jeśli chcesz użyć wielu kluczy specyficznych dla hostów
Są to najczęściej używane opcje. Więcej można znaleźć w oficjalnej dokumentacji Ansible .
Oto przykładowy plik hosts
:
# 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