Asten
эм.. ну так я этим и занимаюсь. часть агентов крутятся в кубере, другая часть деплоится ансиблом на хосты. это уже давно так. сейчас добавились новые хосты, из другого зоопарка, на них распространяются немного другие принципы, поэтому допиливаю плэйбуки
Из личного опыта: убедись что все нужные тебе флаги поддерживает модуль ансибла для iptables. Я вот не смог нужное мне правило составить и в итоге рендерю через template правила, потом хендлером делаю iptables-restore.
Anton
всем привет. подскажите по proxy в playbook https://github.com/solval/ansible-role-gitlab_runner/issues/2 есть playbook https://github.com/solval/ansible-role-gitlab_runner
Anton
environment dont work cat gitlab-runner.yml - hosts: gitlab-runner become: yes roles: - solval.gitlab_runner environment: http_proxy: http://192.168.88.249:3128 https_proxy: http://192.168.88.249:3128 If rewrite that work - name: RHEL Install GitLab GPG rpm_key: state: present key: https://packages.gitlab.com/gpg.key environment: http_proxy: http://192.168.88.249:3128 https_proxy: http://192.168.88.249:3128 become: yes
Anton
если прямо в таске указать environment с прокси - то через прокси начинает работать - а если указать environment в gitlab-runner.yml - то не работает
NS 🇷🇺
Коллеги, кто может подсказать group_vars/folder/file работает, переменные подтягиваются а вот host_vars/folder/host не работает... куда копать в этом случае? по докам чет не могу найти поддерживает ли host_vars вложенные папки
manefesto
Я так понял ты хочешь инвентори в папке host_vars ?
NS 🇷🇺
нет, переменные хоста но во вложенной папке... просто у меня несколько площадок и в одну кучу не хочу кидать все host_vars ибо это будет каша
Victor
А как в инвентори?
Чем тебя yaml в инвентори не устроил?
Vladislav 👻
Чем тебя yaml в инвентори не устроил?
я не понял как это приписать к хосту и как это работает, можно примеры/документацию?
Victor
https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html https://docs.ansible.com/ansible/latest/user_guide/playbooks_best_practices.html
Vladislav 👻
да где там?
Vladislav 👻
на первой ссылке даже role слово не ищется
Vladislav 👻
там везде yml
Vladislav 👻
вопрос: каким образом к инвентори привязать роль в обход плейбука
Victor
ну тык в нем и делаешь переменную и обрабатывай ее как хочешь
Vladislav 👻
бле
Vladislav 👻
для первого можно регистрировать факты, для второго лучше добавить в инвентори какие роли у хоста/группы или по наличию настроек ориентирвоаться
Victor
ну точнее у тебя есть инвентори, у тебя есть плейбук, берешь роли из инвентори и делаешь плейбук который инклудит эти роли
Victor
например
Vladislav 👻
как?
Vladislav 👻
пример?
Victor
сек
Victor
м, нуок, напрямую из инвентори динамически инклудить плейбуки чет не получается, но раньше вроде работало. Энивей включение плейбука по условию работает. $ cat ./conditional.yml #!/usr/bin/env ansible-playbook - include: "role_b.yml" when: '"a" in roles' ----- $ cat ./inventory.yml test_group: hosts: localhost: vars: roles: - a - b ----- $ cat ./role_a.yml - hosts: all connection: local tasks: - debug: msg: role A ----- $ cat ./role_b.yml - hosts: all connection: local tasks: - debug: msg: role B
Vladislav 👻
это не то
Vladislav 👻
и в ролях плейбук
Vladislav 👻
у роли не может быть хоста, он есть у плейбука
Victor
ты прогоняешь плейбук по хосту. Плейбук загружает переменные хоста (факты) В переменных можно указать какие роли у этого хостав вообще есть. Инклудить плейбуки в зависимости от переменных
Vladislav 👻
Это совсем другое
Vladislav 👻
Ты делаешь зависимость от переменных
Vladislav 👻
Чуть позже покажу, как я сделал зависимость хоста и роли
Vladislav 👻
Vladislav 👻
вот так я решил этот вопрос
Vadim
почему бы не сделать hosts: aitflow-celery:&rabbitmq?
Vladislav 👻
интересно, я не знаю, что это и как работает, где почитать можно?
Vadim
https://docs.ansible.com/ansible/2.7/user_guide/intro_patterns.html
Vladislav 👻
спасибо, посмотрю
Vladislav 👻
беглый взгляд показывает, что это то что нужно 👍
Navern
Всем привет снова) интересный вопрос. Можно ли внутри плейбука с serial сделать параллельную таску на всех хостах(с помощью асинка например) Пока то что тестил не получалось) выносить в отдельный плей не очень хочется одну таску(
Tadeusz
разбаньте плиз @ivanzor
Tadeusz
чувство что его случайно забанили))
Vladislav 👻
https://docs.ansible.com/ansible/2.7/user_guide/intro_patterns.html
Блин, это даже лучше и удобнее, чем через when 👍 Надо заставить себя нормально прочитать всю документацию, но что-то времени все никак не найду 🙁
Timur
Тогда она выполнится на указанной группе хостов параллельно
Navern
Красиво
Navern
И run_once видисо
Timur
Ну, это по желанию :)
Vadik
Всем пример у кого то есть пример ansible-playbook для запуска lxc container Хотябы пример.... очень нужно
Sortafreel
Если в Ansible один адрес указан в hosts в нескольких группах, то подтягиваются [group:vars] первой группы с этим адресом, а не [group:vars] группы, которая исполняется плейбуком. Как этого избежать?
Andrey
[group_name] 1.1.1.1 - это)
Я бы на имя заменил...
Sortafreel
Я бы на имя заменил...
не понял. можно подробнее? я учусь)
Sortafreel
Я бы на имя заменил...
схема: [group_name_x] 1.1.1.1 [group_name_x:vars] main_user = xxx [group_name] 1.1.1.1 [group_name_y:vars] main_user = yyy Так вот, даже если в playbook указано hosts: group_name_y, то переменная main_user тянется из group_name_x, потому что там этот адрес встречается первее. Мне непонятно почему. Как избежать?)
Vladislav 👻
делить в плейбуке по группе хостов
Vladislav 👻
либо вы хотите что-то странное получить, из серии первый проход значения X, а второй проход значения Y
Andrey
ого. понял, попробую. а с чем связано вообще?)
Как минимум с тем, что у хоста адреса могут меняться или адреса могут быть не уникальными в отличие от имен хостов в fqdn. Если у вас в плейбуке группы разделены, а у других такой проблемы не наблюдается, то вариантов два или ip адреса вместо имен или баг в конкретной версии ansible.
Sortafreel
понял, имена)
Sergey
Обычно все подтягиваются. Логи/плейбуки в студию (на пастебин то есть)
Anton
подскажите рабочий playbook для настройки etcd кластера. сколько не запускаю playbook - то одна ошибка, то другая
Vlad
Вот это стопудово работает: https://github.com/kubernetes-incubator/kubespray/tree/master/roles/etcd
Mikhail
kubernetes-the-hard-way/07-bootstrapping-etcd.md at master · kelseyhightower/kubernetes-the-hard-way · GitHub https://github.com/kelseyhightower/kubernetes-the-hard-way/blob/master/docs/07-bootstrapping-etcd.md
Denis
Там же по большому счету нужно просто настроить unit файл
Под этот мануал где то был плейбук под настроку etcd
Mikhail
так это ручная настройка.
Ну там два действия надо сделать, напиши плейбук сам
Denis
Соответсвенно inventory: kubernetes_controller] kubernetes-master-0 kubernetes-master-1 kubernetes-master-2 [etcd] kubernetes-master-0 kubernetes-master-1 kubernetes-master-2 [kubernetes_worker] kubernetes-worker-0 kubernetes-worker-1 kubernetes-worker-2
Anton
Спасибо завтра протестирую.
Nklya
в архивчике здесь код еще не выкладывали ;(
Nklya
Vadim
для etcd 1 плейбук чтоб установить и 10+ чтобы он продолжал работать :(
GithubReleases
ansible/ansible was tagged: v2.7.2 Link: https://github.com/ansible/ansible/releases/tag/v2.7.2 Release notes: New release v2.7.2
GithubReleases
ansible/ansible was tagged: v2.6.8 Link: https://github.com/ansible/ansible/releases/tag/v2.6.8 Release notes: New release v2.6.8
Anton
TASK [etcd : Copy certs etcd] ******************************************************************************************************************* failed: [patroni3] (item=ca.pem) => { "changed": false, "item": "ca.pem" } MSG: Source /root/ca.pem not found похоже нужно сертификаты отдельно геренить