homework 8.1: partially complete task 2

This commit is contained in:
2022-07-13 19:34:21 +07:00
parent 15e64885aa
commit a77475a313
6 changed files with 120 additions and 10 deletions

View File

@@ -1,2 +1,2 @@
docker run --rm -d --name=centos7 centos:7 tail -f /dev/null \ 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

View File

@@ -0,0 +1 @@
docker stop centos7 && docker stop debian

View File

@@ -1,2 +1,7 @@
--- $ANSIBLE_VAULT;1.1;AES256
some_fact: "deb default fact" 34633834383465336362303863613633333332656266663461306463646561346634656137336138
3434346362386662383464346164393064376436343763390a313366343635333337326436333264
36353035366537633466326665656238363164306165623639653135616639623665383530383966
3638306666633765630a663238386465353662333932616136386239336164386463376436356631
35353035623830376235656664383132393635393736393064666465326335383730316661333030
6633396361666162643535626133336362373261336265633433

View File

@@ -1,2 +1,7 @@
--- $ANSIBLE_VAULT;1.1;AES256
some_fact: "el default fact" 37366165643262313236303132386566346562623036306330613732316432633866346365316537
3863656165343731376434313964343965333733643533650a396336343863366434623030353163
66343231393933623430313534626334663330663736616536363033616162313961643461623263
6566373663636537350a303130333361386635303963363664653635653162396636646337353661
34643537333538353135376136313835653062353937313565613331306361313938663030303233
3366633835373932393763653261313335386166663562373238

View File

@@ -7,3 +7,8 @@ deb:
hosts: hosts:
debian: debian:
ansible_connection: docker ansible_connection: docker
local:
hosts:
localhost:
ansible_connection: local

View File

@@ -161,23 +161,117 @@ debian : ok=3 changed=0 unreachable=0 failed=0 s
> 7. При помощи `ansible-vault` зашифруйте факты в `group_vars/deb` и `group_vars/el` с паролем `netology`. > 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` должен запросить у вас пароль. Убедитесь в работоспособности. > 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`. > 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 с необходимым типом подключения. > 10. В `prod.yml` добавьте новую группу хостов с именем `local`, в ней разместите localhost с необходимым типом подключения.
//todo Новая группа хостов будет выглядеть следующим образом:
```yaml
local:
hosts:
localhost:
ansible_connection: local
```
> 11. Запустите playbook на окружении `prod.yml`. При запуске `ansible` должен запросить у вас пароль. Убедитесь что факты `some_fact` для каждого из хостов определены из верных `group_vars`. > 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`. > 12. Заполните `README.md` ответами на вопросы. Сделайте `git push` в ветку `master`. В ответе отправьте ссылку на ваш открытый репозиторий с изменённым `playbook` и заполненным `README.md`.