Vlad
А если не подменять адрес гэлакси а задать - name: https://github.com/ansible-collections/amazon.aws.git type: git version: 8102847014fd6e7a3233df9ea998ef4677b99248
Vlad
Именно в 2.10
Aleksey
я проверяю с vvvvvv видно что запрос на galaxy вообще не идет
Aleksey
там скорее всего lookup в galaxy нужен был что бы отрезовить имя
Aleksey
Aleksey
вот где вызовы в galaxy идут
Aleksey
вендорлокнуться :-)
так что версия с вендорлоком критики не выдержала :)
Sergey
так что версия с вендорлоком критики не выдержала :)
Ничего не понял. Если интернеты нинужны, то твои конструкции тоже должны работать, в чём пробелма-то тогда?
Aleksey
они на 2.9.12 работают
Aleksey
а я до этого на 2.9.9 тестил
Aleksey
- name: place vector config copy: content: | # Ansible managed {{ vector_config | to_toml }} dest: "{{ vector_config_file }}" бесит
Aleksey
я вообще почти перестал использовать template
Aleksey
ибо вдруг заметил что постоянно формирую структурированные файлы
Aleksey
но то что в copy content нельзя {{ ansible_managed }} только сейчас споткнулся
Alexander
Добавьте бота с капчей, ну
Alexander
А он и есть тут, лол
Denis 災 nobody
капчу оно прошло
Denis 災 nobody
впрочем, с бюджетом "26к/2 часа" есть бабло на нормальных прогеров
Alexander
Может это биоробот был?
Aleksey
у меня есть issue в ансибле которую мне помогли решить за 42 минуты.
Aleksey
Это рекорд.
Андрей
Коллеги, пришел с вопросом. Как мне загнать вот это выражение в цикл? #{{hostname}} dataSource.replicas[0].driverClassName=org.postgresql.Driver dataSource.replicas[0].url=jdbc:postgresql://{{ hostname }}:5432/ dataSource.replicas[0].username= dataSource.replicas[0].password= dataSource.replicas[0].maximumPoolSize= dataSource.replicas[0].weight= dataSource.replicas[0].connectionTimeout=
Андрей
или я хочу странного? :(
Sergey
Где здесь у тебя итератор?
Aleksey
у вас цикл по списку dataSource.replicas
Андрей
Скажем так, мне нужно размножить этот блок исходя из заданных хостнеймов )
Андрей
#hostname1 dataSource.replicas[0].driverClassName=org.postgresql.Driver dataSource.replicas[0].url=jdbc:postgresql://hostname1:5432/ dataSource.replicas[0].username= dataSource.replicas[0].password= dataSource.replicas[0].maximumPoolSize= dataSource.replicas[0].weight= dataSource.replicas[0].connectionTimeout= #hostname2 dataSource.replicas[1].driverClassName=org.postgresql.Driver dataSource.replicas[1].url=jdbc:postgresql://hostname2:5432/ dataSource.replicas[1].username= dataSource.replicas[1].password= dataSource.replicas[1].maximumPoolSize= dataSource.replicas[1].weight= dataSource.replicas[1].connectionTimeout= чтобы получилось как-то так
Андрей
Ткните ссылкой хотя бы, плиз. Я пойду почитаю и сделаю. А то даже идей нет как это запихнуть
Grek 🇺🇦
Jinja шаблон, цикл for, откуда-то из переменных передавайте список хостов
Андрей
ну понятно. я их из inventory могу взять, не проблема
Хайти🏴
Коллеги здравствуйте, подскажите плз. Предполагаемая схема такова: Есть KVM гипервизор на дебиан c белым айпишником, нжинкс реверс прокся которая раскидывает трафик согласно домену по соответствующим виртуалкам. Стоит задача выдавать статику виртуалкам, нагуглил такой плейбук для создания вм https://github.com/noahbailey/ansible-qemu-kvm предлагают вот такое пихать в инвентори Virtual machines: - name: u18-svr-002 cpu: 1 mem: 512 disk: 5G bridge: br10 net: ip: 10.11.12.13/24 gateway: 10.11.12.1 domain: gablogianartcollection.org dns: - 1.1.1.1 - 9.9.9.9 Как можно так изящно сделоть чтоб незанятые айпишники выдавались автоматом.
Хайти🏴
Ну или мб кто знает как qemu заставить выдавать персистент айпи по дхцп
zEvilz
всем привет. #вопрос на засыпку) чем отличается name от pkg в модуле apt?
Grek 🇺🇦
Ничем
Grek 🇺🇦
Откройте доку, там просто алиасы
zEvilz
Ничем
понял, спасибо
zEvilz
точно, не заметил) в доке видел только name, а в примерах и то и то. щас только заметил алиасы
Emil
Доброго времени суток. Как-то можно передать факты в main_tasks/copy_service.yml, так этот таск использует их. Я пробовал внутри таски модуль setup вызывать сперва, но тоже факты не видит. Или не стоит в таком ключе реализовывать? - name: UPDATE_SERVICE hosts: test gather_facts: true tasks: - import_tasks: main_tasks/backup.yml - import_tasks: main_tasks/copy_service.yml - import_tasks: main_tasks/restart_service.yml vars: name_serivice: service_1
Emil
Какую задачу решаешь?
Внутри main_tasks/copy_service.yml вот такое - name: copying new version service copy: src: src_1 dest: dst_1 when: - ansible_facts['distribution'] == "CentOS" - ansible_facts['distribution_version'] == "5.4" - name: copying new version service copy: src: src_2 dest: dst_2 when: - ansible_facts['distribution'] == "CentOS" - ansible_facts['distribution_version'] == "7.5.1804"
Sergey
Этот пост не отвечает на тот вопрос, который я задал. Он отвечает на вопрос "что написано в файлах с тасками" ;-)
zEvilz
всем привет. в таске юзаю модуль copy. передаю ему список файлов через with_items. мне нужно перезапустить сервис, если хотя бы один из файлов changed. как правильно написать условие?
zEvilz
Сделай через notify.
а notyfy срабатывает только если changed?
Grek 🇺🇦
Если пропишешь условие. Вроде регистрирует все что в copy, а следующий таск нотифи, с условием
zEvilz
мне бы желательно сразу ребутнуть, а через notify это будет в конце. если with_items, то в переменную по идее попадает массив. по любому же можно в when как то проверить наличие changed в массиве, не?)
Grek 🇺🇦
Тогда без нотифи, просто второй таск, который отслеживает changed и делает всё чо нужно вам
zEvilz
Grek 🇺🇦
Зачем, регистрируйте таск с копи в переменную, к примеру cp, а потом when cp.changed
Grek 🇺🇦
Правильный синтаксис лучше в доке смотреть, потому что с телефона пишу, не на чем точно проверитт
zEvilz
Зачем, регистрируйте таск с копи в переменную, к примеру cp, а потом when cp.changed
т.е. если в массиве будет хоть один changed, то и весь таск будет changed?
Grek 🇺🇦
Тип того
zEvilz
понял, всем спасибо)
Alex
https://docs.ansible.com/ansible/latest/reference_appendices/faq.html#how-do-i-get-the-original-ansible-host-when-i-delegate-a-task я правильно понимаю, что багу до сих пор так и не пофиксили? Ибо - debug: msg="master/{{ hostvars[inventory_hostname]['node_name'] }}" - debug: msg="master -> slave/{{ hostvars[inventory_hostname]['node_name'] }}" delegate_to: slave - debug: msg="master -> eplus/{{ hostvars[inventory_hostname]['node_name'] }}" delegate_to: eplus везде выдает имя мастера
Alex
А в чём собственно баг?
не выдает оно имя хоста на который был сделано делегирование
Grek 🇺🇦
А просто inventory_hostname, не то? Без хостварс
Alex
нее
Alex
https://github.com/ansible/ansible/issues/30630 https://github.com/ansible/ansible/pull/69244
Alex
куча issue, но что то воз и нынча там
Sergey
Да не должно так работать же, что за детский сад? Ты делегируешь в переменную - её и используй.
Sergey
о какой переменной идет речь?
Ну что там - slave? Вот slave и пользуешь.
Alex
Ну что там - slave? Вот slave и пользуешь.
Все равно не понимаю о чем речь. Можно пример на базе моего
Sergey
Можно. - debug: msg="master -> slave/{{ hostvars[slave]['node_name'] }}" delegate_to: slave
Alex
А смысл? Если мне надо самому в ручном режиме выбирать имя хоста
Emil
Какую задачу решаешь?
Этот вопрос заставил призадуматься)) Вроде получил, что хотел.
Alex
Тут вся фишка как раз в inventory_hostname
Sergey
А смысл? Если мне надо самому в ручном режиме выбирать имя хоста
Ты троллишь, да? Вот как имя хоста попадает в delegate_to?
Alex
Ты троллишь, да? Вот как имя хоста попадает в delegate_to?
Так в этом и баг - что сейчас оно никак не попадает
Grek 🇺🇦
наверное вопрос Сергея был о другом - кто определяет что должно быть в delegate_to? Тот и должен подставить правильный хост в запрос к хостварс. А у Алекса наверное вопрос в том чтоб не надо было подставлять в запрос к хостварс, а просто обратиться к переменной, допустим если хост в delegate_to задается не в ручную... Я как то так это понял
Alex
Ибо выставлять ручками слишком муторно