Asten
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
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 слово не ищется
Victor
Vladislav 👻
там везде yml
Vladislav 👻
вопрос: каким образом к инвентори привязать роль в обход плейбука
Victor
ну тык в нем и делаешь переменную и обрабатывай ее как хочешь
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
чувство что его случайно забанили))
Timur
Timur
Тогда она выполнится на указанной группе хостов параллельно
Navern
Красиво
Navern
И run_once видисо
Timur
Ну, это по желанию :)
Vadik
Всем пример у кого то есть пример ansible-playbook для запуска lxc container
Хотябы пример.... очень нужно
Stefan
Sortafreel
Если в Ansible один адрес указан в hosts в нескольких группах, то подтягиваются [group:vars] первой группы с этим адресом, а не [group:vars] группы, которая исполняется плейбуком. Как этого избежать?
Andrey
Sortafreel
Andrey
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
Sortafreel
Andrey
ого. понял, попробую. а с чем связано вообще?)
Как минимум с тем, что у хоста адреса могут меняться или адреса могут быть не уникальными в отличие от имен хостов в fqdn. Если у вас в плейбуке группы разделены, а у других такой проблемы не наблюдается, то вариантов два или ip адреса вместо имен или баг в конкретной версии ansible.
Sortafreel
понял, имена)
Sergey
Обычно все подтягиваются. Логи/плейбуки в студию (на пастебин то есть)
Anton
подскажите рабочий playbook для настройки etcd кластера. сколько не запускаю playbook - то одна ошибка, то другая
Vlad
Вот это стопудово работает: https://github.com/kubernetes-incubator/kubespray/tree/master/roles/etcd
Mikhail
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
Anton
Denis
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
похоже нужно сертификаты отдельно геренить
Denis