Alex
параметром ты отдаешь путь к файлу плейбука
в том и дело, для ансибл нельзя указать путь к директории с плейбуками. Посмотри переписку
ℭ𝔞𝔯𝔯𝔬𝔩
Спасибо, попробую указать в ansible.cfg playbook_dir
Увы, я не прав, это не работает
ℭ𝔞𝔯𝔯𝔬𝔩
Oleksandr
я ж запускаю сразу с путём
логика немного ебобо конечно у ансибла - бегает везде и рыскает
Alex
Я тоже, но хотел уйти от указания пути ./playbooks/test.yaml
ℭ𝔞𝔯𝔯𝔬𝔩
Alex
Я тоже, но хотел уйти от указания пути ./playbooks/test.yaml
а если полный путь относительно проекта указываешь то работает?
Oleksandr
Я тоже, но хотел уйти от указания пути ./playbooks/test.yaml
вшивать #!/bebe/ansible-playbook и дергать сам yaml сделать его исполняемым и добавить его в PATH?
Oleksandr
ну не хотят парни пути использовать
Sergey
Что за хрень?
Sergey
Относительный путь усегда можно, wtf?
ℭ𝔞𝔯𝔯𝔬𝔩
Я тоже, но хотел уйти от указания пути ./playbooks/test.yaml
переменную-то (playbook_dir) я добавил, но плейбуки всёравно запускаю так: ansible-playbook playbooks/do-it.yml
Oleksandr
Относительный путь усегда можно, wtf?
перечитай что хотят, нехрень
ℭ𝔞𝔯𝔯𝔬𝔩
Что за хрень?
да так, треш
Alex
не хочу указывать путь, хочу только имя плейбука указывать
Alex
Поэтому фичереквест надо писать в ансибл
Юрий
во враппер заверните и дело в шляпе
Alex
во враппер заверните и дело в шляпе
Спасибо кэп, но это не надо. Хотелка чисто эстетическая
Alex
Так не будет без изврата
Ну его нафиг, я лучше буду указывать путь и фичереквест создам
Юрий
судя по длиннющему обсуждению, думал это критически важно, а не просто эстетика :)
Oleksandr
Ну его нафиг, я лучше буду указывать путь и фичереквест создам
Реквест на что? На поиск файла который передается параметром?
Alex
судя по длиннющему обсуждению, думал это критически важно, а не просто эстетика :)
Просто не вникая в суть начали писать. Потому и растянулось
Alex
Он есть
Покажи
Oleksandr
У тебя другая хотелка
Alex
У тебя другая хотелка
Дефолтный path для плейбуков в ансибл конфиг. Вот моя хотелка
Oleksandr
Потому что это против лучших практик и дерева проекта
Alex
Пошлют тебя и правильно сделают
Какой аргумент, прям видно что технический
Alex
Потому что это против лучших практик и дерева проекта
Это не против практик. Плейбуки все в куче в cwd лежат. А я предлагаю их организовать. Остальные бестпрактис вообще не задеты
Alex
Это как попросить то же самое для sed или awk
У людей разное мнение по этому поводу
Oleksandr
У людей разное мнение по этому поводу
Подумай, что будет, если задать /
ℭ𝔞𝔯𝔯𝔬𝔩
Подумай, что будет, если задать /
значит сам себе злобный буратин PS: ничего не будет, если в / нет коллекции плейбуков
zhag
Ребята напомните как узнать какой именнно ansible.cfg использует ansible-playbook ?
zhag
У меня он в хомяке лежит но я что-то не вижу деприкейтед, а обычно у меня этого говна много было
Марат
-vvvvvvv )
лучше 40 раз
Timur
лучше 40 раз
Лучше 40 раз по разу, чем ни разу 40 раз :)
John
Тимур, ты случайно не понимаешь что происходит в этой переменной?
John
она генерит текст типо - targets: - hostname:9100 - targets: - hostname2:9100 а как сюда докинуть еще и - targets: - hostname:8080 - targets: - hostname2:8080 не понятно
Sergey
Что-то очень странное
Странный способ приписать ":9100" к каждому имени хоста из списка
John
мопед не мой)
Timur
Скажите суть задачи
Timur
Разбирать вывихи очередного говнокода смысла не вижу
John
Я буду не оригинален
суть: в прометеус в файл file_sd/node.yml иметь список нод-экспортеров, которые везде на порту 9100, и на 8080
Антон
суть: в прометеус в файл file_sd/node.yml иметь список нод-экспортеров, которые везде на порту 9100, и на 8080
встроенный в ansible шаблонизатор поможет решить такую задачу штатными средствами
zhag
спасибо
Timur
Вот он пример
В вашем примере просто приведены несколько различных списков. Что должно быть в целевом файле в итоговом виде - непонятно
Антон
Подскажи отчем речь? Я пока не специалист
https://docs.ansible.com/ansible/latest/modules/template_module.html - это о том, как юзать в ансибле это о том, как готовить шаблон - https://habr.com/ru/post/193260/
Ждун
так добавь в свой регекс еще и '{"targets": ["\1:9100"]}\n{"targets": ["\1:8080"]}'
Ждун
:D
Антон
эээээ.... положите переменные рядом в файлик и читайте их
ℭ𝔞𝔯𝔯𝔬𝔩
Так низзя, потому что роль скачивается из гэлекси, и ждёт переменных
group_vars/host_vars отдельно от ролей и плейбуков хранить можно
Asgoret
коллеги, все привет. возник довольно не тривиальный вопрос, при выполнение данного таска: - name: Prepare container env for deployment config lineinfile: path: "/tmp/env_{{ service_name }}.txt" state: present line: |- - name: {{ item.key }} value: {{ item.value }} loop: "{{ contents | default({}) | dict2items }}" Значение {{ item.value }} может быть как буквенным, так и циферным. Таким образом при изменение типа знаничения, должен меняться шаблон вставки. Пример: Значение переменной буквенное: {{ item.value }} Значение переменной циферное: '{{ item.value }}' (разница в наличие экранирования) Вопрос: Можно-ли как-то сделать if силами ансибла или нужно писать доп.проверку до этого таска?
Timur
Обязательно извращаться с lineinfile?
Asgoret
А просто шаблон нормальный сделать - не вариант?
не, ну можно под каждую хуйню написать свой хардкодный темплейт, будешь поддерживать 24/7/365 за мрот?
Timur
Может, ещё проще варианты есть
Asgoret
Что вообще за задача-то?
вставить в текст
Asgoret
Может, ещё проще варианты есть
собственно... задача в таске) вставить в текст)
Timur
вставить в текст
Сгенерить из шаблона нужный блок, а его уже вставить. Не вариант?
Asgoret
Сгенерить из шаблона нужный блок, а его уже вставить. Не вариант?
это и есть вставка нужного блока сгенерированного из текста