Андрей
судя по всему придется так :)
Viktor
возможно, через Google Drive API можно
Pavel
у Google Drive вроде ж WebDAV был, или нет?
Andrey
manefesto
если я не ошибаюсь то копирование реркурсивно только через synchronize
Asgoret
можно ли при запуске ансибла указать использовать кастомный ansible.cfg?
Asgoret
нужно на один раз просто)
Fedor
ANSIBLE_CONFIG (environment variable if set)
Nklya
он автоматом берет конфиг из локальной папки
GithubReleases
ansible/ansible was tagged: v2.7.0rc3
Link: https://github.com/ansible/ansible/releases/tag/v2.7.0rc3
Release notes:
New release v2.7.0rc3
Huan
привет всем. подскажите плз как в плейбук указать какие items юзать в плейбуке для роли чтоб не писать в каждой таске with_ites: '{{ role_items }}'?
roles:
- { role: role_name, tags: role_tag, with_items: role_items }
cat inventroies/group_vars/some_group/role_variables.yml
---
role_items:
- key1: value1
key2: value2
как-то так можно?
Nikolai
Приветствую
есть прмерно такая структура
my_ansible
├── inventory
├── hosts.ini
└── roles
├── role1
├── role2
└── role3
└── main.yml
└── task1.yml
└── task2.yml
└── task3.yml
В инвентари хосты разбиты на группы
В roles3 необходимо выполнить таски на конкретных хостах (не группах)
Делаю импорт в main.yml
- import_tasks: task1.yml
В task1.yml указываю конретный хост в группе
- hosts: group_name[0]
tasks:
- name: Run command
....
В результате получаю ошибку синаксиса
ERROR! no action detected in task. This often indicates a misspelled module name, or incorrect module path.
- hosts: group_name[0]
^ here
Как указать чтобы таски выполнились на конкретном хосте из соотвествующей группы?
bebebe
помойму, вы где-то напортачили с "ансибл ситнаксисом"
коснтрукция - hosts: group_name[0] должна работать
Nikolai
если убираю
- hosts: group_name[0]
tasks:
из task1.yml и оставляю только сами таски - оно выполняется, но на всех хостах
bebebe
эээ, вы конструкцию
- hosts: group_name[0]
tasks:
положили в файл task1.yaml?
Nikolai
да
Nikolai
скорее всего не правильно, но не пойму где это указать тогда
bebebe
а каким образом вы тогда плейбуку запускаете?
bebebe
если у вас плейбкуа называется task1.yaml, то все должно быть хорошо
но видимо, вы пытаетесь вложить в плейбуку плейбуку через include_tasks - это не правильно
Nikolai
да, плейбук запускается из другого файл, в котором указаны роли
playbook.yml
- hosts: all
become: yes
become_user: root
become_method: sudo
roles:
- role1
- role2
- role3
Nikolai
да вы правы, но как тогда сделать
bebebe
https://docs.ansible.com/ansible/latest/user_guide/playbooks.html
почитайте, если появятся вопросы - спросите
Nikolai
все, разобрался
bebebe
\o/
Sergey
Ребят подскажите где в доке почитать
как прокинуть хостнейм из инвентори файла в j2 конфиг для деплоя ансиблом?
Пример:
{
hostname="{{ proxysql_server1 }}"
port=6032
weight=0
comment="proxysql1"
}
где адрес будет браться из переданной переменной
Как указать передачу из инвентори?
Mikhail
inventory_hostname, кажется
manefesto
ага
manefesto
вроде так
manefesto
в общем много там чего
manefesto
ansible -m setup выплюнет тебе потянку
Mikhail
Sergey
{
hostname="{{ ansible_hostname=db1 }}"
port=6032
weight=0
comment="proxysql1"
}
так?
manefesto
зачем ?
manefesto
```
{
hostname="{{ ansible_hostname }}"
port=6032
weight=0
comment="proxysql1"
}
```
manefesto
так
Mikhail
{
hostname="{{ inventory_hostname}}"
port=6032
weight=0
comment="proxysql1"
}
Sergey
я не совсем понимаю а где присвоение на каком инвентори хосте выполнить
manefesto
надо смотреть, если ты делаешь для all, то надо указывать конкретный хост
Sergey
роль следующая:
у меня есть 4 среды
мне нужно раскидать на 4 среды(группы хостов) софт, применяю переменные, соответсвующие среде
вопрос, могу ли я не указывать адреса в vars, а вместо них использовать хостнеймы?
Sergey
ansible-playbook -i inventory/proxysql proxysql.yml -e "hostgroup=perf env=perf"
Sergey
т.е выкати на хостгруппу перф
соблюдая переменные var/perf.yml
Sergey
вопрос заключался именно в прокидывании хостнеймов указанных в хостгруппе без добавления их в vars
manefesto
зачем тебе их в варс ?
Sergey
потому что я не могу их по другому прокинуть в конфиг
Sergey
суть не поменяется, если конфиг будет одинаковый в пределах одной хостгруппы
Sergey
но у меня 1 шаблон конфига, куда прокидываются именно варсы соответсвующие среде в которую они деплоятся
Sergey
если бы у меня было 4 конфига без переменных, вопроса бы не было;)
Mikhail
Мне кажется тебе нужно сделать environments а в них group_vars
Mikhail
В каждом environments свой inventory
Mikhail
Все хосты из этих environments будут брать переменные из своего group_vars
Sergey
спасибо за наводку я пробну
Aion
{% for host in groups.mygroup %}... Вы об этом?
Sergey
Sergey
вот есть инвентори
в инвентори группа
в группе два хоста
надо чтобы оба хоста участвовали в конфиге вмеcто
proxysql_servers =
(
{
hostname="{{ proxysql_server1 }}"
port=6032
weight=0
comment="proxysql1"
},
{
hostname="{{ proxysql_server2 }}"
port=6032
weight=0
comment="proxysql2"
}
)
Sergey
иначе самым простым методом будет прокидывание адреса из vars
Aion
hostvars[host].inventory_hostname <- имя хоста из инвентори файла
Aion
доступен в цикле for, который я писал выше
Aion
если у вас не объявлены группы в инвентори для хостов, к ним (хостам) можно обратиться по встроенной группе [all]
Sergey
хостгруппа обьявляется при старте
Sergey
ansible-playbook -i inventory/proxysql proxysql.yml -e "hostgroup=perf env=perf"
Sergey
env служит как указатель варсфайла
Sergey
т.е один конфиг(шаблон) четыре варсфайла
Anton
может проще сделать отдельный инвентори на каждую среду?
Sergey
можно было бы сделать 4 инвентори
но стоит ли, если и так по 2 хоста в группе
Aion
у вас есть группа
Aion
в цикле for вы проходите по ней и достаете значения хостов, что вам еще нужно в вашей задаче?
Sergey
A
Всем привет! Не поддерживает пример динамического инвентаря из бд.
manefesto
Пиши кастомный
kst
Добрый день!
Такой вопрос:
Есть плэйбук, который собирает определённые данные с хоста и регистрирует переменную, после чего надо выполнить некоторые таски на другом хосте, но с зарегестрированными ранее переменными, как правильно пробросить значение переменной в добавленный плэйбук?
Victor
kst
Денис
А как-то можно сделать, чтобы callback плагин работал на определенные плэйбуки или роли?
Денис
или только подсовывая разные ansible.cfg?
Dok
Dok
у меня через lineinfile сделано
сделал так
pam_limits: limit_type='-' limit_item=nofile domain='*' value=unlimited
Не знал, что прочерк обобщает hard и soft
Dok
* - не читалась, когда была в инклюженном списке with_items