Anonymous
аминь
Nick
Nick
Доклада самого не видел. Может поэтому не всё понял
Anonymous
Хех
Lev
Anonymous
Lev
пока нет видео, в течение недели наверно расшировку в виде статейки накатаю. в целом там не только про ansible было. а цифры из скрина тут пролезать будут http://www.goncharov.xyz/it/ansible-testing-ru.html
Anonymous
Кошмары в снах и т. д.
Lev
cd ansible-repo
cloc .
Lev
я на двух проектах с примерно 8-9к строк ямликов построил графики по кол-во тестируемых/ролей и сделал разбивку по типу тестов.
Lev
мне интересно посмотреть не на моих проектах, а на других. типа сравнить
Anonymous
Эх, да, есть такое
Lev
а вот надо или нет, про это было в выстулпение на техлидконфе. типа вычиленил паттерн из разных проектов где бывал и там появилась идея тестирования инфраструктуры норм тема. вот слайды https://cloud.mail.ru/public/2z4x/5BBSYWaKU
тезисно:
1. Инфраструктура стремится с хаосу.
2. Agreements as Сode внедрять(,) нельзя(,) забить.
3. Ручной труд -> Механизация -> Автоматизация.
4. Инфраструктуру можно и нужно рефакторить. Но не всегда.
5. Тесты на инфраструктуру удешевляют/ускоряют ее изменения.
6. Используй IaC testing pyramid. Не откладывай не потом!
расшировка позже будет
Nick
Отличная статья
Anonymous
Ну, вот все рады! Всем хорошо!
Nick
Мы пока тесты не тестируем. Но уже запретили мержи в мастер без пройденного теста линтера
Nick
Плюс там ещё простенькие проверки на наличие хоть какой-то документации
Lev
Nick
Какой ещё синк?
Nick
Anonymous
Вопрос какой?
Anonymous
Ден, это точно мимо
Anonymous
Вот это замечательное решение!
Nick
Год назад: пуш в мастер.
Шаг 1: обязательный пр
Шаг 2: обязательный апрув перед мерджем в мастер
Шаг 3: включаем фишку что коммит в заапрувленый ПР скидывает все апрувы
Шаг 4: запрет мерджа без зелёного билда.
На шаг 4 вышли где-то в ноябре
Nick
Каждый день
Anonymous
Anonymous
Это по умолчанию у всех
Nick
Это меня спросили про пр и мр как сделано
Nick
Nick
Почитай доклад Льва - тоже не сразу всё было. Это норма. Всегда есть долг, трейдоффы
Anonymous
Nick
Бывает такое. Видишь как люди героически преодолевают то, что ты уже десять лет назад раздуплил. И у тебя вскипает конечно.
Tadeusz
идите в лс, войны диванные
да, это я
Мне казалось, тебя вчера уже банили, не?
Anonymous
Anonymous
не веришь в реабилитацию?
Pavel
Коллеги добрый день, подскажите правильное направление мысли.
Есть задача массового создания DNS записей используя win_dns_record
Как источник данных JSON файл
я так понимаю надо отфильтровать JSON в словарь?
или как то по другому?
отдельное поле прекрасно вытаскивается через
from_json | json_query('*.ip_address')
Anonymous
inqfen
inqfen
Изменять его, передавать в модули etc
Aleksey
Anonymous
фигасе, прям удивил
Aleksey
по сути это требование yml превратить в ини. спасибо, потерплю)
Anonymous
Anonymous
изи пизи же
Anonymous
нет?
Anonymous
Pavel
как что сделать?
из большого JSON по фильтру вытащить ключ - значение в словарь
Anonymous
и где проблема то?
Pavel
или можно сразу JSON d дщщз
Pavel
спасибо, повторю завтра,если сегодня не добью сам
Anonymous
https://docs.ansible.com/ansible/latest/user_guide/playbooks_filters.html нет?
Anonymous
https://jmespath.org/ нет?
Anonymous
Pavel
@ipv176 спасибо
первый вариант первым пришел в голову, но не понимаю как обратиться последовательно к массиву
"store_1" : {"name": "", "ip": "" },
"store_2" : {"name": "", "ip": "" },
......
"store_n" : {"name": "", "ip": "" }
т.е. я не знаю что в значении сторе
*name и *ip
Anonymous
ссылки выше. на https://jmespath.org/ есть примеры. можно онлайн потыкать запросы
Aleksey
Anonymous
проще json query
Pavel
спасибо коллеги
Anonymous
не за что
Lev
Lev
Это по умолчанию у всех
Ну хз. Я такую штуку три раза внедрял. И это нормально. Может на новых проектах по другому, я как то больше авгиевы конюшни разбираю
Sergey
Подскажите плиз
есть вот такая конструкция и нужно добавлять дополнительную секцю только для первого элемента, но она добавляется ко всем последующим
{% for config_file in k8s_configure_application_config_files %}
{{ config_file | regex_search("([^\/]+$)")}}: |
{% for item in k8s_configure_application_configuration[config_file] | dictsort(true) %}
{{ item[0] }} = {{ item[1] }}
{% endfor %}{{ '\n' }}
{%- if config_file | first %}
# Additional application properties for registration to Consul
spring.application.name = {{ application_name }}
spring.cloud.consul.discovery.acl-token =
spring.cloud.consul.host = ${NODE_IP}
spring.cloud.consul.discovery.prefer-ip-address = true
spring.cloud.consul.discovery.tags = {{ deploy_environment }}
{% endif %}
{% endfor %}
Sergey
и это логично так как первый элемент есть )))
Sergey
может как то фильтром еще
Lamobot
Sergey
# Additional application properties for registration to Consul
spring.application.name = {{ application_name }}
spring.cloud.consul.discovery.acl-token =
spring.cloud.consul.host = ${NODE_IP}
spring.cloud.consul.discovery.prefer-ip-address = true
spring.cloud.consul.discovery.tags = {{ deploy_environment }}
Sergey
только для первого элемента из config_file
Sergey
а он получается копирует эту секцию для всех
Lamobot
config_file | first всегда выдаёт первый элемент из списка config_file - это не условие :)
Lamobot
loop.index попробуйте