
Для просмотра этой видеозаписи необходимо авторизоваться
Авторизацияansible
Видео: 19
Описание
Добавить в
Вам надо авторизоваться чтобы добавлять видеозаписи к спискам воспроизведения.
Комментарии (7)
Авторизуйтесь чтобы комментировать.
Advertisement

Настало время испытать свои силы в запуске сценария и отладке ошибок в репозитории.
Скопируйте сценарий 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, найдите и исправьте все ошибки допущенные в инвентаре
Подсказки в следующих двух шагах. Пожалуйста, не торопитесь их открывать ;)
Подсказки по настройке инвентаря:
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
Подсказки по исправлению ошибок в инвентаре:
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'
Сценарий первичной настройки запускается скриптом 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.
Запустите play.sh еще раз. Количество task'ов с результатом changed должно было уменьшится.
Что делал task, который при первом запуске вернул статус changed, а при этом - статус ok ?
Подсказка: логи запуска лежат в каталоге logs.