/ / problem z pisaniem playbooka ansible - ansible

Problem z pisaniem ansibla playbook - ansibla

Cześć chłopaki, mam naprawdę małe doświadczeniepracując z ansible, ale dzisiaj mój szef powiedział mi, że powinienem napisać podręcznik do gry w ansible, aby sprawdzić miejsce na dysku w maszynach produkcyjnych mamy 15 komputerów i chcę wprowadzić każdy z nich, a następnie wykonać polecenie „df -h”, a następnie wysłać dane wyjściowe na e-mail. czy możesz mi podać szablon tego playooka? lubię to

host <ip address>
command <df -h>
SendToEmail <emails...>

Dziękuję i miłego dnia!

Odpowiedzi:

1 dla odpowiedzi № 1

Dobra, postaram się dać ci miejsce do rozpoczęcia.

Zasadniczo musisz wygenerować klucz ssh na serwerze, na którym będziesz uruchamiał Ansible (uważaj to za swój serwer główny lub kontrolny).

Następnie skopiuj klucz ssh do każdego z 15Serwery, na których chcesz wykonać polecenie przy użyciu Ansible. (ssh-copy-id). O ile oczywiście nie lubisz wpisywać nazwy użytkownika i hasła 15 razy za każdym razem, gdy uruchomisz poniższe polecenie.

Kiedy to zadanie zniknie: 1) Edytuj plik hostów Ansible w / etc / ansible (/ etc / ansible / hosts) i dodaj adresy IP pod blokiem. Plik powinien wyglądać tak:

[servers]
ip1.xxx.xxx.xxx
ip2.xxx.xxx.xxx

2) Uruchom polecenie

ansible -m shell -a "df -h" all

To pozwoli Ci zacząć, możesz użyć tego wyjścia do wysłania wiadomości e-mail za pomocą pewnego rodzaju klienta poczty.

Uwaga, nie jest to książka. Powinieneś przeczytać, jak stworzyć playbook, jeśli chcesz to zrobić w ten sposób.


0 dla odpowiedzi nr 2

-Utwórz plik hostów ansible, jak powiedział @Jesse.

-Przykładowy podręcznik:

- name: Test
hosts: servers
gather_facts: false
tasks:
- name: Test
command: df -h
register: output
- debug: msg="{{output.stdout_lines}} | Mailx -s "{{ ansible_ssh_host }} Info space" usuario@ejemplo.com"
- name: Send mail with mailx
command: "{{output.stdout_lines}} | Mailx -s "{{ ansible_ssh_host }} Info space" usuario@ejemplo.com"

-Biegnij z: ansible-playbook playbook.yml

- Lub uruchom, jeśli plik hosta ansible ma inną ścieżkę: ansible-playbook playbook.yml -i inventory.yml