Anonymous
просто суть в следующем есть массив 1 - в нем условно имена пользователей, есть массив два в нем привязка к именам пользователей пароля (там их больше и в другом порядке чем в массиве 1). Нужно установить пользователям из массива 1 пароль опираясь на данные из массива 2
Max
Mihail
Anonymous
Попробую, спасибо
Sergioss
причем тут асинхрон?
Собственно при том что async позволяет установить дополнительное время на выполнение таска, ну и параллельно выполнять
Max
Sergioss
И как?
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 будет жить. Поприветствуем!
Timur
Timur
Anonymous
ну я там поспеши, все оказалось проще
Anonymous
обошелся штатными средствами без извращений
Timur
xfs_repair
подксажите , мне на управляемых серверах все команды нужно выполнять от определенного юзера и через sudo
на ansible сервере где я должен прописать
это правило
и как
Владислав
Timur
господа, а у ansible есть возможность как-то вытаскивать custom modules? Чтобы не дёргать git clone и т.д. Что-то вроде ansible-galaxy install
𝚔𝚟𝚊𝚙𝚜
видимо придётся новый объект формировать
Павел П.
добрый вечер.
То ли я гуглить не умею, но где в документации указано как работают split, rsplit ?
Туплю как из master1.abc.def.xyz через .split('.') получить часть abc.def.xyz
Павел П.
Timur
Timur
а, ну или так, да :)
Timur
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
Max
иногда можно пользовать динамику. иногда для динамики имеет смысл настроить конфигурационный сервис. примеры - hashicorp consul, etcd, zookeeper (если среда его и так требует)
Артём
Что-то не могу нагуглить модулей управления ipmitool. Может, кому попадался? А то же потом за конструкции вида
command: ipmitool user set name {{ item.value.id }} {{ item.key }}
with_dict: ipmitool_users
все будут какушками поливать.
Sergey
inqfen
https://pypi.org/project/pyghmi/
напиши свой, питоний модуль есть
Anonymous
Anton Patsev будет жить. Поприветствуем!
Anton
Кто-нибудь подскажите по ошибке
текст ошибки, блок кода где ошибка, аналогичный рабочий код - все по ссылке
https://toster.ru/q/650173
Sergey
Ты же сам во втором случае в плейбуке «become: yes» указал, вот никакого пароля и не нужно. Уже полномочия суперпользователя присутствуют.
Anton
Sergey
А если нужно по-человечески сделать, то есть не ломая системный Python, то есть параметр «virtualenv».
Vlad
Или задать параметр для pip —user
Sergey
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
Anton
Vlad
extra_args: —user
Sergey
хмык.
у тебя sudoers под эту дрянь настроен?
Sergey
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 будет жить. Поприветствуем!
Sergey
Vlad
https://github.com/ansible/ansible/issues/5977
Vlad
https://github.com/ansible/ansible/issues/36278
Sergey
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
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
хорошо что так никто не говорит