Anonymous
просто суть в следующем есть массив 1 - в нем условно имена пользователей, есть массив два в нем привязка к именам пользователей пароля (там их больше и в другом порядке чем в массиве 1). Нужно установить пользователям из массива 1 пароль опираясь на данные из массива 2
Anonymous
Попробую, спасибо
Sergioss
причем тут асинхрон?
Собственно при том что async позволяет установить дополнительное время на выполнение таска, ну и параллельно выполнять
Max
Собственно при том что async позволяет установить дополнительное время на выполнение таска, ну и параллельно выполнять
время выполнения таска это не связано с синхронизацией. можно любую таску настроить быть дольше.
Sergioss
И как?
Nikolay
Есть такая структуда плейбуков. app - деплой всяких mysql/redis/nginx/etc vms - деплой kvm виртуалок на гипервиоры dc - деплой железных серверов, все что уровня ДЦ. Копируем hosts_vars/* из dc, vms в app, потому что там ip адреса тачек. Проблема, что неудобно постоянно дублировать host_vars, иногда что-то забываем. Какие есть подходы сделать hosts_vars централизованным? ./playbooks/ ├── app │ ├── host_vars │ ├── playbook.yml ├── vms │ ├── host_vars │ ├── playbook.yml ├── dc ├── host_vars ├── playbook.yml
Nikolay
Думаю сделать симлинк может.
Anonymous
через энвы например
Anonymous
и на хост варс выносить только специфичное для хостов
E_zombie
написать скрипт который будет формировать инвентори и скармливать его через -i ?
Anonymous
ну или в обше через group_vars
Anonymous
https://docs.ansible.com/ansible/latest/user_guide/playbooks_best_practices.html
Anonymous
@zahart будет жить. Поприветствуем!
Anonymous
ну я там поспеши, все оказалось проще
Anonymous
обошелся штатными средствами без извращений
𝚔𝚟𝚊𝚙𝚜
А это случаем не yaml? В таком случае и без regexp можно обойтись
А как-то можно нормализировать ключи объекта, к примеру удалить из них пробелы и т.п.?
xfs_repair
подксажите , мне на управляемых серверах все команды нужно выполнять от определенного юзера и через sudo на ansible сервере где я должен прописать это правило и как
Владислав
Timur
господа, а у ansible есть возможность как-то вытаскивать custom modules? Чтобы не дёргать git clone и т.д. Что-то вроде ansible-galaxy install
𝚔𝚟𝚊𝚙𝚜
Не знаю. А почему через item['key name'] не использовать?
в ансибле норм, а вот в кубе jsonpath как-то странно работает, хотел весь output в .status засунуть. Ну и что-бы без проблем было привести к нормальному виду
𝚔𝚟𝚊𝚙𝚜
видимо придётся новый объект формировать
Павел П.
добрый вечер. То ли я гуглить не умею, но где в документации указано как работают split, rsplit ? Туплю как из master1.abc.def.xyz через .split('.') получить часть abc.def.xyz
Timur
а, ну или так, да :)
Павел П.
'.'.join(a.split('.')[1:])
спасибо! и так попробую чтоб запомнилось)
404
a.split('.', 1)[1] - на мой взгляд шушуть читабельнее
Viktor
Всем бобра! Подскажите, как в jinja2 перенести стоку, очень длиная получается
Anonymous
Kirill Rakhcheev будет жить. Поприветствуем!
Kirill
Всем пятницы! Помогите, плиз, с решением моей проблемы. Не могу понять, как передать в модуль "command" имена всех хостов из inventory без скобок. Гугл и дока ничего внятного сказать мне не могут
Kirill
command: command --nodes "{{ groups['all'] }}" отправляет команду в шел вида command --nodes "['host1', 'host2', 'host3']" . А мне на выходе нужно получить command --nodes "'host1', 'host2', 'host3'"
Kirill
В общем победил. В таске объявляется переменая и туда засовывается список хостов. А затем в command она передается в виде строки. Вот так это выглядит - hosts: backend gather_facts: false remote_user: root vars: hosts: "{{ groups['all'] }}" tasks: - name: Deploy Compute cluster command: command --node "{{ hosts | join(',') }}"
Max
иногда можно пользовать динамику. иногда для динамики имеет смысл настроить конфигурационный сервис. примеры - hashicorp consul, etcd, zookeeper (если среда его и так требует)
Артём
Что-то не могу нагуглить модулей управления ipmitool. Может, кому попадался? А то же потом за конструкции вида command: ipmitool user set name {{ item.value.id }} {{ item.key }} with_dict: ipmitool_users все будут какушками поливать.
inqfen
https://pypi.org/project/pyghmi/ напиши свой, питоний модуль есть
Anonymous
Anton Patsev будет жить. Поприветствуем!
Anton
Кто-нибудь подскажите по ошибке текст ошибки, блок кода где ошибка, аналогичный рабочий код - все по ссылке https://toster.ru/q/650173
Sergey
Ты же сам во втором случае в плейбуке «become: yes» указал, вот никакого пароля и не нужно. Уже полномочия суперпользователя присутствуют.
Sergey
А если нужно по-человечески сделать, то есть не ломая системный Python, то есть параметр «virtualenv».
Vlad
Или задать параметр для pip —user
Sergey
Или задать параметр для pip —user
Это чуть про другое, канеш.
Sergey
Да и нет такого параметра 😉
Anton
если вот здесь https://github.com/dj-wasabi/ansible-zabbix-agent/blob/master/tasks/main.yml#L62 комментирую playbook дальше проходит......
Sergey
https://docs.ansible.com/ansible/latest/modules/pip_module.html
Vlad
extra_args: —user
Sergey
хмык. у тебя sudoers под эту дрянь настроен?
Sergey
extra_args: —user
Если нет полномочий суперпользователя, то это ещё отдельно нужно дать возможность использовать другой uid.
Vlad
Зачем использовать другой uid?
Sergey
Зачем использовать другой uid?
Я ошибся. Уже уточнил, чего такое «—user» делает - ставит в пользовательский каталог. Типа "не используем virtualenv, используем #странное".
Vlad
Странное это как раз virtualenv. Некоторые модули захардкожены на системный python и не находят модули в virtualenv. Приходится костыли делать типа ansible_python_interpreter=/home/ukleftue/.virtualenvs/ilovebaleares/bin/python
Anonymous
@Slayer_r будет жить. Поприветствуем!
Vlad
https://github.com/ansible/ansible/issues/5977
Vlad
https://github.com/ansible/ansible/issues/36278
Sergey
https://github.com/ansible/ansible/issues/5977
Оба закрыты. Нещитово.
inqfen
Так а ты читал формулировки закрытия и советы которые давались после? Именно тот костыль с интерпретатором и рекомендуется
inqfen
раз https://maciej.lasyk.info/2016/Jun/27/working-with-virtualenv-and-ansible/ и два https://docs.ansible.com/ansible/devel/inventory/implicit_localhost.html
Max
Так а ты читал формулировки закрытия и советы которые давались после? Именно тот костыль с интерпретатором и рекомендуется
уже года 4 эти директивы работают прекрасно. нужно просто выставить interpreter нормально, с не-абсолютными путями.
Max
и наладить процесс накатки virtualenv по единой конвенции.
Anonymous
@Yddudhshsaaasss будет жить. Поприветствуем!
John
Парни, как в такой конструкции - name: Grant Sudo privileges copy: content: '{{ item }} ALL=(ALL) NOPASSWD: ALL' dest: '/etc/sudoers.d/{{ item }}' with_items: '{{ users }}' сделать исключения? то есть если {{ item }} содержит точку, удалять ее в строке dest ( имя файла не должно содержать точку)
Andor
не поверишь, но | replace('.', '_')
Andor
http://jinja.pocoo.org/docs/2.10/templates/#replace
John
Спасибо :)
Andor
непонятно правда каким местом тут слово "исключения"
John
все норм) | replace(".", "") это исключение точки из имени файла)
Andor
смешная формулировка
Andor
хорошо что так никто не говорит