Serge
roles: - role: test var1: 'outside'
Чот я сомневаюсь... Хотя, оно же типа тоже role var...
Aleksey
пацаны, допишите линтер а ?
Ivan
дефолты в этом смысле гораздо проще испортить, я с тобою согласен
Aleksey
он ведь сейчас гавно и эти ваши размышления не учитывает
Aleksey
и не ругается. а вы тут такие бестпрактисы описываете
Ivan
ansible-playbook --version ansible-playbook 2.1.1.0
Serge
дефолты в этом смысле гораздо проще испортить, я с тобою согласен
Так там просто наоборот, их не надо портить, они дефолты:)
Ivan
Я имею в виду, случайно
Aleksey
https://github.com/willthames/ansible-lint
Aleksey
вот этот вот
Ivan
он ведь сейчас гавно и эти ваши размышления не учитывает
Сейчас дотренирую нейросеть и выложи в паблик
Serge
Вообще, там не линтер нужен. Ансиблу как и js реинкарнация только поможет
Aleksey
а то я как лох {{ blabla | default(10) }}
Albert
- include_vars: "{{ ansible_os_family }}.yml"
Albert
Мало использоваемый случай
Albert
Но полезен
Ivan
Вообще, там не линтер нужен. Ансиблу как и js реинкарнация только поможет
я думаю его гибкость является не только сильной стороной :-)
Albert
совсем не мало
Ну у нас тоже нет
Ivan
Сделаешь средство пожеще, и им пользоваться невозможно будет - шаг вправо, шаг влево - нифига не работает
Albert
Просто у других мало видел
Ivan
Я шефом пользовался пару лет
Ivan
Ансибл просто великолепен
Ivan
Люди, что уходили с папета на шеф, говорили, что шеф - великолепен
Ivan
Сольта только не видел, но, видать, уже и не увижу
Serge
Ansible - нестабильное говно, но это лучшее, что у нас есть
Ivan
Ты не видел другого нестабильного говна :-)
Александр
Ivan
Да, он гораздо проще для старта, чем все остальное
Ivan
Я не хочу этого знать ;-)
Max
Да, он гораздо проще для старта, чем все остальное
не сильно проще чем солт например
Max
ну у меня проблем не возникло ни с тем ни с этим
Max
только вот в солте нихуя модулей нету
Александр
Надо его по пробовать
Max
не надо ))
Александр
не надо ))
Почему?
Max
а зачем? )))
Александр
Кругозор
Max
ну попробуй )
Max
вдруг понравится
Max
они по идеологии похожи
Александр
Тут просто кто-то хвалил его
Max
он меньше всего умеет
Max
но зато умеет быстро
Pavel
А кто как реюзает роли на своих проектах? Я щас через ansible-galaxy делаю, но неудобно что на каждую роль надо создавать отдельный репозиторий. Может есть какой-то более прямой путь?
🏳️ Phil
А еще есть фабрик. Он прикольный
Александр
есть в папка defaults/main.yml, где я могу писать переменные или даже массив с key->value есть папка vars, где я могу пистаь тоже самое, в чем смысл и разница? между папками defaults, vars.
defaults можно использовать для описания всех переменных роли и значений по умолчанию и кладется в гит. Когда тестируете новые значения или применяете на серверах, где нужно указать другие конкретные значения, то переопределяете их в vars и не портите историю в гит.
Александр
Если требуется повторяемость конфигурации на одних и тех же хостах и именно возможность повторения, то да, согласен.
maniac
у меня есть shoutcast, ансиблем не менеджу, пофиг.
zhag
Там поддержка 3 питона не появилась,
zhag
?
Vlad
в 2.2 начальная появилась: ansible localhost -m ping -e 'ansible_python_interpreter=/usr/local/bin/python3' localhost | SUCCESS => { "changed": false, "ping": "pong" }
zhag
То есть мне нужно обновиться с 2.0 до 2.2 и мне не придется устанавливать питон 2 в 16.04?
zhag
- hosts: all gather_facts: False tasks: - name: Ставим ебучий второй питон! raw: test -e /usr/bin/python || (apt -y update && apt install -y python-minimal)
Vlad
То есть мне нужно обновиться с 2.0 до 2.2 и мне не придется устанавливать питон 2 в 16.04?
Сначала нужно проверить работают-ли нужные модули под python3
zhag
Serge
Там поддержка 3 питона не появилась,
Говорят в 2.2 экспериментально
Serge
Они этим два модуля сломали, пока пилили
zhag
Медленно они как-то
Dmitry
- hosts: all gather_facts: False tasks: - name: Ставим ебучий второй питон! raw: test -e /usr/bin/python || (apt -y update && apt install -y python-minimal)
чото как-то ниочинь. лучше бы в pre_tasks и не забыть - setup: а потом tasks: начинать
Max
чото как-то ниочинь. лучше бы в pre_tasks и не забыть - setup: а потом tasks: начинать
Ток тогда в плейбуке не будут работать всякие переменные хоста
Max
Так шо лучше отдельный плейбук сделать на hosts:all с установкой пейтона
Dmitriy
Про defaults, vars, все остальные места, где можно задать variables и линтер. Нет разницы, какие конкретно места вы используете для задавания переменных. Есть разница, если все пользователи НЕ используют одни и те же места. В некотором идеале есть defaults у роли - и ещё только одно место, где вы переменные переопределяете. Если этих мест больше - вы сами себе злобный буратино
Dmitriy
Использование... многоточий... делает любую хуйню... глубокомысленной...
Dmitriy
И загадочной... непременно загадочной...
Serge
Никакой загадки. Просто много кода - следствие большого количества бизнес требований, площадок, хостов и легаси, накопившегося за время написания. А также необходимости иметь некоторую изоляцию. Поэтому, в реальной жизни используется всё: и варс, и дефолты, и переменные групп, и хостов
Serge
Просто всему своё место
Serge
А вот переменные и правда не стоит путать, а задавать каждую в каком-то одном месте. Как-то так.
Serge
This is still the best way to organize hosts and groups in Ansible for me https://speakerdeck.com/lig/efficient-ansible-host-groups-organization