Aleksey
хм, а облако-хостер кто ?
V.
ДО
Aleksey
по идее надо скрипт динамик инвентори брать или свой писать, а не генерить статик по терраформ конфигу
Aleksey
ну для до есть прям готовый встроенный
V.
в терраформ?
Aleksey
https://github.com/ansible/ansible/blob/devel/contrib/inventory/digital_ocean.py
https://github.com/ansible/ansible/blob/devel/contrib/inventory/digital_ocean.ini
Aleksey
вот, пишешь ини конфиг чтобы ансибл подключался к апи ДО, и всё, будет оттуда брать хосты развернутые
V.
ок, спасибо, посмотрю
Aleksey
по сути только апи токен нужен
Aleksey
а проверить выдачу вот так, что ДО отдает - ansible-inventory -i <inventory-dir> --graph
где в inventory-dir лежит digital_ocean.ini с токеном апи
V.
👍
inqfen
inqfen
Там и все переменные
Ruslan
Лучше loop
Stefan
парни, подскажите, пожалуйста
не нахожу в доке инфу нужную, можно на этапе запуска плейбука делать лимит на список переменных? вычитал только о extra-vars, но это не подходит, так как переменная не динамичная
vars:
kubectl: foo
stefan_work: bar
Alex
в каком смысле лимит?
Stefan
в каком смысле лимит?
ну например я запускаю плейбук и хочу чтоб содержимое только kubectl было применено на удаленном хосте
типо вот как можно лимитировать хосты на которых нужно прогнать плейбук, также можно сделать и с переменными?
Timur
Timur
Откуда у вас берутся переменные?
Stefan
Stefan
в плейбуке объявлены
Stefan
и я хочу добавить на хост только один ключ юзера из списка
Stefan
а не всех
Stefan
и вот интересует можно на этапе запуска лимитировать переменные?
Dmitriy
а сделать роли "добавление пользователя Вася" "добавление пользователя Петя" а потом в плейбуке комментировать лишнее ?
Stefan
Dmitriy
тогда думаю можно попробовать тэгами(вот например описание https://stackoverflow.com/questions/23945201/how-to-run-only-one-task-in-ansible-playbook)
Alexander
Подскажите, как в плейбуке обратиться к переменной, содержащей имя юзера, если юзер передается через --user?
{{user}} прокатит?
Alexander
Нужно этого же юзера добавить в группу
fs
Привет всем, кто подскажет, есть два контейнера, база и аппликейшин, при старте базы к ней линкуется app, все работает до тех пор пока контейнер с базой не пересоздается, тогда я вижу что то в этом роде:
fatal: [testSrv]: FAILED! => {"changed": false, "msg": "Error starting container 8f0477806f25b70b7229a8a0b9b4d768399c1415b8022f3c2e197491d15afb27: 500 Server Error: Internal Server Error (\"{\"message\":\"Cannot link to a non running container: /cont-db AS /cont/db\"}\")"}
у меня подозрение что дело в том, что после пересозданя контейнера с базой меняется его id, а так как контейнер с app просто перезапускается, он ищет базу по старому id (но это не точно) есть какое то решение этой ситуации (например закрепить как то id если дело в этом)
Кст, если кому то интересно я линукую по имени
Cannot link to a non running container - обманывает, контейнер запущен
просто скорее всего он ищет его не по имени а по id, других вариантов не вижу
fs
Dmitriy
Dmitriy
Artem
Всем привет! Сталкивался кто-нибудь с таким
[WARNING]: sftp transfer mechanism failed on [10.70.252.3]. Use ANSIBLE_DEBUG=1 to see detailed information
<10.70.252.3> SSH: EXEC scp -vvv -C -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=10 -o ControlPath=/root/.ansible/cp/3cda94a3ea /root/.ansible/tmp/ansible-local-3534IYCdeb/tmpHRSt3V '[10.70.252.3]:/.ansible/tmp/ansible-tmp-1568965920.0-66734504888053/AnsiballZ_setup.py'
[WARNING]: scp transfer mechanism failed on [10.70.252.3]. Use ANSIBLE_DEBUG=1 to see detailed information
<10.70.252.3> ESTABLISH SSH CONNECTION FOR USER: None
<10.70.252.3> SSH: EXEC ssh -vvv -C -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=10 -o ControlPath=/root/.ansible/cp/3cda94a3ea 10.70.252.3 'dd of=/.ansible/tmp/ansible-tmp-1568965920.0-66734504888053/AnsiballZ_setup.py bs=65536'
fatal: [10.70.252.3]: UNREACHABLE! => {
"changed": false,
"msg": "SSH Error: data could not be sent to remote host \"10.70.252.3\". Make sure this host can be reached over ssh",
"unreachable": true
Пытаюсь залить файл на ESXi хост в сторедж, из под самого ансибл сервера через scp все работает, через модуль отказывается
Stefan
хотел чуть динамичней(
Timur
Timur
Какая разница, куда добавлять переменную - в плейбуку или в командную строку?
Timur
Объём работы одинаковый
Timur
Stefan
Timur
Stefan
похоже что такой возможности нет у ансибла
Aleksey
Мне кажется можно сделать файлик с переменными например kubectl.yml, рядом пустой файл empty.yml, написать в тасках include_vars: "{{ condition }}.yml", при этом по дефолту сделать condition: empty. А когда нужно вызвать таск с подключением переменных из файлика kubectl.yml, запускать плейбук с опцией -e 'condition=jkubectl'.
Timur
Stefan
Timur
Если вам нужен разный набор переменных при запусках - просто давайте ансиблу разный набор переменных
Timur
Через vars_files, extra_vars и т.п. Куча способов есть
Stefan
Alexander
ansible_ssh_user
Подошло, спасибо.
Только в поле name, где описание таска, не подставляет
Alexander
Не могу составить таск для приватного реестра докера
- name: pull
docker_image:
name: some_image
repository: private.registry.ru:1050/dir/
tag: v1.0
source: pull
Alexander
Должно быть docker pull private.registry.ru:1050/dir/some_image:v1.0
Подскажите что не так сделал
George
эм
George
name: dir/some_image
repository: private.registry.ru:1050
George
а почему не так?
Alexander
Я впервые с докером в ансибле работаю)
George
а доку почитать?
George
https://docs.ansible.com/ansible/latest/modules/docker_image_module.html
Alexander
Вот по ней и составлял
Alexander
Перечитаю еще раз
George
- name: pull
docker_image:
name: dir/some_image
repository: private.registry.ru:1050/dir/
tag: v1.0
source: pull
George
попробуй еще такой варик
George
а еще лучше - расскажи что хочешь
George
т.к. When building an image downloads any updates to the FROM image in Dockerfile.
Please use build.pull instead. This option will be removed in Ansible 2.12.
The default is currently yes. This will change to no in Ansible 2.12.
George
это к pull
George
или вообще
George
- name: pull
docker_image:
name: private.registry.ru:1050/dir/some_image:v1.0
source: pull
George
такое ощущение, что ты какой-то оверинжиниринг сделал
George
просто с пушем там история такая, что он умеет перетегировать и запушить
George
https://t.me/pro_ansible/112276👆
@a_aversus
Alexander
Alexander
Вот поэтому спросил. Я по всякому переписывал репы