Sergey
Эм... я вообще не уверен, что оно должно работать. Ибо там свой шелл и нет python/scp.
NHasper
Эм... я вообще не уверен, что оно должно работать. Ибо там свой шелл и нет python/scp.
но его используют. недавно была лекция у микротик, что работает. и еще они прилагали ссылку на https://github.com/0x566164696D/mikroansible вот сама презентация http://mum.mikrotik.com/presentations/RU16/presentation_3841_1476092869.pdf
NHasper
я правда не силен в коде и не очень понял что в гит они положили
Sergey
Судя по тому что я там вижу, это набор команд вида echo что-то¦ ssh mikrotik
Sergey
Полноценные модули вроде ping там не заработают
NHasper
Полноценные модули вроде ping там не заработают
если пинг не работает, то почему другие модули работать будут?
Sergey
если пинг не работает, то почему другие модули работать будут?
Потому что по сути это один большой набор костылей
NHasper
Потому что по сути это один большой набор костылей
а то что в гите мне нужно ставить? или тот аnsible что я поставил достаточно ?
NHasper
чтобы продолжить работу.
Sergey
Ну при беглом взгляде ничего кроме, собственно, ansible, ssh и bash там не нужно
NHasper
Ну при беглом взгляде ничего кроме, собственно, ansible, ssh и bash там не нужно
тогда попробую сейчас добавить правила фаерволла на мт, посмотрим что выйдет
Sergey
Я, правда, не понимаю почему они expect не использовали в ansible для решения своих задач
Sander
Всем привет
Sander
хотелось бы задать вопрос по ansible
Sander
есть в папка defaults/main.yml, где я могу писать переменные или даже массив с key->value есть папка vars, где я могу пистаь тоже самое, в чем смысл и разница? между папками defaults, vars.
Sander
мне кажется что vars/ папка просто приоритетней и позволит перезаписать переменные, котоыре мы указывали в defaults.
Ivan
vars редко очень нужен, когда вы вызываете зависимые роли через meta/main.yml и надо в них передать переменные какие-то
Ivan
Других применений я не знаю
Александр
мне кажется что vars/ папка просто приоритетней и позволит перезаписать переменные, котоыре мы указывали в defaults.
Эм, в доке вроде бы написан порядок, откуда что берется, честно говоря озадачили
Ivan
Да, у vars приоритет выше, чем у default
Serge
мне кажется что vars/ папка просто приоритетней и позволит перезаписать переменные, котоыре мы указывали в defaults.
Ну, как бы да. Даже больше. vars применится всегда, если запустилась роль, defaults заполнят неустановленные значения.
Ivan
Но для какой-то конкретной роли нет смысла использовать default и vars
Serge
Ну и да, там вон говорят дока есть.
Serge
Но для какой-то конкретной роли нет смысла использовать default и vars
Для какой-то, возможно, и есть. Разный смысл же
Ivan
?
Serge
У меня бывает, что и то и то есть
Ivan
А зачем?
Serge
Вот ровно за тем
Serge
Два одной и той же переменной смысла правда нет.
Serge
Если есть в vars, то из defaults уже точно не заполнится
Serge
Но иногда что-то надо и в defaults положить
Ivan
У меня другой вопрос, зачем в vars класть?
Serge
defaults Чаще всего для обеспечения обратной совместимости.
Ivan
Ну, кстати, да
Serge
У меня другой вопрос, зачем в vars класть?
Как так зачем? Чтобы переменную установить. Рассчитать специфичную несколько раз повторяемую в роли переменную, которая вычисляется из контекста
Ivan
а почему в defaults ее неположить?
Ivan
Они отличаются только приоритетом
Serge
а почему в defaults ее неположить?
Это бы подразумевало, что есть шанс получить её из другого места. Всему своё место должно быть
Serge
Они отличаются только приоритетом
Только между ними внешний контекст
Serge
Что будет, если в контексте уже установлена такая переменная раньше, в другой роли?
Ivan
Ну, ты можешь поставить переменную, которая выше vars по приоритету
Ivan
И тоже все сломать
Ivan
:-)
Serge
vars перезапишет значения, если они раньше выставлены были
Ivan
нет
Serge
Иди доку читай и пробуй
Ivan
http://docs.ansible.com/ansible/playbooks_variables.html#variable-precedence-where-should-i-put-a-variable
Ivan
Но да, сложно вызвать случайно :-)
Serge
Консоль только
Serge
Ну и про коннекшен
Serge
Таким образом нет такого места в плейбуке, которое круче vars
Vlad
исторически переменные роли хранились в vars. В версии 1.3 добавили defaults. С тех пор и осталось два каталога с одинаковой функцией: http://devdocs.io/ansible/playbooks_roles
Vlad
согласен, не одинаковая - приоритет разный
Serge
согласен, не одинаковая - приоритет разный
Они просто на двух концах пищевой цепи
Serge
Грубо :-)
Нет. Честно
Sander
😎
Ivan
Нет. Честно
Ты подрузамеваешь, что я не читал доку, но я ее читал и знаю, что есть переменные, приоритет которых выше, чем role vars
Ivan
role and include vars block vars (only for tasks in block) task vars (only for the task) extra vars (always win precedence)
Serge
Блок и таск внутри роли
Serge
Да, консоль, но это вне плейбука
Serge
Таким образом снаружи роли внутри плейбука ничего такого нет.
Serge
Те ничто во внешнем yml не может перетереть vars
Serge
extra vars это вообще жесткий хак, который очень много всего может сломать, если им такие переменные выставлять:)
Serge
Его приоритет собственно и нужен чтобы внедриться внутрь какой-нибудь роли и нахачить поведение
Ivan
Детей ужином кормлю, извини
Serge
А мои гуляют
Ivan
roles: - role: test var1: 'outside'
Ivan
Вот так можно, но явно надо вызвать
Ivan
cat roles/test/tasks/main.yml - name: debug debug: var: var1
Ivan
cat roles/test/vars/main.yml var1: inside
Ivan
TASK [test : debug] ************************************************************ ok: [localhost] => { "var1": "outside" }