diff --git a/src/homework/08-ansible/8.1/playbook/docker_run.sh b/src/homework/08-ansible/8.1/playbook/docker_run.sh index cfc635a..3808eae 100755 --- a/src/homework/08-ansible/8.1/playbook/docker_run.sh +++ b/src/homework/08-ansible/8.1/playbook/docker_run.sh @@ -1,2 +1,2 @@ docker run --rm -d --name=centos7 centos:7 tail -f /dev/null \ - && docker run --rm -d --name=debian debian:stable-slim tail -f /dev/null + && docker run --rm -d --name=debian python:slim tail -f /dev/null diff --git a/src/homework/08-ansible/8.1/playbook/docker_stop.sh b/src/homework/08-ansible/8.1/playbook/docker_stop.sh new file mode 100755 index 0000000..3758dab --- /dev/null +++ b/src/homework/08-ansible/8.1/playbook/docker_stop.sh @@ -0,0 +1 @@ +docker stop centos7 && docker stop debian diff --git a/src/homework/08-ansible/8.1/playbook/group_vars/deb/example.yml b/src/homework/08-ansible/8.1/playbook/group_vars/deb/example.yml index 4bb3a22..a8b2a6b 100644 --- a/src/homework/08-ansible/8.1/playbook/group_vars/deb/example.yml +++ b/src/homework/08-ansible/8.1/playbook/group_vars/deb/example.yml @@ -1,2 +1,7 @@ ---- -some_fact: "deb default fact" +$ANSIBLE_VAULT;1.1;AES256 +34633834383465336362303863613633333332656266663461306463646561346634656137336138 +3434346362386662383464346164393064376436343763390a313366343635333337326436333264 +36353035366537633466326665656238363164306165623639653135616639623665383530383966 +3638306666633765630a663238386465353662333932616136386239336164386463376436356631 +35353035623830376235656664383132393635393736393064666465326335383730316661333030 +6633396361666162643535626133336362373261336265633433 diff --git a/src/homework/08-ansible/8.1/playbook/group_vars/el/example.yml b/src/homework/08-ansible/8.1/playbook/group_vars/el/example.yml index 375c3b9..ba09098 100644 --- a/src/homework/08-ansible/8.1/playbook/group_vars/el/example.yml +++ b/src/homework/08-ansible/8.1/playbook/group_vars/el/example.yml @@ -1,2 +1,7 @@ ---- -some_fact: "el default fact" +$ANSIBLE_VAULT;1.1;AES256 +37366165643262313236303132386566346562623036306330613732316432633866346365316537 +3863656165343731376434313964343965333733643533650a396336343863366434623030353163 +66343231393933623430313534626334663330663736616536363033616162313961643461623263 +6566373663636537350a303130333361386635303963363664653635653162396636646337353661 +34643537333538353135376136313835653062353937313565613331306361313938663030303233 +3366633835373932393763653261313335386166663562373238 diff --git a/src/homework/08-ansible/8.1/playbook/inventory/prod.yml b/src/homework/08-ansible/8.1/playbook/inventory/prod.yml index 08f1fcc..ab3f012 100644 --- a/src/homework/08-ansible/8.1/playbook/inventory/prod.yml +++ b/src/homework/08-ansible/8.1/playbook/inventory/prod.yml @@ -7,3 +7,8 @@ deb: hosts: debian: ansible_connection: docker + +local: + hosts: + localhost: + ansible_connection: local diff --git a/src/homework/08-ansible/8.1/readme.md b/src/homework/08-ansible/8.1/readme.md index b47c62c..709664b 100644 --- a/src/homework/08-ansible/8.1/readme.md +++ b/src/homework/08-ansible/8.1/readme.md @@ -161,23 +161,117 @@ debian : ok=3 changed=0 unreachable=0 failed=0 s > 7. При помощи `ansible-vault` зашифруйте факты в `group_vars/deb` и `group_vars/el` с паролем `netology`. -//todo +```shell +ansible-vault encrypt group_vars/deb/example.yml +``` + +```shell +ansible-vault encrypt group_vars/el/example.yml +``` > 8. Запустите playbook на окружении `prod.yml`. При запуске `ansible` должен запросить у вас пароль. Убедитесь в работоспособности. -//todo +```shell +ansible-playbook --ask-vault-pass -i inventory/prod.yml site.yml +``` + +```text +PLAY [Print os facts] ****************************************************************************************************************************************************************** + +TASK [Gathering Facts] ***************************************************************************************************************************************************************** +[WARNING]: Distribution debian 11 on host debian should use /usr/bin/python3, but is using /usr/local/bin/python3.10, since the discovered platform python interpreter was not present. +See https://docs.ansible.com/ansible-core/2.13/reference_appendices/interpreter_discovery.html for more information. +ok: [debian] +ok: [centos7] + +TASK [Print OS] ************************************************************************************************************************************************************************ +ok: [centos7] => { + "msg": "CentOS" +} +ok: [debian] => { + "msg": "Debian" +} + +TASK [Print fact] ********************************************************************************************************************************************************************** +ok: [centos7] => { + "msg": "el default fact" +} +ok: [debian] => { + "msg": "deb default fact" +} + +PLAY RECAP ***************************************************************************************************************************************************************************** +centos7 : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 +debian : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 +``` > 9. Посмотрите при помощи `ansible-doc` список плагинов для подключения. Выберите подходящий для работы на `control node`. -//todo +Для выполнения команд на `control node` (машине, с которой производится запуск `playbook`), можно использовать модуль [`local_action`](https://docs.ansible.com/ansible/latest/user_guide/playbooks_delegation.html). +К сожалению, в `ansible-doc` не смог найти встроенных модулей, а документации к `local_action` в данной утилите нет. + +```shell +ansible-doc local_action +``` + +```text +[WARNING]: module local_action not found in: ~/.ansible/plugins/modules:/usr/share/ansible/plugins/modules:~/.local/lib/python3.8/site-packages/ansible/modules +``` > 10. В `prod.yml` добавьте новую группу хостов с именем `local`, в ней разместите localhost с необходимым типом подключения. -//todo +Новая группа хостов будет выглядеть следующим образом: + +```yaml +local: + hosts: + localhost: + ansible_connection: local +``` > 11. Запустите playbook на окружении `prod.yml`. При запуске `ansible` должен запросить у вас пароль. Убедитесь что факты `some_fact` для каждого из хостов определены из верных `group_vars`. -//todo +```shell +ansible-playbook --ask-vault-pass -i inventory/prod.yml site.yml +``` + +```text +PLAY [Print os facts] ****************************************************************************************************************************************************************** + +TASK [Gathering Facts] ***************************************************************************************************************************************************************** +ok: [localhost] +[WARNING]: Distribution debian 11 on host debian should use /usr/bin/python3, but is using /usr/local/bin/python3.10, since the discovered platform python interpreter was not present. +See https://docs.ansible.com/ansible-core/2.13/reference_appendices/interpreter_discovery.html for more information. +ok: [debian] +ok: [centos7] + +TASK [Print OS] ************************************************************************************************************************************************************************ +ok: [centos7] => { + "msg": "CentOS" +} +ok: [debian] => { + "msg": "Debian" +} +ok: [localhost] => { + "msg": "Ubuntu" +} + +TASK [Print fact] ********************************************************************************************************************************************************************** +ok: [centos7] => { + "msg": "el default fact" +} +ok: [debian] => { + "msg": "deb default fact" +} +ok: [localhost] => { + "msg": "all default fact" +} + +PLAY RECAP ***************************************************************************************************************************************************************************** +centos7 : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 +debian : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 +localhost : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 +``` > 12. Заполните `README.md` ответами на вопросы. Сделайте `git push` в ветку `master`. В ответе отправьте ссылку на ваш открытый репозиторий с изменённым `playbook` и заполненным `README.md`.