Lamobot
https://jinja.palletsprojects.com/en/2.11.x/templates/#for
Lamobot
Там же есть loop.first
Sergey
мне просто нужно если находится первый элемент
Sergey
добавит в него кусок параметров а для остальных нет
Sergey
{%- if 'application.properties' in config_file %}
# Additional application properties for registration to Consul
spring.application.name = {{ application_name }}
spring.cloud.consul.discovery.acl-token = 0
spring.cloud.consul.host = ${NODE_IP}
spring.cloud.consul.discovery.prefer-ip-address = true
spring.cloud.consul.discovery.tags = {{ deploy_environment }}
{% endif %}
Sergey
во вот так отработало
Sergey
но теперь нужно не явно указываь имя if 'name' in
Sergey
а типа если первый элемент из списка то добавить
Stan
как можно gathering facts включить только у группы хостов , а не у всех хостов ? чтоб не нужно было создавать массу плейбуков, а работать в рамках одного плейбука который запускается из jenkins
Grek 🇺🇦
gather_facts: no
в инвентори для этой группы?
Stan
нужно собирать инфо, иначе будет ansible_fqdn получу, нужно чтоб gathering facts работал только на определенной группе хостов, и быбирать их - зависит от запуска в jenkins/ проблема в том что группа серверов постоянно будет меняться, зависит от джобы. те gather facts - no - перманентно на определенные хосты это сделать - не очень вариант
Grek 🇺🇦
точнее для тех групп где не надо собирать инфу
Stan
да
Stan
например создать группы
Stan
далее чтоб gather facts работал только для этой группы
Grek 🇺🇦
кто формирует инвентори для запуска?
Stan
может выкличить его для всех и руками прописать. чтоб определенную домен имена хостов, он собирал отдельно и прописать те хосты
Stan
в общем - из jenkins = указывается хосты - на которые ставиться будет
Stan
и если что то другое недоступно. а gather facts проверяет вообще все
Stan
то джоба падает
Grek 🇺🇦
сделайте 2 глобальные группы - для одной gather_facts: no для другой gather_facts: yes
все сотальные группы будут дочерними к нужной
Stan
опишу так
Stan
есть сервера
1a
1b
2a
2b
3a
3b
4a
4b
5a
5b
6a
6b
7a
7b
я могу сделать так что если запускать джобу только серверам группы 1. и делать gathering facts только у них
то это как бы решает вопрос.
но сервера 1 могут зависеть также от серверов 3, то проверять нужно на 1 и 3,
если устанавливаются 2сервера. 2 зависит еще от 1 и 4.
если установка 3 (он зависит от 1 и 2) то проверять нужно только на 1.2.3 , и не проверять на 4567
Stan
те делать gahter facts no на 4567 , и проверять только 123. то когда будет ставиться 5 или 4, то там просто вся ляжет.тк нет информации по имени серверов или ip b ng
Grek 🇺🇦
я понял что ничего не понял, почему у вас зависимые сервера?
сделайте группы, зависимыве в одну группу, остальные в другую
Grek 🇺🇦
кто решает что от чего зависит? пусть и раскидывает в нужные группы
Stan
прилижения решают и базы, которые пишут данные на другие сервера
Stan
разработчики и тп
Stan
просто раскидать - ну - так себе решение
Stan
сделать группы можно
Grek 🇺🇦
ну, вы бы разобрались кто и что у вас делает. ваш вопрос решается глобально на уровне инвентори и групп.
Stan
только сервевра будут постоянно перебегать из одной группы в другую
Grek 🇺🇦
динамик инвентори
Grek 🇺🇦
определите формальные признаки принадлежности сервера к группе и в путь
если инвентори формируется в ручную - то боль, надо чтоб каждый кто его формирует понимал что он делает
Stan
так, у знаю какие группы серверов должны устанавливаться с какими. те я таким образом могу сформировать группу серверов
Stan
и добавить это в group vars
Stan
у нас стенды
Stan
интеграционное тестирование, нагрузочное и тп
Stan
в которых находятся группы серверов
Stan
из jenkins идет команда на установку скажем группу серверов 1. с стенда такогото
Stan
я могу в group vars прописать - указать чтоб делал gathering facts c таких то серверов
Stan
создать yaml
Stan
в него прописать сервера
Stan
с группами
Stan
об этом речь ?
Grek 🇺🇦
речь о вашем файле инвенторя, в котором будут группы хостов. у группы будет параметр gather_facts
Stan
группы есть
Stan
делов том, проверять gather facts нужно у всех, но в зависимости от джобы
Stan
динамический gathering facts 7
Stan
_
Stan
?
Grek 🇺🇦
так у всех или не у всех?
джоба формирует вам инвентарь?
Stan
джоба формирует - на каких из серверов делать установку
Stan
и соответственно только на этих и зависимых от них серверах нужно собирать информацию
Stan
сервера и группы серверов известны
Stan
но в jenkins я мог бы указать какие сервера использовать, но это сложно - ограничения jenkins
Grek 🇺🇦
я сдаюсь...(
мой вариант решения Вы услышали, дальше - как вы там у себя захотите так и делайте
Stan
ваш вариант норм, но если бы это все не менялось
Grek 🇺🇦
меняется - делаете динамик инвентори
Stan
проблема в том что джобы разные и инвентори постоянно меняются
Stan
погуглить надо)
Grek 🇺🇦
меняется в ручном режиме - делаете так чтоб тот кто формирует инвентори перед запуском делал это правильно
Stan
это не в ручном - как бы
Stan
это прописано в jenkins
Stan
автоматом он как бы выирает
Grek 🇺🇦
научите его формировать инвентори нужный
Stan
jenkins ?
Grek 🇺🇦
*уенкинс.... Простите
КТО\ЧТО У ВАС ФОРМИРУЕТ ИНВЕНТОРИ ФАЙЛ?
Научите его формировать файл динамически в зависимости от того что там выбрал jenkins, или пусть сам jenkins формирует файл
это уже дико не по теме чата
Sergey
Ilya
Кто пользовался модулем win_acl подскажите, как указать группу Все или Прошедшие проверку? Everyone и Authenticated Users не подходят
Wadik
добрый день. Подскажите, если я через модуль lineinfline хочу добавить строку после указанной нужно ли указывать regexp или insertafter достаточно ?
Николай
нуно, иначе каждый раз новую строку вставлять будет
fs
кто подскажет, при записи текста в файл через ini_file (in local_action) получаю 26, in decode\n return codecs.ascii_decode(input, self.errors)[0]\nUnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 1813: ordinal not in range(128)\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1} я так понимаю где то я пытаюс что то записать в не той кодировке, вопрос, как это отдебажить ?
Wadik
Николай
Не пойм как это в связке работает
Лучше всего понимание работы модулей приходит через эксперименты на локалхосте с тестовым плейбуком (в котором только нужные таски).
Ilya
Sergey
потёр оффтопик
Wadik
Подскажите, что ему не нравится. Замучало уже
inqfen
Ну как минимум отсутствие пробела перед name
Wadik
-name с начало строки