Отделение Bereke Bank
В каких переменных?
Отделение Bereke Bank
Таск покажи
Aleksandr
под каким пользователем ансибл таски выполняет?
енот
Таск покажи
https://github.com/geerlingguy/ansible-role-mysql/blob/master/tasks/databases.yml
енот
Отделение Bereke Bank
А...готовая роль
енот
если вы подскажите мне как обойтись без неё и не писать руками - буду тоже очень благодарен
енот
проблема в mysql_db, как я понимаю
Aleksandr
рут
посмотри в логах субд, он точно с паролем пытается подключится, либо в .my.cnf пропиши от балды другого пользователя и посмотре в выхлопе таски, что там пользователь из .my.cnf
енот
Aleksandr
тогда сделай второй вариант
Aleksandr
енот
оно перезапишет ~/.my.cnf
Aleksandr
чтобы уже добить, закомменти таску на генерацию .my.cnf
енот
В роли? щас
енот
и удалить?
енот
.my.cnf
Aleksandr
зачем удалить
Aleksandr
просто пропиши другого пользователя
Aleksandr
хочу убедится, что ансибл читает ~/.my.cnf
Aleksandr
у модуля по-дефолту root пользователь
енот
Aleksandr
вот и узнаем
енот
я удалил и запустил закомментив
TASK [geerlingguy.mysql : Disallow root login remotely] **********************************************************************************************************************
failed: [kali] (item=DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1')) => {"ansible_loop_var": "item", "changed": false, "cmd": ["mysql", "-NBe", "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1')"], "delta": "0:00:00.004861", "end": "2020-09-04 19:13:15.884384", "item": "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1')", "msg": "non-zero return code", "rc": 1, "start": "2020-09-04 19:13:15.879523", "stderr": "ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)", "stderr_lines": ["ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)"], "stdout": "", "stdout_lines": []}
Aleksandr
а раньше это выполнялось?
енот
да
Aleksandr
значит читает
енот
он даже пароль успешно апдейтит каждый раз
енот
стопорится позже
Aleksandr
- name: Disallow root login remotely
кхм, так здесь command используется
Aleksandr
не модуль mysql_db
енот
я короче где-то очень сильно туплю
енот
я просто взял vars из роли и плэйбук из примера к ней
енот
всё отрабатывает
енот
то есть косячу где-то я сам видимо
Aleksandr
продолжим в личке
Андрей
я бы для начала разобрался что делает плейбук, а потом запускал.
Если уж совсем понимания нет, почитал бы доку, разобрал бы в деталях что делает каждый модуль
Sergey
Держите: https://habr.com/ru/post/516028/
Sergey
Обещанная статья по мотивам чтения исходников Ansible.
Aleksandr
transfer_method = piped
ебать
Aleksandr
я думал ничего лучше scp не придумали
Отделение Bereke Bank
если assert фейлится - он же остановит выполнение плейбука для этого хоста?
Iwan
Lamobot
Sergey
@Voiddancer, предположительно тебе нужно подключаться через сокет. Проверь. Я себе голову сломал, пытаясь решить этот wtf, когда свой маленький модуль писал для MariaDB, и обнаружил, что через сокет всё волшебным образом работает.
енот
енот
как это сделать?))
Sergey
как это сделать?))
try:
import ansible.module_utils.pymysql as pymysql
except ImportError as err:
module.fail_json(msg='Сould not import!')
conn = pymysql.connect(host='localhost', unix_socket='/var/lib/mysql/mysql.sock', user='root', db='mysql')
Вот так :-)
Lamobot
Sergey
Alex
Знаете ли вы, что с настройками по умолчанию Ansible для каждого плея инициирует сбор фактов по всем хостам, которые в нём участвуют?
ну не совсем так, при условии что на уровне плея не стоит gather_facts: no
Alex
>с настройками по умолчанию
Alex
у кастомного плея ?
Alex
ну типа если ты не задаешь настройки сбора фактов то он собирает по всем хостам
Alex
ну очень неодназная формулировка
Alex
К сожалению, с настройками «gathering = smart/explicit» и «forks = 20»такое не пройдёт: их YaML-эквивалентов не существует.
ну вот и первое отличие ini от yaml, как мне тут недавно говорили - что у них никаких отличий нет, кроме как удобства
Alex
оказывается есть
Lamobot
Vladislav 👻
Alex
что такое настройки по умолчанию для плея?
Vladislav 👻
почитайте
Yks
почему может таска инклудиться но не исполняться?
Alex
почитайте
нет такого понятия, по крайней мере в доке
Vladislav 👻
черным по белому написано, что факты собираются всегда и чтобы их отключить, используйте отдельный параметр
Alex
где там такое говоится?
Alex
по ссылке я что то не увидел
Vladislav 👻
Понятно, удачи
Alex
слив засчитан ))
Artem
Всем привет. С ансиблом работаю недавно. Нужно вычленить объект из списка по условию. На python решение приложил, а в ансибл не понимаю как можно сделать такую фильтрацию. Спасибо за помощь. https://gist.github.com/varlamovas/a7a668f39a1f3d16b3a2c4de18a1d363
Alex
Artem
строка, но можно и список, не принципиально, это я уже смогу обработать
Lamobot
Artem
ого, нетривиально) но спасибо всем за помощь!
Alex
а как после фильтра last обратится к словарю?