Для просмотра этой видеозаписи необходимо авторизоваться

Авторизация

Ansible Сценарий запуск-3

22

0

Описание

admin

От: admin

Дата загрузки: 06/28/2023

Теги: ansible  

Курс СлЁрм по ansible

Поделиться

Share

Добавить в

Вам надо авторизоваться чтобы добавлять видеозаписи к спискам воспроизведения.

Комментарии (7)

чтобы комментировать.

admin 06/28/2023

Настало время испытать свои силы в запуске сценария и отладке ошибок в репозитории.

Скопируйте сценарий https://edu-git.gpu.su/edu/ansible и запустите первичную настройку серверов vs01.s000002, vs02.s000002, vs03.s000002

Настройте инвентарь и роли сценария:

Поменяйте в инвентаре названия и ip адреса серверов (их можно взять из инвентаря в файле ~/ansible/1.3/hosts)
Пропишите в роли admin в дефолтную переменную users свой логин и hash пароля

hash пароля можно получить с помощью утилиты doveadm

doveadm pw -s SHA512-CRYPT

Запустите сценарий с помощью скрипта ds-init.sh, найдите и исправьте все ошибки допущенные в инвентаре

Подсказки в следующих двух шагах. Пожалуйста, не торопитесь их открывать ;)

admin 06/28/2023

Подсказки по настройке инвентаря:

1. Исправьте название группы, имена вида vs01.s000002.slurm.io и ip адреса ваших серверов в файле inventory/hosts

[student000002]
vs01.s000002.slurm.io ansible_host=172.21.200.10
vs02.s000002.slurm.io ansible_host=172.21.200.11
vs03.s000002.slurm.io ansible_host=172.21.200.12

2. Исправьте имена вида vs01.s000002.slurm.io и ip адреса ваших серверов в файле inventory/group_vars/student000002

base_etc_hosts_local:
- { ipaddr: '172.21.200.10', host: 'vs01.s000002' }
- { ipaddr: '172.21.200.11', host: 'vs02.s000002' }
- { ipaddr: '172.21.200.12', host: 'vs03.s000002' }

3. Переименовываем файл inventory/group_vars/student000002 в inventory/group_vars/название_группы_в_инвентаре

4. Запуск сценария первичной настройки (s000002 меняем на название группы в инвентаре)

./ds-init.sh s000002

admin 06/28/2023

Подсказки по исправлению ошибок в инвентаре:

1. Ошибка:

ERROR! Syntax Error while loading YAML.
did not find expected key

The error appears to have been in '/home/s000002/ansible_stepik/inventory/group_vars/student000002': line 22, column 3, but may
be elsewhere in the file depending on the exact syntax problem.

The offending line appears to be:


admin_iptables_extra_list:
^ here

YAML чувствителен к пробелам: убрать пробелы перед admin_iptables_extra_list:, чтобы название переменной начиналось с начала строки

2. No package matching 'tmuxx' found available, installed or updated

Поменять tmuxx на tmux

base_packages_additional:
- tmuxx

3. Ошибка

failed: [vs01.s202.slurm.io] (item=iptables) => {
"changed": false,
"item": "iptables"
}

MSG:

Unable to start service iptables: Job for iptables.service failed because the control process exited with error code. See "systemctl status iptables.service" and "journalctl -xe" for details.

Если зайти на сервер vs01.s000002 (ssh root@vs01.s000002) и посмотреть на /etc/sysconfig/iptables - то сразу будет понятна причина:

в template'е core/roles/base/templates/iptables/iptables.j2 ожидается что в переменной iptables_additional_rules будет список

а в инвентаре прописана строка:

iptables_additional_rules: '-A INPUT -j ACCEPT'

И Jinja2 интерпретировала эту строчку как посимвольный список.

Надо или сделать из строчки список:

iptables_additional_rules:
- '-A INPUT -j ACCEPT'

или совсем ее удалить, потому что дефолтной политикой для цепочки INPUT задан ACCEPT

4. Ошибка:

MSG:

failed to validate

failed: [vs03.s000002.slurm.io] (item={u'dest': u'/etc/ssh/sshd_config', u'src': u'etc/ssh/sshd_config', u'mode': u'0644'}) => {
"changed": false,
"checksum": "8cc8f7a7a39bd2a7a61fee5460b1f6a6056bf8fd",
"exit_status": 255,
"item": {
"dest": "/etc/ssh/sshd_config",
"mode": "0644",
"src": "etc/ssh/sshd_config"
}
}

STDERR:

/root/.ansible/tmp/ansible_mitogen_action_dab59760cdef878b/source line 10: unsupported option "True".

Взять в кавычки значение yes в переменной sshd_permit_root_login

sshd_permit_root_login: 'yes'

admin 06/28/2023

Сценарий первичной настройки запускается скриптом ds-init.sh, при его выполнении работает не идемпотентная роль ds-init.

Для последующей настройки и периодических запусков ansible будет использоваться скрипт play.sh

По умолчанию play.sh выполняется от имени текущего пользователя, если при запуске play.sh возникают ошибки доступа к серверам, значит надо проверить правильность настроек в роли admin: нет ли ошибки в логине студента, пароле и ключе авторизации, лежит ли ключ авторизации в нужном каталоге.

В инвентаре указана переменная

sshd_permit_root_login: 'yes'

Благодаря которой сохранилась возможность входа под пользователем root, можно запускать play.sh с ключом -l root, для решения проблемы с connect'ом под логином студента.

Запустите playbook play.yml на всех серверах с помощью скрипта play.sh и введите количество task'ов, которые закончились с результатом changed.

admin 06/28/2023

Запустите play.sh еще раз. Количество task'ов с результатом changed должно было уменьшится.

Что делал task, который при первом запуске вернул статус changed, а при этом - статус ok ?

Подсказка: логи запуска лежат в каталоге logs.

Advertisement