Timur
Прошу простить, забыл прикрепить ссылку.. https://pastebin.com/qDAAe2WM
Ну, если на первом шаге упадет, то второй очевидно не выполнится
George
Понял, спасибо.
у вас ЯМЛ форматирование поехало
George
отступы
Max
Понял, спасибо.
на здоровье, солнышко! 🔆
greydjin
Подскажите как нормально описывать переменные для групп-хостов, надоело переписывать. Проблема с переменными которые несколько значений имеют, несколько строк. Например firewall_ip4_custom_rules: - "-A INPUT -p tcp -s 1.1.1.1 --dport 8522 -j ACCEPT" - "-A INPUT -p tcp -s 1.1.2.1 --dport 8522 -j ACCEPT" Нужно чтобы первая строка была на всех хостах группы, а вторая строчка отличается на каждом хосте группы
greydjin
для этого обязательно создавать переменные общие для группы и переменные индивидуальные для хоста? пока только такой выход вижу
George
а ты создай две переменные
George
вторая имеет дефолтное значение ""
George
и потом в плейбуке мержи
Evgeney
подскажите при запуске плейбука с отдельно указанным файлом инвентори: ansible-playbook -i /etc/ansible/host pb1.yml есть возможность указать для какой группы из этого файла его применять?
Evgeney
группа хостов которая в самом инвентори файле пишется в [ ]
Timur
Можно ли применить инвентори для группы, которая берется из этого же инвентори?
Evgeney
может я не совсем правильно делаю
Evgeney
сейчас объясню
Evgeney
есть несколько пощадок на них разные виды устройств. на каждую площадку создали инвентори файлы - в соответствии с площадкам, в них устройства сгруппированы по виду
Evgeney
теперь при вызове плебука нужно уточнить к какой группе его применять
Maxim
теперь при вызове плебука нужно уточнить к какой группе его применять
так вы в плейбуке указаываете группу хостов, и роли которые применяются к этой группе
Evgeney
да
Evgeney
вот эту группу при вызове плейбука можно поменять?
Maxim
если я вас правильно понял, по тому что вы написали выше, то вам лучше всего сделать несколько инвентори файлов (по площадкам) с одинаковыми группами, чтобы задать эти группы в одном в плейбуке, и при запуске не морочить себе голову) или писать отдельные плейбуки на каждую площадку 🙂
Timur
теперь при вызове плебука нужно уточнить к какой группе его применять
Зачем уточнять? Просто делайте группы с одинаковыми именами
Evgeney
хорошо, спасибо понял: делать больше инвентори файлов на площадку и использовать одинаковые имена групп
Timur
Один инвентори файл на площадку со всеми нужными группами
Timur
Но внутри файлов для разных площадок названия групп должны быть одинаковыми
Evgeney
но тогда писать несколько плейбуков? например нужно выполнить одни и те же действия для разных групп устройств на одной площадке
Timur
А, ну, или если вы хотите исключительно на уровне инвентори-файлов все разделять, то можно так, да
Timur
Делать отдельный инвентори на каждую группу устройств и вызывать его явным образом при запуске плейбуки
Timur
А группы внутри инвентори должны быть одни и те же по названиям
Vladislav 👻
что-то нигде не могу найти, подскажите, yaml регистрозависимый?
Ждун
Ждун
да каждая ссылка только про это и кричит )
Alex
Привет всем, может кто подскажет! есть классическая структура ансибл-проекта директории hosts, roles (в ней папка postgresql и далее папки) создал postgresql.yml в корне проекта - запускаю все отлично отрабатывает вопрос - создаю директорию playbooks в корне проекта для плейбуков в частности для запуска разных ролей туда положил postgresql.yml - запускаю но с путями проблема - скажите как правильно запускать его - вариант типо ansible-playbook -v playbooks/postgresql.yml не работает в postgresql.yml строки вот такие - name: setup base hosts: pgservers vars_files: - 'roles/postgresql/defaults/main.yml' tasks: - include: 'roles/postgresql/tasks/install.yml' tags: - setup-psql
Ждун
https://docs.ansible.com/ansible/latest/user_guide/playbooks_best_practices.html
Vladislav 👻
👍🏻
Pavel
--- - import_playbook: 1.yml - import_playbook: 2.yml - import_playbook: 3.yml есть ли возможность передавать разные хосты из master плейбука в наследуемые? Пример такой,я в AWX в Templates создаю темплейт с master.yml плейбуком,в нём делаю include 3х разных плейбуков,дальше хочу при старте плейбука через awx-template-limit передавать (список хостов или отедельный хост из inventory).При этом в 1.yml мне надо оставлять статический хост который там есть в 2.yml брать хост из limit и дописывать к его названию _ssh и передать его в 2.yml в 3.yml брать чисто тот который передал в awx-template-limit
Max
Привет всем, может кто подскажет! есть классическая структура ансибл-проекта директории hosts, roles (в ней папка postgresql и далее папки) создал postgresql.yml в корне проекта - запускаю все отлично отрабатывает вопрос - создаю директорию playbooks в корне проекта для плейбуков в частности для запуска разных ролей туда положил postgresql.yml - запускаю но с путями проблема - скажите как правильно запускать его - вариант типо ansible-playbook -v playbooks/postgresql.yml не работает в postgresql.yml строки вот такие - name: setup base hosts: pgservers vars_files: - 'roles/postgresql/defaults/main.yml' tasks: - include: 'roles/postgresql/tasks/install.yml' tags: - setup-psql
дружище, ты не вкурил что такое роли и как их кушать: роль - это коробочка, которую тебе не надо самому собирать. есть переменная roles_path (это соединенный двоеточиями список папок, в которых ты ожидаешь найти роли) чтобы в плейбуке использовать роль, достаточно положть папку роли на roles_path, и указать в плее плэйбука имя роли: - name: my cool sequence hosts: postgres roles: - role: podtgresql и всё. Сущность роли и заключается в том, чтобы упорядоченно загрузить переменные, а потом запустить таски через /tasks/main.yml твоей роли. надеюсь понятно написал.
Andrey
Привет всем, может кто подскажет! есть классическая структура ансибл-проекта директории hosts, roles (в ней папка postgresql и далее папки) создал postgresql.yml в корне проекта - запускаю все отлично отрабатывает вопрос - создаю директорию playbooks в корне проекта для плейбуков в частности для запуска разных ролей туда положил postgresql.yml - запускаю но с путями проблема - скажите как правильно запускать его - вариант типо ansible-playbook -v playbooks/postgresql.yml не работает в postgresql.yml строки вот такие - name: setup base hosts: pgservers vars_files: - 'roles/postgresql/defaults/main.yml' tasks: - include: 'roles/postgresql/tasks/install.yml' tags: - setup-psql
Почитай best practice. И почитай куда ансибл смотрит по умолчанию. Лучше структуру сразу делать. Для разных окружений свой inventory, например stage/hosts, prod/hosts. Роли делать универсальные и писать в них переменные и делать папку group_vars/stage.yml prod.yml итд. Где им присваивать значения. А плейбуки можно и в корень положить
Ivan
@a_aversus Best Practices сам читаю
Pavel
Я так назвал плейбуки которые я инклюдил в мастер плейбук
Pavel
Что еще за наследование хостов через плейбуки?
GithubReleases
ansible/ansible was tagged: v2.7.9 Link: https://github.com/ansible/ansible/releases/tag/v2.7.9 Release notes: New release v2.7.9
Alex
дружище, ты не вкурил что такое роли и как их кушать: роль - это коробочка, которую тебе не надо самому собирать. есть переменная roles_path (это соединенный двоеточиями список папок, в которых ты ожидаешь найти роли) чтобы в плейбуке использовать роль, достаточно положть папку роли на roles_path, и указать в плее плэйбука имя роли: - name: my cool sequence hosts: postgres roles: - role: podtgresql и всё. Сущность роли и заключается в том, чтобы упорядоченно загрузить переменные, а потом запустить таски через /tasks/main.yml твоей роли. надеюсь понятно написал.
в общем ты не понял что я спрашивал - все это есть - и роли и струкрута директорий со своими файлами (defaults, tasks и т/д/) - я просто не хочу складировать плейбуки в корне проекта а например вынести в отдельную директорию например playbooks ее я пранирую разместить в корне проекта - когда в корне запускаю плейбуки все работает
Max
там лежит ansible.cfg
Max
относительно этого каталога можно класть и писа́ть относительные пути
Alex
я понимаю что надо что то прописать в ansible.cfg - поэтому в сообщество и обращаюсь
Max
roles_path настрой.
Max
в файле ansible.cfg
Alex
в файле ansible.cfg
А путь до плейбуков в него нельзя впилить😔
ℭ𝔞𝔯𝔯𝔬𝔩
А как же playbook_dir ?
ℭ𝔞𝔯𝔯𝔬𝔩
В инвентори можно указать путь к плейбукам и к ролям и ещё много чего... в итоге в top ансибла будет туча папок, ansible.cfg и файл с инвентори. https://docs.ansible.com/ansible/latest/reference_appendices/special_variables.html
ℭ𝔞𝔯𝔯𝔬𝔩
И вообще, в ansible.cfg указать ещё путь к инвентори другой 😂
Alex
Я ответил на вопрос?
Спасибо, попробую указать в ansible.cfg playbook_dir
Max
указывай путь к плэйбукам относительно текущего каталога.
Max
если пытаешься родить ежа или дикобраза обращениями к файлам роли, то достаточно подагаться на настройки по умолчанию, т.е. roles_path = /etc/ansible/roles:roles, если не ошибаюсь.
Nikolay
Привет, чат. А где-то есть список по связи (поддержке) между версиями molecule и версиями ansible. При запуске molecele create, получаю такое сообщение: TASK [Create molecule instance(s)] ### failed: [localhost] => ... "msg": "New-style module did not handle its own exit"} molecule 2.19.0 ansible 2.7.0 PS: для create.yml использую molecule_vagrant
ℭ𝔞𝔯𝔯𝔬𝔩
Спасибо, попробую указать в ansible.cfg playbook_dir
Этот параметр указывается в инвентори файле
Alex
А как же playbook_dir ?
Это переменная выставляется при запуске плейбука.
Alex
Для путей плейбуков переменных нет
ℭ𝔞𝔯𝔯𝔬𝔩
Это переменная выставляется при запуске плейбука.
Задать можно в инвентори для all напиимер... https://docs.ansible.com/ansible/latest/reference_appendices/special_variables.html
ℭ𝔞𝔯𝔯𝔬𝔩
Это грязный хак, конечно, но её вроде никто не перетирает
Alex
Задать можно в инвентори для all напиимер... https://docs.ansible.com/ansible/latest/reference_appendices/special_variables.html
Не работает, это переменная рантайма, вот содержимое инвентори: playbook_dir="./playbooks/" localhost ansible_connection=local Вот структура проекта: ./test-project templates/ some_template.conf.j2 playbooks/ test.yaml roles/ test-role/ hosts/ group_vars/ group1.yaml inventory.ini README.md ansible.cfg
Alex
$ ansible-playbook test.yaml ERROR! the playbook: test.yaml could not be found
Oleksandr
там же
Oleksandr
параметром ты отдаешь путь к файлу плейбука