Timur
Maksim
George
отступы
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 есть возможность указать для какой группы из этого файла его применять?
Timur
George
Evgeney
группа хостов которая в самом инвентори файле пишется в [ ]
Timur
Timur
Можно ли применить инвентори для группы, которая берется из этого же инвентори?
Evgeney
может я не совсем правильно делаю
Evgeney
сейчас объясню
Evgeney
есть несколько пощадок на них разные виды устройств. на каждую площадку создали инвентори файлы - в соответствии с площадкам, в них устройства сгруппированы по виду
Evgeney
теперь при вызове плебука нужно уточнить к какой группе его применять
Evgeney
да
Evgeney
вот эту группу при вызове плейбука можно поменять?
Maxim
если я вас правильно понял, по тому что вы написали выше, то вам лучше всего сделать несколько инвентори файлов (по площадкам) с одинаковыми группами, чтобы задать эти группы в одном в плейбуке, и при запуске не морочить себе голову) или писать отдельные плейбуки на каждую площадку 🙂
Timur
Evgeney
хорошо, спасибо понял: делать больше инвентори файлов на площадку и использовать одинаковые имена групп
Timur
Timur
Один инвентори файл на площадку со всеми нужными группами
Timur
Но внутри файлов для разных площадок названия групп должны быть одинаковыми
Evgeney
но тогда писать несколько плейбуков? например нужно выполнить одни и те же действия для разных групп устройств на одной площадке
Timur
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
Timur
Max
George
Andrey
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
ℭ𝔞𝔯𝔯𝔬𝔩
Max
Alex
Alex
Max
Max
там лежит ansible.cfg
Max
относительно этого каталога можно класть и писа́ть относительные пути
Alex
я понимаю что надо что то прописать в ansible.cfg - поэтому в сообщество и обращаюсь
Max
roles_path настрой.
Max
в файле ansible.cfg
ℭ𝔞𝔯𝔯𝔬𝔩
А как же playbook_dir ?
ℭ𝔞𝔯𝔯𝔬𝔩
В инвентори можно указать путь к плейбукам и к ролям и ещё много чего...
в итоге в top ансибла будет туча папок, ansible.cfg и файл с инвентори.
https://docs.ansible.com/ansible/latest/reference_appendices/special_variables.html
ℭ𝔞𝔯𝔯𝔬𝔩
И вообще, в ansible.cfg указать ещё путь к инвентори другой 😂
ℭ𝔞𝔯𝔯𝔬𝔩
Max
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
ℭ𝔞𝔯𝔯𝔬𝔩
ℭ𝔞𝔯𝔯𝔬𝔩
Alex
Для путей плейбуков переменных нет
ℭ𝔞𝔯𝔯𝔬𝔩
Это грязный хак, конечно, но её вроде никто не перетирает
Alex
$ ansible-playbook test.yaml
ERROR! the playbook: test.yaml could not be found
Oleksandr
Oleksandr
там же
Oleksandr
параметром ты отдаешь путь к файлу плейбука