Андрей
судя по всему придется так :)
Viktor
возможно, через Google Drive API можно
Pavel
у Google Drive вроде ж WebDAV был, или нет?
bebebe
привет, подскажиет как в ansible взять файл с приватного google drive ?
https://github.com/mitcdh/docker-google-drive-ocamlfuse посмотрите в эту сторону запустится докер, в него примаунтиться google-drive, а в хостовую систему будет выставлен volume, из которого можно сделать copy нужного вам файла
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
в общем много там чего
Sergey
inventory_hostname, кажется
он пробросится через переменную?
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
вот есть инвентори в инвентори группа в группе два хоста надо чтобы оба хоста участвовали в конфиге вме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 вы проходите по ней и достаете значения хостов, что вам еще нужно в вашей задаче?
Aion
ничего О _о я же говорил что мне сойдет вариант
приношу свои извинения, вскольз прочитав подумал, что вы продолжаете искать решение.
A
Всем привет! Не поддерживает пример динамического инвентаря из бд.
manefesto
Пиши кастомный
kst
Добрый день! Такой вопрос: Есть плэйбук, который собирает определённые данные с хоста и регистрирует переменную, после чего надо выполнить некоторые таски на другом хосте, но с зарегестрированными ранее переменными, как правильно пробросить значение переменной в добавленный плэйбук?
Денис
А как-то можно сделать, чтобы callback плагин работал на определенные плэйбуки или роли?
Денис
или только подсовывая разные ansible.cfg?
Dok
ну так делаешь apt: name: rabbit register: apt_install - name: keys ... ... when: apt_install.changed
он в любом случае выполняет первый apt и блоке ничего не трогает
Dok
у меня через lineinfile сделано
сделал так pam_limits: limit_type='-' limit_item=nofile domain='*' value=unlimited Не знал, что прочерк обобщает hard и soft
Dok
* - не читалась, когда была в инклюженном списке with_items