
dmage
16.03.2017
15:50:16
да, и всегда неизвестен заранее

Dmitrii
16.03.2017
15:50:29
Шта

dmage
16.03.2017
15:50:31
чуть более конкретизирую

Dmitrii
16.03.2017
15:50:38
Какие то гуманитарные термины

Google

dmage
16.03.2017
15:51:08
я хочу в плейбуке прогнать айпишники определенной хостгруппы, размещенной в инвентори

Dmitrii
16.03.2017
15:54:39
Ну получаешь все ноды из группы (как источник в цикл) а обращаешься к каждому хосту через hostvars[item][...]
Внутри цикла
{% for item in groups['group_name'] %}
{{ hostvars[item]['property'] }}
{% endfor %}
Я думаю, тоже самое через set_fact можно сделать используя функциональный подход.
Но вообще это все пиздец.
Я просто делал свой with_items фильтр и херачил на питоне все что мне надо было

Bogdan (SirEdvin)
16.03.2017
16:03:56
да, и всегда неизвестен заранее
with_items нужен только массив, какой именно длинны плевать. Если сможешь запихнуть в переменную массив и передать туда - ты красавчик и проблема решена.
Массив то всегда конечен

Dmitrii
16.03.2017
16:30:40

dmage
16.03.2017
16:48:29
имелось ввиду - на момент старта плейбука неизвестно сколько будет в массиве элементов

Павел
16.03.2017
16:48:32
http://docs.ansible.com/ansible/playbooks_filters_ipaddr.html

Google

Anatoly
16.03.2017
16:49:17

Павел
16.03.2017
16:51:07
Ну и пили в таске или шаблоне
if net.ip | ipaddr('private')

Alibek
16.03.2017
17:45:25
Всем добра!
Хочу вместо:
—-
users:
- username: deploy
comment: "Deploy"
uid: 1500
groups: [ 'www-data' ]
sudoers_nopasswd: false
shell: "/bin/bash"
password: "hAsH"
ssh_key:
- "{{ lookup('file', 'keys/deploy_key.pub') }}"
делать так:
—-
users:
- "{{ lookup('file', 'users/deploy.yml') }}"
Не прокатывает....
Оно yaml не интерпретирует:
"users": [
"- username: deploy\n comment: \"Deploy\"\n uid: 1500\n groups: [ 'www-data' ]\n sudoers_nopasswd: false\n shell: \"/bin/bash\"\n password: \"hAsH\"\n ssh_key:\n - \"{{ lookup('file', 'keys/deploy.pub') }}\""
],
Как его убедить?

Anatoly
16.03.2017
17:48:44

Павел
16.03.2017
17:53:09

Anatoly
16.03.2017
17:55:08
луукап он читает из файла
а у тебя должна таска выполнятся
здесь бы инклюд сделать

Alibek
16.03.2017
18:02:51
include тоже не проходит:
"users": [
{
"include": "users/deploy.yml"
}
],
и include_vars тоже

Igor
16.03.2017
18:03:33
А тут кто-нибудь ansible-vault юзает с хранением переменных ansible_ssh/become_pass в group_vars/group файле, зашифрованного vault'ом?

Alibek
16.03.2017
18:08:53

Alexey
16.03.2017
18:11:11
Народ, я тут потихоньку осваивают Ansible, и возник вопрос:
Как получить jid от указанной команды Ansible?
ansible -s -B 3600 -P 0 -a -v "sleep 60" multi

Igor
16.03.2017
18:13:17

Alibek
16.03.2017
18:14:18
там где допустимы пароли - допустимы и ключи, а там где допустимы ключи - не нужны пароли. ;)

Serge
16.03.2017
18:16:06

Igor
16.03.2017
18:30:56
Логиниться под рутом запрещено
Поэтому только sudp

Google

Igor
16.03.2017
18:31:50
Ssh_become_pasd т.е
Вообщем у меня из group_vars зашифрованного vault'ом в inventoey ssh_become_pass не цепляется

Pavel
16.03.2017
19:45:32

Igor
16.03.2017
20:04:32
Храните

Pavel
16.03.2017
20:40:09
такая стркуктура в инвентори:
hosts
host_vars
group_vars
в файле хост имена хостов, объединенные в группы, в папках соответстующие файлы для хостов и групп

Igor
16.03.2017
20:54:47
Вот я пишу в group_vars ansible_become_pass переменную и шифрую vaultom
Вот эта переменная не полгружается при чтении inventory
Правда в inventory я ее не описывал
Может в этом проблема

Pavel
16.03.2017
20:56:00
хост для плейбука из этой группы?
в файле hosts
[group_become]
host_become
а в файле
group_vars/group_become.yml
описывать переменные
тогда при вызове плейбука для группы group_become должны подтянуться переменные
ну и если hosts лежит не в корне ансибля, надо с параметром -i указать путь к нему

Igor
16.03.2017
21:46:26
Hosts указываю с -i
И из этой группы да
У меня структура inventori/blabla/group_vars/group

Google

Igor
16.03.2017
21:47:34
Без расширения yml
Пишу по памяти, могу орфограыически ошибиться
Имя файла должно быть group_become.yml?

Pavel
16.03.2017
21:49:34
у меня так
имена файлов для самих хостов - без

Igor
16.03.2017
21:50:40
Ну т.е. группа [pgsql]
Hosts в:
inventories/production/hosts
Файл:
inventories/production/group_vars/pgsql
При вызове указываю -i invent/.../hosts --ask-vault-pass
Пароль спрашивается, но переменные не подцепляются

Admin
ERROR: S client not available

Igor
16.03.2017
21:52:39
Пароль на vault т.е.

Pavel
16.03.2017
21:53:15
ну и сам файл хоста:
inventories/production/host_vars/pgsql_host
а внутри hosts:
[pgsql]
pgsql_host

Igor
16.03.2017
21:54:15
Я в файле группы хостов описывал
Без [pgsql]
Просто ansible_become_pass: blabla

Pavel
16.03.2017
21:54:51
в плейбуке есть
- hosts: pgsql
roles:
- blabla

Igor
16.03.2017
21:55:00
Да
Есть
Попробую как вы завтра

Pavel
16.03.2017
21:56:39
если в инвенторе нет [pgsql], значит и группа не подтянетчя

Google

Igor
16.03.2017
21:56:40
Напишу о результатах)
В ивентори есть [pgsql]
И файл группы хостов называется pgsql
Правда без расширения yml в конце
А не pgsql_become.yml
Может в имени файла дело

Pavel
16.03.2017
21:58:46
может

Igor
16.03.2017
21:58:53
Ну т.е. путь к файлу зашифрованному

Pavel
16.03.2017
21:59:19

Igor
16.03.2017
21:59:27
Там чото было vault файл чототам = путь
Не ключ, а файл зашифрованнный vault'о
М

Pavel
16.03.2017
21:59:52

Igor
16.03.2017
21:59:56
Ааа

Pavel
16.03.2017
22:00:00
вместо пароля

Igor
16.03.2017
22:00:11
Я по памяти не помню точно
Завтра попробую имя задать pgsql_vault.yml
И протестить

Pavel
16.03.2017
22:00:47
vault_password_file = keys/my_pass_key
у меня так в конфиге

Igor
16.03.2017
22:01:16