Anton
Ну это роль, а не плейбук
Anton
Но почему-то сразу выполняется Start docker service, а первые 4 нет
Alex
очевидно что из-за тегов
Anton
Хмм
Alex
- name: pip install docker sdk become: yes shell: cmd: "{{item}} install docker==3.7.2" … не надо так делать, есть же модуль pip
Sergey
Хмм
Слушай, доку почитай уже. Дальше только RO.
Sergey
Тащить в свою инфру что-то, что не знаешь, как работает - вообще а-та-та.
Div
Не я автор
это не избавляет от обязательной вычитки и правки
Anton
Тащить в свою инфру что-то, что не знаешь, как работает - вообще а-та-та.
Скорее наоборот, меня тащат в инфру, в которой я не знаю, как что работает) Я вообще до вчерашнего дня не знал, что такое Ansible
Sergey
В пине есть правила. В правилах есть ссылки (в том числе для новичков!)
Anton
В любом случае спасибо. И правда в тэгах дело было)
Grek 🇺🇦
Ребята, что-то я туплю... Можно ли модулю parted передать список девайсов на которых надо создать партиции? Пишу роль, в роли в defaults указываю список девайсов, потом вызываю parted с loop https://pastebin.com/tTt5YDFY понимаю что не соответствие типов и партед не принимает список. как сделать так чтоб таск запустился и подставил только одно значение из списка в цикле по всем девайсам?
A
device: "{{ item }}" ... loop: '{{ mdadm_arrays['devices'] }}' наверное
Grek 🇺🇦
device: "{{ item }}" ... loop: '{{ mdadm_arrays['devices'] }}' наверное
увы FAILED! => {"msg": "'list object' has no attribute 'devices'"}
A
Не понял, почему mdadm_arrays - список, а не словарь, если mdadm_arrays.devices работало... Но тогда mdadm_arrays.devices в loop или mdadm_arrays[0]. Если в mdadm_arrays больше ничего нет, можно mdadm_arrays|flatten(1)
Stanislav
Ребят, добрый день ) Подскажите, кто чем тестирует виндовз хосты через молекулу? Тестинфра не сильно подходит в плане того, что у нее есть connection backend, реализующий соединение по winrm, но модули под виндой не работают. Есть еще GOSS и InSpec, но опыта с ними не было. Какие у кого мысли?
Grek 🇺🇦
Не понял, почему mdadm_arrays - список, а не словарь, если mdadm_arrays.devices работало... Но тогда mdadm_arrays.devices в loop или mdadm_arrays[0]. Если в mdadm_arrays больше ничего нет, можно mdadm_arrays|flatten(1)
увы, тоже не то, такая же ошибка FAILED! => {"msg": "'list object' has no attribute 'devices'"} device: "{{ item }}" ... loop: '{{ mdadm_arrays.devices }}' тоже не работает, уже весь мозг сломал
Grek 🇺🇦
- name: debug debug: msg: "{{ mdadm_arrays }}" https://pastebin.com/m198t4W0
Grek 🇺🇦
блин. я тупенький) device: "{{ item }}" ... loop: '{{ mdadm_arrays[0].devices }}' и все заработало
A
- name: debug debug: msg: "{{ mdadm_arrays }}" https://pastebin.com/m198t4W0
А, точно, сам с таким сталкивался. Нахрена ансибл пакует словарь с переменными в список из 1 элемента?
Sander
вопрос маленький я создаю вот такую переменную для всех ролей в плейбке: vars: ansible_server_root_password: "{{ server_root_password }}" внутри когда проигываются таски - меняется переменная server_root_password, на что-то другое, в итоге результат у "ansible_server_root_password", становится другим - даже если он был задан самым первым, словно все работает через указатели. Есть ли возможность сделать переменную immutable/copy, чтоб я ее как создал в самом начале - чтоб она больше не менялась! только если я сам не укажу имя переменной напрямую ansible_server_root_password=lalal
Sander
🙁
Sander
ответа в интернете не нашел, поэтому написал в чат
UglyKoyote
так может через сет_факт? в самом начале
Sander
попробую и скажу ответ
Sander
но эт надо tasks делать, а у меня там роли, вначале запустятся роли а потом таски, что тоже не очень удобно
UglyKoyote
гхм
Sander
хотя
Sander
pre_tasks вроде что-то такое было сек
Sander
даа вот так работает! @UglyKoyote спасибо
UglyKoyote
погоди, щас более опытные товарищи поедят, и скажут) может есть какой то изъян
Артём
Не нашёл поиском по чату, но неужели никто не решал задачу tuned-adm из ansible?
Артём
Сетить профиль не через shell: /bin/tuned-adm profile ..., а более социально одобряемым методом.
Grek 🇺🇦
ну, напиши плагин\модуль, все равно же будешь дергать шелл
Grek 🇺🇦
есть роли, но там тот же шелл
Артём
Видимо, так и будет. Пока пытаюсь понять, не станет ли это очередным велосипедом при наличии готового решения. Задача-то выглядит не слишком специфичной. Роли видел, но за шелл тут угощают томатами.
Grek 🇺🇦
у питона есть модуль для работы с tuned? если есть можно и в коде делать, а если нет - subprocess?
Sergey
Открыл /usr/sbin/tuned-adm - работы примерно на пару часов.
Отделение Bereke Bank
Сетить профиль не через shell: /bin/tuned-adm profile ..., а более социально одобряемым методом.
А в чем проблема? Грузишь конфиг, хандлером дергаешь шел
UglyKoyote
неимподентно типа
Отделение Bereke Bank
Так он в хандлере. Пофиг
Grek 🇺🇦
Нет, на питоне написать вместо баша
ну. я к тому что и там и там будет дергаться бинарь, но идея с модулем\плагином органичней, согласен
Sergey
Ахахах..... Почитал код. Там бОльшую часть занимает разбор аргументов, что в модуле делается достаточно легко и непринуждённо.
Sergey
Пруфы: https://github.com/redhat-performance/tuned/blob/master/tuned-adm.py
Артём
Вот я немного удивляюсь, что при распространённости инструмента и несложности задачи ещё никто этого не сделал. И предполагаю, что я просто не нашёл промышленного решения.
Dennis
Коллеги добрый день а напомните кто знает пожалуйста про парсинг вывода То есть запускаю ANSIBLE_LOAD_CALLBACK_PLUGINS=true ANSIBLE_STDOUT_CALLBACK=json ansible dc_tehdc -b -m script -a "checkbond.sh" Получаю zk5.tehdc.rtlex.ru": { "_ansible_no_log": false, "action": "script", "changed": true, "rc": 0, "stderr": "Shared connection to zk5.tehdc.prv.rtlex.ru closed.\r\n", "stderr_lines": [ "Shared connection to zk5.tehdc.prv.rtlex.ru closed." ], "stdout": "4\r\n", "stdout_lines": [ "4" ] } },
Dennis
А хотелось бы просто 4
Alex
и при чем тут ансибл?
Alex
А есть ли возможность выполнить systemctl reset-failed через модуль? В systemd нашел только daemon-reload, но это не то
Евгений
Добрый вечер. Необходимо сменить пароли для списка пользователей, попробовал решить задачу, с помощью модуля user и with_lines (https://pastebin.com/aapqujRQ). Но пароль генерируется только 1 раз и добавляется всем пользователям 1. Необходимо, чтобы пароль генерировался для каждого пользователя отдельно, как можно добиться этого?
Alex
там же просто путь к файлу указывается
Евгений
Подскажите как правильно, хеши сгенерить не проблема. У меня не получается корректно loop сделать, чтобы хеш генерился для каждого пользователя
Timur
Уапросег возник. С dzdo дело кто-нибудь имел? Как без пароля сделать become в рут аналогичный тому, что получается с 'dzdo su -'?
Евгений
там же просто путь к файлу указывается
В примерах в доке через cat https://docs.ansible.com/ansible/latest/plugins/lookup/lines.html
Евгений
О, первый августовский #LDAP :-)
LDAP это хорошо и правильно, но бывает, что необходимо решить задачу "не правильным" путем
Sebor▂▅▇█▓▒░
+
Евгений
Спасибо
Евгений
Как уже советовали, генеришь хэши паролей, делаешь список словарей, ключи словаря user и password, проходишься лупом по этому списку, профит
Спасибо, понял. Как сделать со словарем понятно, для меня не пока не совсем понятно, как его сгенерить динамически, думал, что получится обойтись без словоря, просто подставлять значения user из списка и динамически генерить пароль. Буду смотреть как сгенерить список словарей
Sebor▂▅▇█▓▒░
Я ничего не генерю, это не мне надо)
Евгений
Владимир, спасибо за помощь. Если в кратце необходимо, поменять некоторым пользователям пароль, этот список динамический. Удалось решить данную задачу без формирования списка словарей.
Евгений
Спасибо возьму на заметку. А то я вот так генрил хеш: - name: Generate pass shell: pwgen -N 1 -s 12 -B register: password - name: Change password user: name={{ item }} password={{ password.stdout | password_hash('sha512'), 'salt' }} update_password=always
GithubReleases
ansible/ansible tagged: v2.10.0 Link: https://github.com/ansible/ansible/releases/tag/v2.10.0 Release notes: New release v2.10.0
Aleksey
чо пацаны притихли обновляете плейбуки ?
Aleksey
надо ci-и настроить что бы тесты на 2.10 бегали ?