kbks
почитаю, спасибо
Timur
kbks
что именно?
Timur
Опишите исходную задачу
kbks
есть пачка item’ов из engines.components.
Каждый раз при деплое - они загружаются по новой. Задача: сравнить хеш уже загруженного с тем что в artifactory. Если хеш разный - загрузить.
Отделение Bereke Bank
Отделение Bereke Bank
Отделение Bereke Bank
Michael
kbks
Да, не хочу тратить время на скачивание. Этих компонентов сейчас чуть больше полусотни и это несколько гигабайт. В будущем это будет увеличиваться. Какой смысл выкачивать каждый раз несколько гигов, если нужно обновить всего один компонент?
Sergey
Michael
Согласен. Тогда как решение, можно сделать следующим образом: выделяете три таски в отдельный файлик update.yml:
- name: get sha1 checksum
stat:
path: "{{ home_dir }}/repos/{{ item.id }}.zip"
checksum_algorithm: sha1
with_items:
- "{{ engines.components }}"
register: local_sha
- name: Read sha1 of defined engines on artifactory
uri:
url: "{{engines.url}}/{{item.group_id}}/{{item.id}}/{{item.version}}/{{item.id}}-{{item.version}}.zip.sha1"
return_content: yes
validate_certs: no
with_items: "{{ engines.components }}"
register: remote_sha
- name: Download if new
get_url:
url: "{{engines.url}}/{{item.group_id}}/{{item.id}}/{{item.version}}/{{item.id}}-{{item.version}}.zip"
dest: "/etc/{{item.id}}-{{item.version}}.zip"
when: local_sha.stat.checksum != remote_sha.content
а потом инклюдиде этот файл в цикле в основном плейбуке:
- name: update components
include_tasks: update.yml
loop: "{{ engines.components }}”
Michael
не знаю, насколько рабочий сценарий, но я бы копал в эту сторону
Sergey
Vladislav 👻
Сначало качает, потом сравнивает
kbks
“пакетирование” будет следующим шагом.
Sergey
Третий вариант - внедрить пакетирование в процесс сборки.
Andrey
Michael
Sergey
Строго говоря - да. И затылки разработчиков целые, но придётся повозиться.
Michael
коллеги, мне кажется, мы начинаем холивар)
Sergey
Sergey
Почему - сейчас поясню.
Sergey
Дело в том, что очевидный признак неправильного использования инструмента - какие-то хреновые костыли, которые запихиваешь в таски. Таинственные преобразования, when:, set_fact, вот это вот всё обычно указывают на проблемы в процессах.
Отделение Bereke Bank
kbks
Michael
Michael
kbks
Michael
Отделение Bereke Bank
Я ничего не понял)
эмм. в общем. изменения в group_vars/all.yml (переменные для всех хостов в инвентори) не синхронизируются с SCM
Michael
Отделение Bereke Bank
вы не используете group_vars/all.yml ?)
Отделение Bereke Bank
Блин, а там ведь написано про overwrite variables
If checked, all variables for child groups and hosts will be removed and replaced by those found on the external source.
Логично что all.yml не является child groups 😑
Отделение Bereke Bank
Отделение Bereke Bank
@tnt4brain использование group_vars/all.yml является нормальной практикой?)
Sergey
Отделение Bereke Bank
не уточнил. при изменениях в SCM
Artur
у себя такое не замечаю
Sergey
Artur
всё норм синкается и удаляется/изменяется
Отделение Bereke Bank
Отделение Bereke Bank
Artur
Отделение Bereke Bank
Отделение Bereke Bank
Добавляю в group_vars/all.yml переменную
пуш - обновляю проект - переменная появляется в AWX
меняю значение - пуш - обновляю проект - остается старое значение
удаляю - пуш - обновляю проект - переменная остается
Отделение Bereke Bank
Artur
значит мне пора обновиться
Konstantin
Приветствую всех. Есть кто использует ansible для управления сетевыми железками? В частности ACL. Интересно на сколько это целесообразно и удобно?
Отделение Bereke Bank
в общем быстрее будет продублировать group_vars/all.yml , чем разбираться что же пошло не так 😑
Alex
подскажите, а есть ли возможность обновить только одно поле в словаре? Ибо конструкция вида
- name: Set rabbitmq health as failed
set_fact:
ha_rabbitmq_get_nodes_result:
json: ""
обнуляет весь словарь, а не только значение json
Sergey
Через фильтр combine.
Отделение Bereke Bank
В целом AWX збс штука. Осталось прикрутить LDAP и можно давать неграм тыкать в кнопки
Sergey
Sergey
И ставится в разв проще
Sergey
Отделение Bereke Bank
ну это ставить раннер с шел экзекутором, давать раннеру доступ в папку рандека...
Отделение Bereke Bank
Sergey
Отделение Bereke Bank
А тут просто послал POST-запрос в API. И все синхронизировалось. Кроме group_vars/all.yml 😡
Sergey
См. выше
Andrey
всем привет
Хочу насписать условие сравнения
when:
var1 is defined
"" var1 == {{ ansible_hostname }}"
- name: "templates copy "
template:
src: "{{item.src}}"
dest: "{{item.dest}}"
mode: "0664"
backup: yes
with_items:
- { src: "12312.yml", dest: "{{ dest_dir }}12312.yml" }
when:
- var1 is defined
- var1 == "{{ ansible_hostname }}"
не работает финт ушами ansible_hostname, как можно обойти?
Lamobot
sbog
Павел П.
Отделение Bereke Bank
точно. там же вебхуки можно
Timur
kbks