Алексей
inventory/some/hosts_vars/host - файл с переменными для хоста, для оверрайда групповых и ролевых переменных
Timur
Да, должен быть yml
Vladislav 👻
Алексей
ансибл не видит параметры в файле.
Vladislav 👻
если речь про переменные, то лучше вынесьти отдельно
Алексей
в смысле отдельно?
Artur
в смысле не в самих тасках
Алексей
У меня есть роль. в ней определено Default
Есть инвентарь.
В нём группа, на группу повешаны оверрайды дефолтных параметров роли.
Хочу одному хосту поменять переменную.
Сделал в hosts_vars файл с именем хоста, указал переменную - не видит.
ЧЯДНТ?
Vladislav 👻
в смысле не в хосте
Vladislav 👻
Алексей
Ну да, там и лежит файл хоста с переменной
Vladislav 👻
покажи структуру
Алексей
Vladislav 👻
а запускаешь как?
Алексей
ansible-playbook -i environments/dc/hosts -b 00_all.yml --diff --tags zabbix,configure_zabbix -l dc01ml12(full name like in inventory)
Vladislav 👻
-i environments/dc/
Vladislav 👻
вот так
Алексей
Группы то подхватывает в таком виде
Алексей
сейчас попробую
Алексей
не, не помогло
Алексей
Ещё момент, у меня файл инвентаря hosts в формате YAML
Пробовал хосту туда добавлять переменную - тоже самое - не подхватывает.
Алексей
Всё разобрался, коллега захардкодил в роль выбор переменной по зависимостям.
Vladislav 👻
да уж
Vladislav 👻
Подскажите, кто как настраивал пучарм для ансибла? У меня почему-то не видит переменне в проекте...
Алексей
не подскажу, атомом пользуюсь.
Timur
Vladislav 👻
нет, в ансибле
Vladislav 👻
хочу бегать по переменным между ролями и варсами на хостах/группах
Vladislav 👻
а все, разобрался, надо было для расширений переопределить тип с yaml на yaml/ansible
Vladislav 👻
хотя все равно какой-то кривой
Vitaliy
Здравствуйте! Подскажите, можно ли запустить выполнение Ansible в уже существующей сессии Tmux?
Александр
Делаете ли вы роли в роли?
Александр
Например есть роль проекта, а он в свою очередь разбит на другие роли, т.к. проект разбит на микросервисы многочисленные.
Александр
и роли в роли в роли (:
Александр
ну по идее так и есть нормально, древовидная структура, все дела =)
Александр
ansible
├── roles
│ ├── my-project1
│ │ ├── service1
│ │ ├── service2
│ │ └── service3
│ └── my-project2
└── sub1
Николай 🌵
всем привет, у меня вопрос такого рода, можно ли в переменную плейбука передать имя самого плейбука ?
Александр
O_o
Александр
Sergey
Николай 🌵
Есть вот такой кусок кода - проверяет наличие переменной передаваемой в плейбук tasks:
- name: Check vars
fail:
msg: '[ERROR] Missing required parameters: <playbook>.yml -e "chosts=<client hosts>"' и хотелось бы, вместо <playbook>.yml, что бы отображалось оригинальное название плейбука
Николай 🌵
ну или если возможно это сделать другим способом - буду благодарен
Sergey
дык а смысл, он будет тебе в ошибку алертить то что у тебя роль косякнула, а не где она косякнула
Александр
эм
Александр
мне кажется, или с опцией -vvv при выполнении плейбука тебе и так отладочной инфы навалит?..
Александр
или там прям такая архисложная система, что юный падаван должен ручками кучу параметров с плейбуком передать, и потому может запутаться?
Николай 🌵
Николай 🌵
суть в том, что если ты запустил плейбук - без параметров, нужно проверить что нет параметров и вывести ошибку "Мол добавь ключ"
Timur
Можно вот такой workaround заюзать:
---
- name: "{{ task_name }}"
hosts: localhost
vars:
task_name: "Tasks for service XYZ"
tasks:
- debug:
msg: "{{ task_name }}"
Vadim
Николай 🌵
Николай 🌵
Timur
Vadim
мы делаем вот так - https://github.com/openshift/openshift-ansible/blob/master/playbooks/metrics-server/private/config.yml#L10-L12 и https://github.com/openshift/openshift-ansible/blob/master/playbooks/metrics-server/private/config.yml#L29-L30
Николай 🌵
Александр
7) Пишешь в комьюнити:
«Доброе утро, для решения поставленной задачи я применил типовое решение (ссылка), но в результате получил (ссылка на пэйстбин). Нагуглив этот выхлоп, я обнаружил, что данную проблему до меня решали вот таким способом (ссылка на решение), однако в моём случае это не помогло. Прошу поделиться опытом в решении этой проблемы или помочь найти способ, как можно решить мою задачу» - и в ответ молчание, потому что так глубоко никто не лазил :D
Nikita
Всем привет, подскажите пожалуйста с решением задачи:
У меня есть некоторые данные:
- hosts: localhost
vars:
org: example
repos:
- repo_1
- repo_2
- repo_3
- repo_4
Из переменных мне нужно сформировать список типа:
[“example/repo_1”, “example/repo_2”, “example/repo_3”, “example/repo_4”]
что бы передать его в теле запроса. Возможно я неправильно формирую список repos.
Nikita
Даже не список, а строку, которая имеет вид списка
Egor
Используй для этого Jinja2, напиши цикл: для org перебираются все элементы из repos.
Egor
with_subelements
Vladislav 👻
Подскажите, а можно как-то в jinja2 сделать проверку на последний элемент в листе? Суть проблемы, мне надо циклом подставить в темплейт пачку линков в js, а там элементы через запятую перечисляются и соответственно у последнего элемента не должно быть запятой...
Timur
Timur
Vladislav 👻
а как тогда?
Nikita
with_subelements
Через with_subelements делать map? Мне же нужно в итоге получить переменную в которой содержиться список
Timur
join(“,”)
Nikita
Nikita
Вроде всё отписал
Александр
Vladislav 👻
join(“,”)
не вариант, к сожалению, т.к. js писал кто-то отшибленный и там одномерный массив, в котором идет логика <link1>, <timeout>, <link2>, <timeout> и т.д.
Nikita
Мне нужна строка вида [“example/repo_1”, “example/repo_2”, “example/repo_3”, “example/repo_4”]
Nikita
Чтобы вставить её в тело запроса
Egor
Vladislav 👻
loop.last же
а как мне из цикла убрать последний, чтобы не было дубля последнего?
Timur
Александр
Timur
Есть список или нет?
Александр
За тебя сделать или что?