Sheridan
или в каждую таску надо?
Nklya
Можно инклудить плейбуки с условием, например - include: fedora.yml when: ansible_distribution == "Fedora" Плюс можно ставить условие на блок тасков http://docs.ansible.com/ansible/latest/playbooks_blocks.html
Sheridan
угу, понял. В моём случае будет when к каждому таску значит...
Aleksei
а можно где-то взять ансибл версии 2.3.2 для убунты? в ансибл репозитории только лейтест(2.4)
Aleksei
билдить из сорса не хочу
Köfte
pip
Aleksei
а подскажите по темплейтам. у меня есть таск который из темплейта генерит правила для айпитейблс, там куча ифов вида {% if ansible_hostname in groups['springboot'] %} add some firewall rule {% endif %} и мне выпадает ошибка fatal: [octopus]: FAILED! => {"changed": false, "failed": true, "msg": "AnsibleUndefinedVariable: Unable to look up a name or access an attribute in template string (a lot of FW rules was here)).\nMake sure your variable name does not contain invalid characters like '-': argument of type 'StrictUndefined' is not iterable”} есть идеи?
Karey
Нужно больше подробностей
Aleksei
каких именно?
Aleksei
таск вида template: backup=yes src=rules.v4.j2 dest=/etc/iptables/rules.v4
Karey
Как раз таки тот template string
Karey
C ним что-то не так
Aleksei
эм. который? который там в ифе?
Karey
Да
Karey
А у тебя в groups['springboot'] есть что-нибудь?
Aleksei
давай другой пример возьмем, будет чуть проще. {% elif ansible_hostname in groups['dns'] %} -A INPUT -p udp --dport 53 -m udp -j ACCEPT -A INPUT -p tcp --dport 53 -m tcp -j ACCEPT {% endif %} ошибка та же
Aleksei
причем на половине групп оно нормально апплаится
Aleksei
правила у всех одинаковые, только порты разные
Aleksei
в самой группе два днса [dns] dns1 dns2
Aleksei
есть идеи как это дебажить хотя бы?
Nklya
Начать с чтения документации http://docs.ansible.com/ansible/latest/intro_getting_started.html Должно получится что-то типа ansible all -m shell -a 'apt update && apt -y full-upgrade'
Karey
А в плэйбуке есть gather_facts?
Aleksei
да
Sergey
пишется одна роль, но принимающая параметры
Sergey
которые ей из плейбука передаются
Aleksei
а какая разница? будет 3 ифа или будет луп с переменной в которую будет приходить значение из переменных группы, например?
Sergey
Хм, непонимание принципов detected. Ок, тогда исхожу из наблюдаемых фактов: раз не работает и есть вопрос, значит, какая-то разница есть? 😊 Ещё раз: роль - она просто должна параметризироваться. По-простому: Не надо писать "(если это джип )поставь колёса на 22')(конец)", надо писать "для всех джипов: поставь колёса (22')"
Sergey
Хотя это, конечно, моё личное мнение, которое никого ни к чему не обязывает, и его высказывание - просто предложение воспользоваться концентрированным опытом в готовой форме.
Aleksei
вроде этого упрощенно {% for host in groups['dns'] %} -A INPUT -p udp --dport 53 -m udp -j ACCEPT -A INPUT -p tcp --dport 53 -m tcp -j ACCEPT {% endfor %} ?
Sergey
это опять конфиг
Sergey
я про роли писал, которые ты назначаешь на определённые хосты
Aleksei
а, ты предлагаешь делать отдельные роли для разных групп хостов? а если роль нужно апплаить на все хосты, но с разным конфигом? нужно делать разные роли или разные конфиги в зависимости от хоста?
Alf 🙀
Идея разных ролей для разных хостов чуда как хороша
Alf 🙀
Чего только люди не напридумывают
Aleksei
у меня одна маленькая роль, положить темплейт и сделать релоад фаервола. куда уж меньше то
Aleksei
она кстати работает, там парсинг темплейта просто ломается если в середине будет иф с группой которой нет
Aleksei
error message мог бы быть поточнее
Alf 🙀
Положите список правил в груп_варс?
Aleksei
Идея разных ролей для разных хостов чуда как хороша
да я просто не очень понимаю Сергея, он слишком абстрактен для меня
Alf 🙀
Ну так же все делают нет?
Sergey
да я просто не очень понимаю Сергея, он слишком абстрактен для меня
Я считаю неприличным куски деплоя с рабочего проекта в общие чаты пастить.
Sergey
Поэтому да, "на пальцах" приходится.
Sergey
У меня сейчас есть икс серверов приложений, которые слегка различаются по конфигурациям (набор работающих сервисов различен). Чтобы уберечь себя же от боли и унижения в шаблонах конфигов, я создал подгруппы. Теперь при запуске деплоя каждая подгруппа получает своё, родное.
Pavel
потому когда я открываю инвентори хоста я вижу всю картину что там сконфигурировано
Pavel
точнее файл хост-варс... в самом инвентори только декларируется какой хост в какой группе
Pavel
просто я долго думал и не нашел другого решения для накатки, например нескольких vhost для nginx с разными конфигами.... пришлось делать список из набора перемнных для каждого vhostа
Pavel
вот это и есть боль и унижение
"боль" - не то слово... там у меня нгинх фронед, еще и бекэнд есть ко всем вхостам, еще и разный бывает
Sergey
"боль" - не то слово... там у меня нгинх фронед, еще и бекэнд есть ко всем вхостам, еще и разный бывает
Да, у меня коллега за соседним столом на подобное немало времени потратил, в итоге впихнув невпихуемое. Другое дело, что мне до сих пор непонятно, что ж за неведомая долбаная фигня заставляет разработчиков выносить чать внутренней логики приложения в конфиги nginx и считать, что у них с архитектурой всё хорошо 😊)))
Evgeny
Есть динамический openstack inventory - как добавить хосты которые не в openstack в вывод этого inventory?
Nazar
дописать инвентори? )
Dmitrii
Есть динамический openstack inventory - как добавить хосты которые не в openstack в вывод этого inventory?
Используй инвентори как директорию, положи рядом с тем инвентори опенстековским обычный статический. Ансибл померджит их
Dmitry
Пошаговый Ansible туториал. Нужно только запустить и нажимать Enter ヅ. https://goo.gl/ju21Pk Основан на https://goo.gl/fUea4v
Dmitry
это успех я считаю
🄽🄸🄺🄸🅃🄰
кто-нибудь использует http://ansible-playable.com/ ?
Aleksey
нет. все боятся
🄽🄸🄺🄸🅃🄰
боятся ошибки в интерфейсе более чем очепятки в ямл файле ?
🄽🄸🄺🄸🅃🄰
(просто сам ток осваиваюсь)
Nklya
Я боюсь автора)) "Mumshad Mannambeth"
🄽🄸🄺🄸🅃🄰
да,. имечко у него ... ааутентичное
Nklya
Ну и один фиг оно в альфе еще
🄽🄸🄺🄸🅃🄰
Ну и один фиг оно в альфе еще
мм, и правда. просто давно в закладках лежит. думал уже стартанули. видимо не судьба
Константин
господа, обновился на 2.4 вылезла ошибка nchown: changing ownership of '/tmp/ansible-tmp-1506690415.46-227369721806969/': Operation not permitted\nchown: changing ownership of '/tmp/ansible-tmp-1506690415.46-227369721806969/command.py': Operation not permitted\n}). For information on working around this, see https://docs.ansible.com/ansible/become.html#becoming-an-unprivileged-user"} pipelining включен. багуе ансибла?
Nklya
Ну если то же самое на 2.3 нормально проходит, то возможно.
N33k
Коллеги, здравствуйте! А кто-нибудь использует polemarch?
G3rhard
Блиц-опрос: какая запись более труЪ: copy: dest: /etc/nginx/sites-enabled/deny_by_ip.conf src: deny_by_ip.conf force: no или copy: dest=/etc/nginx/sites-enabled/deny_by_ip.conf src=deny_by_ip.conf force=no
maniac
я первую использую всегда, выглядит отвратительно местами
Nklya
По бест практисез лучше первая, зато вторая короче обычно))
вторая в виме подсветку ломает)
когда используются кавычки