
Ivan
04.12.2016
16:24:39
Но для какой-то конкретной роли нет смысла использовать default и vars

Serge
04.12.2016
16:24:48
Ну и да, там вон говорят дока есть.

Ivan
04.12.2016
16:25:31
?

Google

Serge
04.12.2016
16:25:33
У меня бывает, что и то и то есть

Ivan
04.12.2016
16:25:38
А зачем?

Serge
04.12.2016
16:25:56
Вот ровно за тем
Два одной и той же переменной смысла правда нет.
Если есть в vars, то из defaults уже точно не заполнится
Но иногда что-то надо и в defaults положить

Ivan
04.12.2016
16:26:47
У меня другой вопрос, зачем в vars класть?

Serge
04.12.2016
16:27:07
defaults Чаще всего для обеспечения обратной совместимости.

Ivan
04.12.2016
16:27:34
Ну, кстати, да

Serge
04.12.2016
16:28:09

Ivan
04.12.2016
16:32:23
а почему в defaults ее неположить?
Они отличаются только приоритетом

Serge
04.12.2016
16:33:36

Google

Serge
04.12.2016
16:33:49

Ivan
04.12.2016
16:34:21

Serge
04.12.2016
16:34:58
Что будет, если в контексте уже установлена такая переменная раньше, в другой роли?

Ivan
04.12.2016
16:36:30
Ну, ты можешь поставить переменную, которая выше vars по приоритету
И тоже все сломать

Serge
04.12.2016
16:36:46

Ivan
04.12.2016
16:37:04
:-)

Serge
04.12.2016
16:37:19
vars перезапишет значения, если они раньше выставлены были

Ivan
04.12.2016
16:37:24
нет

Serge
04.12.2016
16:37:48
Иди доку читай и пробуй

Ivan
04.12.2016
16:38:20
http://docs.ansible.com/ansible/playbooks_variables.html#variable-precedence-where-should-i-put-a-variable
Но да, сложно вызвать случайно :-)

Serge
04.12.2016
16:39:32
Консоль только
Ну и про коннекшен
Таким образом нет такого места в плейбуке, которое круче vars

Vlad
04.12.2016
16:40:43
исторически переменные роли хранились в vars. В версии 1.3 добавили defaults. С тех пор и осталось два каталога с одинаковой функцией: http://devdocs.io/ansible/playbooks_roles

Serge
04.12.2016
16:41:02

Vlad
04.12.2016
16:41:44
согласен, не одинаковая - приоритет разный

Serge
04.12.2016
16:43:15

Google

Serge
04.12.2016
16:43:30

Sander
04.12.2016
16:44:13
?

Ivan
04.12.2016
16:46:37
Нет. Честно
Ты подрузамеваешь, что я не читал доку, но я ее читал и знаю, что есть переменные, приоритет которых выше, чем role vars

Serge
04.12.2016
16:46:50

Ivan
04.12.2016
16:47:17
role and include vars
block vars (only for tasks in block)
task vars (only for the task)
extra vars (always win precedence)

Serge
04.12.2016
16:47:35
Блок и таск внутри роли
Да, консоль, но это вне плейбука
Таким образом снаружи роли внутри плейбука ничего такого нет.
Те ничто во внешнем yml не может перетереть vars
extra vars это вообще жесткий хак, который очень много всего может сломать, если им такие переменные выставлять:)
Его приоритет собственно и нужен чтобы внедриться внутрь какой-нибудь роли и нахачить поведение

Serge
04.12.2016
16:51:30

Ivan
04.12.2016
16:54:35
Детей ужином кормлю, извини

Serge
04.12.2016
16:55:15
А мои гуляют

Ivan
04.12.2016
16:58:41
roles:
- role: test
var1: 'outside'
Вот так можно, но явно надо вызвать
cat roles/test/tasks/main.yml
- name: debug
debug:
var: var1
cat roles/test/vars/main.yml
var1: inside
TASK [test : debug] ************************************************************
ok: [localhost] => {
"var1": "outside"
}

Google

Serge
04.12.2016
17:03:01

Алексей
04.12.2016
17:03:30
пацаны, допишите линтер а ?

Serge
04.12.2016
17:03:41

Ivan
04.12.2016
17:03:44
дефолты в этом смысле гораздо проще испортить, я с тобою согласен

Алексей
04.12.2016
17:03:47
он ведь сейчас гавно и эти ваши размышления не учитывает

Ivan
04.12.2016
17:03:57

Алексей
04.12.2016
17:04:01
и не ругается. а вы тут такие бестпрактисы описываете

Ivan
04.12.2016
17:04:10
ansible-playbook --version
ansible-playbook 2.1.1.0

Serge
04.12.2016
17:04:11

Admin
ERROR: S client not available

Ivan
04.12.2016
17:04:26
Я имею в виду, случайно

Алексей
04.12.2016
17:04:37
https://github.com/willthames/ansible-lint
вот этот вот

Ivan
04.12.2016
17:04:55

Serge
04.12.2016
17:05:13
Вообще, там не линтер нужен. Ансиблу как и js реинкарнация только поможет

Алексей
04.12.2016
17:05:20
а то я как лох {{ blabla | default(10) }}

Albert
04.12.2016
17:05:21
- include_vars: "{{ ansible_os_family }}.yml"
Мало использоваемый случай
Но полезен

Google

Ivan
04.12.2016
17:06:06

Алексей
04.12.2016
17:06:08

Albert
04.12.2016
17:06:30

Ivan
04.12.2016
17:06:30
Сделаешь средство пожеще, и им пользоваться невозможно будет - шаг вправо, шаг влево - нифига не работает

Albert
04.12.2016
17:06:37
Просто у других мало видел

Ivan
04.12.2016
17:07:32
Я шефом пользовался пару лет
Ансибл просто великолепен
Люди, что уходили с папета на шеф, говорили, что шеф - великолепен
Сольта только не видел, но, видать, уже и не увижу

Алексей
04.12.2016
17:08:13

Serge
04.12.2016
17:09:42
Ansible - нестабильное говно, но это лучшее, что у нас есть

Ivan
04.12.2016
17:10:02
Ты не видел другого нестабильного говна :-)

Александр
04.12.2016
17:10:07

Ivan
04.12.2016
17:10:22
Да, он гораздо проще для старта, чем все остальное

Serge
04.12.2016
17:10:28

Ivan
04.12.2016
17:10:44
Я не хочу этого знать ;-)

Albert
04.12.2016
17:10:56

Max
04.12.2016
17:26:28

Александр
04.12.2016
17:27:57

Max
04.12.2016
17:28:12
ну у меня проблем не возникло ни с тем ни с этим
только вот в солте нихуя модулей нету