Stanislav
А вот плейбук уже может их перекрывать тем ,чем сочтёт нужным.
Да, именно в этом идея, есть дефолты и их можно перекрыть. Хочешь в плейбуке, хочешь через командную строку. Но по дефолту ищет в переменных окружения
Stanislav
Спасибо за советы, пойду пробовать. С первого раза че то не вышло, может какие то особенности при использовании молекулы..
Stanislav
😂 Чертова невнимательность. При указании переменной окружения не заэкспортил ее. Все завелось, всем спасибо за участие
Anton
Коллеги, подскажите как можно из факта и переменной получить значение другой переменной? Чтобы ansible_hostname.var выдавало значение myhost.var в j2 шаблоне?
Sergey
hostname[<any_play_host>][varname]
Anton
hostname[<any_play_host>][varname]
А есть пример? У меня просто текстом отдаёт
Антон
мне только что пришла в голову очередная дикая идея =))) помните холивар о том, что ансибл тру, но он стейтлес, а шеф/салт - это трудно? гитлаб + раннер + ансибл = управлялка любой операционки =))) #хотитестранного
Nikita
Подскажите пожалуйста, если способ проверить наличие файла для src без register?
Anton
“{{ }}”
Если бы всё было так просто)
Sergey
Anton
Создание конфига из одного шаблона, для ряда машин. Уникальные настройки - в переменных. "{{ myhost.var }}" - возвращает нужное значение Пытаюсь сделать так, чтобы myhost (имя машины) бралось из "{{ ansible_nodename }}"
Sergey
Создание конфига из одного шаблона, для ряда машин. Уникальные настройки - в переменных. "{{ myhost.var }}" - возвращает нужное значение Пытаюсь сделать так, чтобы myhost (имя машины) бралось из "{{ ansible_nodename }}"
Привыкай обращаться к словарям, а не свойствам объектов. Тогда конструкции типа {{ hostvars[ansible_nodename][var] }} не будут вызывать удивления, и будут писаться сами собой.
Damir
Подскажите пожалуйста, если способ проверить наличие файла для src без register?
Можно сделать так к примеру: - name: Some task copy: src: "file_file" dest: "/path/somewhere/" when: file_file.existing == False
Max
и тогда надо обратиться как-то так file_file.stat.exists
Max
Или set_fact
т.е. надо будет инициировать так. потом проверять, а потом вызывать copy.
Damir
Да, все верно
Max
если это обычный файл, и это файл, который менЯется редко, может проще будет посчитать sha1 и вызывать copy.
Max
без заморочек и тестов.
Damir
Это уже к автору вопроса, вариаций для маневров тут достаточно
Nikita
Так вроде работает, но я не уверен что это бестпрактикс when: - item.ssh_key_file is defined - item.ssh_key_file is is_file
Nikita
опять LDAP из Ansible 😊))))
Будь LDAP я бы голову не грел:(
Антон
опять LDAP из Ansible 😊))))
что только люди не делают чтобы не основить freeipa =)))
Nikita
Пока вообще всё локкально:( Офинсные админы обещают запилить, но когда это будет…
Антон
плюсую. это в докере, мануалов валом
Nikita
Да запили уже сам, там делов-то на полдня.
Не моя зона отвественности:( Моя забота чтобы билды собирались и деплой шел
Антон
есть даже роль для ансибла )))
Nikita
Да я знаю всё это. Даже сам схемы писал для openLDAP когда-то.
George
Не моя зона отвественности:( Моя забота чтобы билды собирались и деплой шел
Сделай лдап. Слышишь? Сделай свой лдап! Ты все ещё не делаешь ?
George
@tnt4brain реквкстирую гиф пак с этим
George
Ну, знаешь, там где собак с красными глазами
Sergey
Не, у меня такого нет. Если кто подкинет только.....
Nikita
Nikita
Nikita
Roman
Привет! Подскажите пожалуйста: Как при запуске плейбука спрашивать vault_secret если пользователь не указывал опцию --ask-vault-pass?
neb0t
Oleg
у нас ансибл тестируют инсталяторы приложения. Устанавливает их (rpm/deb) делает 100500 действий, а потом удаляет. Задача в том, что после удаления инсталяторы не должны удалять т.н. data dir самого приложения
у меня из-за такой фигни очень подгорело недавно. обновлял эластик+кибану на новую. кибана делает data/dir у себя где-то в /var/lib/ в которую из внутри-пакетных zip-файликов чтото распаковывает. т.к. эти файлы не были поставлены из rpm - пакетный менеджер не чистит их. потом "откатить обратно" удалить пакеты и поставить более старой версии. потому что установка пакетов создала юзеров в другом порядке и в результате uid-ы юзера для кибаны создались другие, и кибана по прежнему пути /var/lib-/data/dir не смогла создать файлы которые принесла в zip-ах в пакете. потому что не могла почистить старые файлы. "используйте идемпотентные конфигурации пакетного менеджера" говорили они.
Sergey
Ну, кстати, ты же можешь в роли это учесть!
Alex
Roman
https://docs.ansible.com/ansible/2.4/intro_configuration.html#ask-vault-pass
Спасибо за ответ. Но я же опцию ask_vault_pass = True могу только в конфиге укзать. А можно ли на уровне плейбука или роли?
Leonid
Ну вот на уровне роли и плейбука хз, вроде нет
Владислав
Подскажите, могу ли я отменить исполнение определенного notify? Например, у меня темплейтится конфигурация nginx с notify: nginx reload, а следующая таска его стартует и во время первой установки смысла в перезапуске уже нет
Timur
Иначе будет неидемпотентная конструкция
Владислав
Ничего страшного нет в перезапуске
Сервисы бывают разные и иногда они стартуют долго
Владислав
Иначе будет неидемпотентная конструкция
Не вижу нарушения индепотентности тут
Timur
Не вижу нарушения индепотентности тут
Если убрать хендлер, то при последующей накатке с изменениями он не триггернется
Timur
И сервис не перезапустится с новой конфигурацией
Timur
При первой установке все отработает, а вот при последующих могут быть проблемы
Владислав
Поэтому я и говорю не об удаление хендлера из плейбука, а при его отмене в случае неактуальности
George
Поэтому я и говорю не об удаление хендлера из плейбука, а при его отмене в случае неактуальности
Роль может предоставлять переменную, в которой будет определен хендлер (конкретный или пустой) или вызывать его или нет
George
Такой вопрос уже был, он довольно популярен
George
Но вообще обычно такой запрос от разраба плейбука говорит о том, что у него декомпозиция на роли кривая
Владислав
Но вообще обычно такой запрос от разраба плейбука говорит о том, что у него декомпозиция на роли кривая
Как поправить декомпозицию в примере с nginx? Я не холиваров ради, действительно интересно
Владислав
Добавляет серт через webroot let'sncrypt, темплейтит конфиг с ssl с notify restart nginx
Sergey
Добавляет серт через webroot let'sncrypt, темплейтит конфиг с ssl с notify restart nginx
Отлично! Тогда для рестарта достаточно одного из нотифаев.
George
Сорри. Я уже 😜🍺🍺🍺
Владислав
Отлично! Тогда для рестарта достаточно одного из нотифаев.
Да, но при следующем погоне со сменой темплейта нужен релоад
Timur
Можете сформулировать, по какому условию вы хотите отключать хендлер?
Владислав
Так что за критерий-то?
Не заметил сменился конфиг -> нужен релоад -> сервис был не запущен и запустился -> reload больше не нужен
Владислав
Соответсвенно релоад/рестарт можно отменить
Timur
Старт сервиса последним таском в роли стоит?
Timur
После всех триггеров?
Владислав
Старт сервиса последним таском в роли стоит?
Нет, следующий таск - настройка ssl на nginx (если следовать примеру с ним) Хотя возможно стоило бы разделить установку nginx и настройку letsencrypt на разные роли