Grek 🇺🇦
ага, но тут не понятно что надо - только описаны грабли на которые наступил
Григорий
Привет можно использовать {{path |basename }} чтобы получить файл а можно как-то отрубить разрешение этого файла, получить имя до точки?
Григорий
ну у меня точно одна
Valiy
To get the root and extension of a path or filename (new in version 2.0): # with path == 'nginx.conf' the return would be ('nginx', '.conf') {{ path | splitext }}
Grek 🇺🇦
Ребята, помогите понять где я туплю. Надо скопировать папку с ансибл контрол машины на удаленный хост. Хочу использовать модуль synchronize, чтоб копировало быстрее. Хостс: https://pastebin.com/rggfZHAx Плейбук: https://pastebin.com/i0aYpFwZ Ошибка: https://pastebin.com/DkHyk1AS почему пытается установиться конекшн на удаленный хост с локальным пользователем? <192.168.12.233> ESTABLISH LOCAL CONNECTION FOR USER: dev и как правильно скопировать с контрол хоста на удаленный, если у них разные пользователи?
UglyKoyote
set_remote_user boolean
UglyKoyote
доку смотрел по модулю? https://docs.ansible.com/ansible/latest/modules/synchronize_module.html
UglyKoyote
вроде бы похоже на то, что тебе надо
Grek 🇺🇦
смотрел. указывал, но тогда вместо dev пробует подключиться с root, хотя должен с user
Grek 🇺🇦
блин, по ходу такое когда удаленный хост в ubuntu 20.04. Проверил с 18.04 - все отрабатывает
Grek 🇺🇦
почему-то игнорируется become_user и ansible_become_password на удаленном хосте. при этом пользователь помет повышать привилегии через sudo su... ничего не понимаю
UglyKoyote
логи не смотрел на удаленной машине?
UglyKoyote
может настройки локальные. я с бубунтой не особо дружу, даже предположений здравых нет.
UglyKoyote
ну и попробуй запустить c -vvv, может что в ошибках вменяемое будет
Grek 🇺🇦
из вменяемого в логах Sep 10 11:45:31 device sudo: pam_unix(sudo:auth): Couldn't open /etc/securetty: No such file or directory Sep 10 11:45:31 device sudo: pam_unix(sudo:auth): conversation failed Sep 10 11:45:31 device sudo: pam_unix(sudo:auth): auth could not identify password for [user]
Grek 🇺🇦
обходной путь дать безпарольное судо для пользователя, но чет как-то...
AlexD
А, это баг Ubuntu 20.04 - https://bugs.launchpad.net/ubuntu/+source/shadow/+bug/1872443
Grek 🇺🇦
так отож(
AlexD
так отож(
я так понимаю решение - взять файл из 19.04 https://askubuntu.com/questions/1239503/20-04-etc-securetty-no-such-file-or-directory
Отделение Bereke Bank
решение - юзать центос
Отделение Bereke Bank
Grek 🇺🇦
в цнетоси убирают поддержку FC, а у нас как раз продукт вокруг него крутится, и поэтому решили переходить на 20 убунту
Anna
Кто-нибудь работает с yarn? модуль yarn позволяет только установить пакеты. А такое yarn clean, yarn build, yarn typeorm migration: run только через shell?
Grek 🇺🇦
видимо да
Grek 🇺🇦
может настройки локальные. я с бубунтой не особо дружу, даже предположений здравых нет.
спасибо кстати за надовку на логи. так запарился что совсем про них забыл)
Ivan
Народ, а вот у меня в плейбуке есть несколько ролей. они понятное дело выполняются поочередно а как то можно распараллелить это дело?
Lamobot
Народ, а вот у меня в плейбуке есть несколько ролей. они понятное дело выполняются поочередно а как то можно распараллелить это дело?
Сделайте на каждую роль по плейбуку и запускайте все их в параллель средствами ОС. + https://t.me/pro_ansible/158741
Отделение Bereke Bank
ага потом столкнутся 2 yum-а и один скажет мяу
Lamobot
ага потом столкнутся 2 yum-а и один скажет мяу
Никто не говорит, что этот способ без недостатков :)
George
Причём не только с точки зрения юма
Vadim "Oxyd"
ага потом столкнутся 2 yum-а и один скажет мяу
Ну можно локфайлы чекать, на отсутсвие. Все не реентерабельные пакетники локфайлы во время работы создают, насколько я в курсе.
Ivan
Сделайте на каждую роль по плейбуку и запускайте все их в параллель средствами ОС. + https://t.me/pro_ansible/158741
в статье все - ваще не мой вариант :( а с разделить - тоже не все однозначно
Lamobot
в статье все - ваще не мой вариант :( а с разделить - тоже не все однозначно
Тогда опишите все ограничения сразу. Можно ещё вариантов накидать, один хуже другого :)
Lamobot
Mitogen попробовать. И/или переписать 3 роли в одну большую, чтобы с yum не было проблем :)
Ivan
Тогда опишите все ограничения сразу. Можно ещё вариантов накидать, один хуже другого :)
у меня плейбук, в нем подряд несколько ролей. в основном там перекладывание списков и дергания по апи различных сервисов, плюс запрос сертификата выполняется минут 40 вот мне б распараллелить его после первых двух тасок, чтоб вместе шли запрос серта и остальные операции
Vadim "Oxyd"
Mitogen попробовать. И/или переписать 3 роли в одну большую, чтобы с yum не было проблем :)
А как ансибл относится к тому, что один и тот-же хост в инвентори, один и тот-же айпишник под разными именами прописать? Он поймёт что это один и тот-же хост или это для него будут разные хосты?
Sem
Разные хосты
Vadim "Oxyd"
Разные хосты
Тогда, по идее, можно роли штатно асинхронно накостылить, в этом кейсе.
Vadim "Oxyd"
Раскидать "по разным" хостам, которые один и тот-же хост...
Ivan
Тогда, по идее, можно роли штатно асинхронно накостылить, в этом кейсе.
Ой не. Все один хрен запускается в гитлабе. Я переписал плейбук в три разных, чтоб на одном стейдже пайплайна запускались сразу три таски Надо только как то победить зависимость небольшую
daishi
Ребят, нужна помощь у работе ansible. Используя модуль systemd, и указании в sudoers NOPASSWD: /usr/bin/systemctl stop virtuoso труба падает с ошибкой missing sudo password. выдать NOPASSWD: ALL запрещено. может кто сталкивался с таким (
Grek 🇺🇦
Ансибл запускает все через python, а не на прямую через systemctl
Grek 🇺🇦
Дайте права на python
daishi
Права судо? Думаю вряд-ли дадут, так как выходит нехилая дырка в правах
Я и твой кот
Ребят, нужна помощь у работе ansible. Используя модуль systemd, и указании в sudoers NOPASSWD: /usr/bin/systemctl stop virtuoso труба падает с ошибкой missing sudo password. выдать NOPASSWD: ALL запрещено. может кто сталкивался с таким (
Включите verbose логгирование, и посмотрите, какую именно команду запускает Ansible под sudo. Скорее всего /bin/sh с параметрами, или вообще python. Ввиду того, что права на них никто вам скорее всего не даст, надо думать над костылём.
John
Парни, помогите найти лог callback плагина в AWX. установка в докер-контейнерах, при попытке запустить получаю {"msg":"No matching host could be found!"}
John
сам хост который дергает callback естественно есть в инвентаре
Yusif
Привет Как сделать так, чтобы все таски под tasks: выполнялись только на определенных машинах, например где ОС: Убунту. Передавать каждый раз when: ansible_facts['distribution'] == "Ubuntu" очень неудобно
Elenhil
?
Fire
можно вместо sudo разрешить через policykit управлять отдельными сервисами конкретному пользователю
Через polkit можно выдать права только на экшены, которые в polkit зарегистрированы. На рандомное приложение прав не выдать.
Pavluwa
Через polkit можно выдать права только на экшены, которые в polkit зарегистрированы. На рандомное приложение прав не выдать.
дык можно экшен забацать под конкретный сервис https://wiki.archlinux.org/index.php/Polkit#Allow_management_of_individual_systemd_units_by_regular_users
Pavluwa
правда сам полкит должен быть версии 0.106 или выше, если я правильно помню
David
подскажите плз где лежат эти модули, что он не может их найти ? с остальными модулями(ping,copy etc...) всё ок "msg": "The module authorized_keys was not found in configured module paths"
Alex
include_tasks: ./ubuntu.yml when: ansible_facts['distribution'] == "Ubuntu"
- include_tasks: "{{ ansible_facts['distribution'] }}.yml" как вариант если есть таски для каждого дистра
Yusif
- include_tasks: "{{ ansible_facts['distribution'] }}.yml" как вариант если есть таски для каждого дистра
Ансибл тогда получит из gather_facts значение ansible_facts['distribution'] и подставит его под название файла, который надо импортировать? Если это opensuse, то будет include_tasks: opensuse.yml ?
Yusif
да
Шикарно!
Elenhil
надо чтобы модуль или был в одной из этих папок (сам питонячий файл) или в ansible.cfg добавить нужную папку
Артём
Кто-нибудь менеджит бакеты/пользователей/полиси minio ансиблом? Смотрю на модуль iam и пытаюсь понять, как (и можно ли) указать ему сервер/бакет
Vladislav
Всем привет. А можно как-то сделать, чтобы обработчики выполнялись после таска где указан notify? А то они выполняются в самом конце, после всех тасков.
Vladislav
или пользоваться register?
Vladislav
просто ansible-lint рекомендует обработчики
Vladislav
503: Tasks that run when changed should likely be handlers If a task has a when: result.changed setting, it is effectively acting as a handler
Vladislav
мне надо типа when: result.changed