Fidelina
наверное что-то простое...
inqfen
Либо что-то не там меняешь, либо результат в dest совпадает с предыдущим
inqfen
Кстати учти, что темплейты есть в роли и в плейбуке
Fidelina
точно не совпадает )
inqfen
Может не там меняешь
inqfen
force в template по дефолту, так что если результат отличается - он его переписывает
Fidelina
100% результат отличается
inqfen
Ну значит не отличается исходник, смотри почему
Антон
напрод, у меня тут есть задача делать шаг если в массиве есть совпадения с переменной, но проблема в том что это не простой list, поэтому простого when: var in list не катит попробовал вот так: when: > {% for OneRes in secret_data.results %} {% if OneRes.status == "404" %} true {% endif %} {% endfor %} не воспринимает
Антон
может кто сталкивался? с такой проблемой?
Timur
таска в роле - name: Adding Postgres repo template: src=gasu.repo dest=/etc/yum.repos.d/ mode=644
Запуск роли плейбукой? Надо смотреть - не установлена ли эта роль еще в одном из дефолтных путей ансибла
Lamobot
таска в роле - name: Adding Postgres repo template: src=gasu.repo dest=/etc/yum.repos.d/ mode=644
А в dest можно указывать директорию? Во всех примерах там идет полный путь с именем файла
Антон
Нужен фильтр по списку словарей?
Да суда по всему. Просто я не хочу плодить кучу действий
Антон
Спасибо
Timur
А что за задача, если не секрет?
Timur
Часто бывает, что при внимательном рассмотрении подобные вещи оказываются ненужными, т.к. гораздо легче решаются другими встроенными средствами
Dmitriy
Всем привет, автоматизирую обнову при помощи ansible. Есть задачи запуска джобов jenkins, почитал доку, именно запуска джобов там не обнаружил, верно смотрел ? Если запусков нет, то можно ли заставить ansible вывести вместо таска что то вроде "накати такой то джоб и нажми any key" ?
Alexander
Всегда можно использовать uri модуль для этого. Но сам факт такого выглядит странно
Timur
Зачем запускать ансиблом джобы дженкинса? 🤔
Timur
Dmitriy
Зачем запускать ансиблом джобы дженкинса? 🤔
например чтоб автоматизировать накат обновы, где есть такой пункт.
Alexander
Так а ансибл зачем?)
Timur
Скорее вопрос - зачем тогда дженкинс?
Vladimir
Зачем запускать ансиблом джобы дженкинса? 🤔
Мне казалось, должно быть на оборот...
Timur
Мне казалось, должно быть на оборот...
Наоборот - еще понятна логика. Но ансиблом запускать дженкинс...
𝔹𝕠𝕣𝕚𝕤
Как на счёт смоук тестов после деплоя?
Старый
ну может ему интерфейс дженкинса не нравится
Dmitriy
Наоборот - еще понятна логика. Но ансиблом запускать дженкинс...
ну, обнова помимо сборки при помощи jenkins содержит и другие пункты, которые выполняются ручками, вот и пришли к такой задаче. Что то вроде подкинь конфиг, сделай эти действия, накати такой джоб, сделай то то итд
Старый
Зачем он нужен тогда? :)
потому что под мобильную разработку и openshift это лучшее решение
Timur
потому что под мобильную разработку и openshift это лучшее решение
Это звучит как "потому что гладиолус"
Антон
А что за задача, если не секрет?
Не секрет. Хочу автоматизировать и центролизировать процесс обновления сертов на машинах. Есть варсы со списком именованных групп и списком доменов внутри них Сейчас задача сделать проверку: 1. Что вообще есть серт по этой группе (хранение в хашиволте) 2. Что нет изменения в списке доменов Первое проверяю просто запросом - 404 - нет группы Второе планирую проверять перебором доменов из варсов и сравнивать со списком из врлта
Антон
Вот для этого и надо, ибо я не знаю способа сделать по другому
Антон
Кстати вопрос, если в loop сделать include - он будет делаться для каждой итерации?
Антон
Потому что в группу доменов могут добавить еще доменное имя и нужно будет перегенирить серт и раскидать его по машинам
Dmitriy
Еще раз. Зачем вам дженкинс? Дженкинс - не сборщик, это система управления автоматизиованными задачами.
собственно такого задание, есть инструкция как обновить, есть задача мне сделать это ansible. Возможно странно, но исходные данные поменять не получится, вот и возник вопрос( попробую как советовали выше вот так https://wiki.jenkins.io/plugins/servlet/mobile?contentId=753720#content/view/753720)
Timur
Делайте просто идемпотентный код по генерации сертов - вот и все
Антон
Да, для каждой
Отлично, это решает мою задачу как раз (первую часть)
Антон
Да и вторую в общем то тоже
Антон
Спасибо большое, чатик как всегда помог =))))
𝔹𝕠𝕣𝕚𝕤
Но лучше так не делать)
Dmitriy
Вы делаете откровенную дичь
ну это я понял, по сути все это должно решаться чем то одним. Но что есть то есть. В любом случае спасибо )
Timur
Потому что это разного уровня инструменты. Ансибл - для автоматизации простых задач и создания ролей. А дженкинс - для сложных многоуровневых и многоступенчатых задач с различными интеграциями. Запускать дженкинс-джобы ансиблом - это как приделывать к компьютеру систему из рычагов и блоков для нажатия нужной комбинации клавиш для запуска нужной вам задачи. Вполне осуществимо, но практический смысл равен нулю.
Timur
Управление дженкинсом с помощью ансибла - это натуральное "хвост виляет собакой"
Dmitriy
Управление дженкинсом с помощью ансибла - это натуральное "хвост виляет собакой"
та это понятно, я с вами и не спорю, но и с теми кто поставил задачу тоже не буду спорить :) а, вариант с приостановлением playbook до нажатия эни кей есть ?
Dmitriy
https://docs.ansible.com/ansible/latest/modules/pause_module.html
спасибо, почитаем, почему то сам не смог найти.
Антон
Ааааа... про дичь было не мне XDDDDD
Антон
Я то уж думаю что не так с идеей :)))
𝔹𝕠𝕣𝕚𝕤
Почему?
По идее, правильнее в дженкинсе одним шагом запустить ансибл, а следующим сделать то что вам надо. Ну или тригернуть другой джоб
Антон
По идее, правильнее в дженкинсе одним шагом запустить ансибл, а следующим сделать то что вам надо. Ну или тригернуть другой джоб
Да, уже выяснили что я не понял кому адресовано :) согласен - денкинс из ансибла - так себе идея
Alex
а у модуля yum как то можно получить аналог команды rpm -ivh --replacepkgs <packagefile> ? В документации что то не нашел
Timur
Ааааа... про дичь было не мне XDDDDD
Там же ответ на пост был с цитированием
Антон
when: True in secret_data|map(extract='results')|map(extract=status')|list Как-то так
получилось вот так - secret_data | json_query('results[*].status')
Антон
в общем я пошел дальше и сделал вот так - {{ secret_data | json_query('results[*].{name: item.name, status: status}' ) }}
Антон
получил на выходе: - name: name1 status: 200 - name: name2 status: 404 - name: name3 status: 404
Sergey
а у модуля yum как то можно получить аналог команды rpm -ivh --replacepkgs <packagefile> ? В документации что то не нашел
Установи соотв. плагин для yum и...... страдай. Модуль Ansible для yum не поддерживает такие финты.
Dmitriy
а никто не подскажет, например надо мне запустить shell скрипт, но он основан на переменных профиля пользователя, если делаю по доке, то получается переменные недоступны, become_metod: sudo. А можно ли sudo указать с какими ключами стартовать ( ключик i в sudo мне как раз и нужен)
Sergei
привет, вопросик, (Docker SDK for Python: docker (Python >= 2.7) or docker-py (Python 2.6)) какой все таки пакет нынче актуален?
Антон
а можно как-то из этого: - name: name1 status: 200 - name: name2 status: 404 - name: name3 status: 404 получить - name1: 200 - name2: 404 - name3: 404
Антон
о! пойду попробую
Антон
спасибо
Антон
Антон
в итоге у меня получается все сделать прямо красиво )))