Dmitry
А на мой вопрос не ответили :)
Stepan T.
Господа, я тут читал где-то выше про то, что тэги !=Ъ, разъясните пожалуйста, как правильно делать, если есть типовая роль с набором параметров, один из которых вдруг поменялся и этот типовой параметр нужно разнести по набору машин? Я пока хреначу тэг и выполняю плэйбук с указанием тэга. Могу, в принципе, поменять параметр в задачах роли, на будущее, а изменение в уже имеющихся машинах разнести отдельным маленьким плэйбуком или даже используя конструкцию ansible all -m ** -a '*', я так понял, что нормальные люди делают как-то иначе
Vadim
разделяй их в отдельный, маленький плейбук, а потом из них составляй большой плейбук
Stepan T.
То есть для роли это будет выглядеть как
main.yml
---
- include: 1.yml
- include: 2.yml
- include: 3.yml
?
Danila
Вы какую задачу-то решаете?
Asten
include на мой взгляд не очень норм, лучше на выбор: playbook в котором явно перечислены роли или meta: you_role
Stepan T.
Вы какую задачу-то решаете?
Да как обычно, поменялся перечень разрешённых команд из под судо для определённого пользователя, я в роли 'default' нужное добавил, ненужное удалил. Но прогонять весь плэйбук "deploy_default" по всем компам смысла не вижу. Поэтому добавляю тэг и выполняю плэйбук "deploy_default" ограничивая перечень задач тэгом.
Danila
Stepan T.
Danila
Что простите?
http://docs.ansible.com/ansible/devel/user_guide/become.html
Stepan T.
Я как-бы понимаю для чего нужен become, я не понимаю чем это может помочь мне в контексте решаемой задачи.
Danila
Команды, что запрещены под рутом, выполняете под бекам, не?
Stepan T.
Лично мне вообще ничего не запрещено. Но линукс, операционная система многопользовательская, есть ряд лиц, которых принято называть limited admins
Ждун
А разве ансимбл не для того, что повторять можно
Stepan T.
Мы отклонились от темы. Итак, если есть длинный плэйбук, предположим, на 100 тасков. Один из тасков поменялся и его нужно прогнать по 100 машинам снова. Как правильнее сделать после исправления таска:
1. Добавить тэг и прогнать исполнение плэйбука с тэгом
2. Исправить таск в длинном плэйбуке, создать новый "короткий" плэйбук из одного таска и прогнать его
3. Исправить таск в длинном плэйбуке и прогнать по всем машинам ansible -m * -a '*' all
4. Иной вариант.
Почему-то кажется, что 4 пункт самый правильный.
Vadim
А чем не нравится второй?
Asten
зачем вообще буки на 100 тасков? уверен их можно подробить на роли
Stepan T.
Там как раз в роли 100 тасков
Stepan T.
Это не отменяет
Stepan T.
Длинный перечень тасков, один из которых поменялся и выполнить его критически необходимо. Как правильно выполнить именно его?
Asten
уверен роль это логически дробиться на: создаем пользователей, грандуем права, ставим пакеты, do something
Asten
не пишите таких ролей, дробите на логические. легче же масштабировать потом
Stepan T.
Ага, то есть роль должна состоять из - include: *.yml
Asten
я не использую include, писал об этом выше
Stepan T.
Или просто много мелких ролей?
Asten
просто много ролей
Asten
и верхнеуровневая бука
Asten
типа
Asten
- name: users
hosts: all
become: yes
vars_files:
- secrets.yml
roles:
- users
tags:
- users
- common
Asten
в roles перечесляете ваши мелкие роли
Stepan T.
Опа =) тэг
Asten
ну да дробите таким макаром потом и по тегам
Stepan T.
Окей. Я понял.
Asten
можно еще более интереснее
Petr
«дробить на много мелких ролей» как-то не очень удобно выходит. У меня в роли обычно пара десятков танков и все они как-то взаимосвязаны и последовательно должны выполняться и хэндлеры общие
Asten
- name: Common system configuration
gather_facts: yes
hosts: all
become: yes
vars_files:
- secrets.yml
roles:
- {role: sysctl, tags: [sysctl]}
- {role: users, tags: [users]}
- {role: sshd, tags: [sshd]}
- {role: apt, tags: [apt]}
- {role: useful_packages, tags: [useful_packages]}
tasks:
- name: Upgrade system
apt:
upgrade: full
tags:
- upgrade
Vadim
Asten
Petr
Присоединяюсь к вопросу автора дискуссии, почему теги не рекомендуется использовать для запуска какой-то одной таски из большой роли?
Vadim
никаких тэгов, для пишешь плейбук, где включаешь нужные кусочки
Vadim
Asten
Stepan T.
Простите. Кажется я развязал холивар.
Alex
Просто теги для простых вещей, не надо хотеть от них странного
Err
При запуске руби через ансамбль, ансамбль зависает, но к руби можно обратиться. Может ли выйти из ансамбль после запуска? Может какую нибуть команду добавить?
Nklya
ансамбль
Err
Ansible
Ждун
https://docs.ansible.com/ansible/2.3/playbooks_async.html
Игорь
Asten
А есть ли среди нас клиенты flops.ru?
Andrey
Asten
Да я тут модуль к их апишке пишу... Надоело руками создавать виртуалки. Думал может нужен кому тоже)
GithubReleases
ansible/ansible was tagged: v2.5.1
Link: https://github.comhttps://github.com/ansible/ansible/releases/tag/v2.5.1
Release notes:
New release v2.5.1
xfs_repair
Добрый день! Решил использовать ансибл в своей системе, с каких задача для примера можно начать?
xfs_repair
Автоматизировать
xfs_repair
Около 150 серверов на rhel centos 7 linux
Aleksey
можно начать с автоматизации проверки диска
xfs_repair
А как можно это всю информацию мониторить
xfs_repair
Вот написал я плэйбук ,проверка дисков ,
xfs_repair
Аа на контрол машине не удобно мониторить
Ждун
Ансимбл для мониторинга?
Ждун
Почитай книгу ansible for devops, там много жизненных примеров
Ждун
Самое простое начало проверка ntpd и синхронизация времени
Womchik
Для мониторинга лучше заббикс
Aleksey
разжигаешь ?
Vladimir
:)
Vladimir
лучше - пингующий баш-скрипт, который будет сендмейлом алерт отправлять =)
Vadim
Ansible - это инструмент для решения задач, подбирать задачи под инструмент - это интересно конечно, но уже пошло не так
Aleksey
а я делал мониторинг ансиблом
Aleksey
а в блоге основателей я видел еще большее дно
Aleksey
они логи им смотрели
Vadim
они логи им смотрели
в нашем поделии такое есть, для более осмысленного сообщения об ошибке (но помошает не очень)
xfs_repair
В этом и суть?
xfs_repair
Я правильно понимаю
Ждун
Проверить что сервис запущен и вывести date например