Denis
нету их не где каждая тачка своя job bash
Timur
Что значит в гите? Гит - просто хранилище файлов с отслеживанием их версий
Denis
нету начального файла
Max
Я чот тоже не понял что сделать надо
Timur
Еще раз давайте попробуем. Есть некий список баз и пользователей. На каждом сервере он свой или они на всех серверах одинаковые?
Denis
набор пользователь у каждый свой но могу повторятся
Denis
есть некий список машин где лежат несколько БД
Max
Ещё раз. Набор баз на всех серверах одинаковый?
Denis
нет
Denis
разный набор БД
Denis
равзный набор пользаков
Max
У каждой базы разный набор юзеров, так?
Denis
но что БД что пользаки могу совпадать
Denis 災 nobody
Как обычно деплоят в Амазон?
Denis
не совсем
Denis 災 nobody
Это вопрос )
Denis 災 nobody
Когда машину надо создать, потом раскатать
Timur
но что БД что пользаки могу совпадать
В чем проблема-то в итоге?
Denis
самое главное забыл сказать что роль работет на localhost
Denis
я не могу составить dict правильно
Denis
чтобы потом пользоватся mysql_db mysql_user
Denis
которую надо написаать для создание БД и пользкаов
Timur
Вы какую-то готовую взяли или сами с нуля пишете?
Denis
роль запускается на локальной тачке и должна создать БД на удаленной тачке так же пользаков
Denis
используя только свой набор данных
Timur
Повторяю вопрос
Timur
Вы какую-то готовую взяли или сами с нуля пишете?
Denis
сам
Denis
на тачках mysql
Denis
galera cluster
Timur
Timur
Так, и в чем проблема у вас?
Max
Host vars не нагуглил видать
Denis
описать набор данных для каждой тачки чтобы потом тасках испозовать два модуля
Denis
host_vars не катит так так инвектори нету потому что роль работает на локальной тачке
Max
А, ну он какую то йобу написал, которая вместо ансибла по базам ходит и запускает её ансиблом по ходу
Denis
????
Timur
host_vars не катит так так инвектори нету потому что роль работает на локальной тачке
Что у вас делает роль? Как она создает базы и пользователей?
Denis
module mysql_db
Timur
Так, и?
Timur
Код можете показать?
Denis
да его нету потому что не могу vars правильно составить
Timur
Т.е. роль есть, а кода ее нету?
Timur
Denis
задача есть а роль в процессе
Timur
Так, и в чем проблема-то?
Denis
var/main.yml: hostname: user_adm: users1: ...... users2: users_old: users_1: ....... users_2 db: dbname1: ........ dbname1: hostname1: user_adm: users1: ...... users2: users_old: users_1: ....... users_2 db: dbname1: ........ dbname1: tasks/main.yml - name: user create mysql_user: login_user: "{{..}}" login_password: "{{ .. }}" login_host: "{{..}}" name: "{{..}}" password: "{{..}}" host: "{{..}}" priv: "{{..}}" state: "{{..}}" loop: "{{ query('dict', all) }}"
Denis
как сделвать примерно так
Denis
только не ругайте сильно
Denis
я новичек
Andrey
Ничего непонятно
Max
Зачем оно на локалхост то завязано?
Denis
оо это не ко мне вопросы=)) безопасникам
Denis
можно конечно вот так сделать #hostname|dbadm|dbpasswd|user_root|passwd_root|state #hostaname|dbadm|dbpasswd|dbname|state #hostname|dbadm|dbpasswd||username|passwd|dbname|state
Denis
но это дичь и не красиво
Andrey
я новичек
В инвентори должно быть host ansible_host= ansible_port= если всё идёт на локалхост, иначе ансибл не будет воспринимать инвентори
Timur
В них есть какая-то структура, разбиения по группам и т.п.?
Denis
да
Denis
так же тачки
Max
Server1 ansible_host=127.0.0.1 Server2 ansible_host=127.0.0.1
Max
И host vars
Timur
Server1 ansible_host=127.0.0.1 Server2 ansible_host=127.0.0.1
Не, тут не нужен инвентарь такой
Timur
Нужны просто словари с базами и с юзерами
Max
Ну я про один из вариантов
Timur
Вполне достаточно прописать hosts: localhost
Max
Программирование на ямл такое программирование на ямл
Timur
Не нужно тут программирование
Timur
Роль сводится к двум таскам фактически
Denis
даааааааааааа
Timur
- name: Ensure MySQL databases are present mysql_db: name: '{{ item.name }}' collation: '{{ item.collation | default("utf8_general_ci") }}' encoding: '{{ item.encoding | default("utf8") }}' state: '{{ item.state | default("present") }}' target: '{{ item.target | default(None) }}' login_host: '{{ item.login_host }}' login_user: '{{ mysql_root_username }}' login_password: '{{ mysql_root_password }}' loop: '{{ mysql_databases }}' - name: Ensure MySQL users are present mysql_user: name: '{{ item.name }}' host: '{{ item.host | default("localhost") }}' password: '{{ item.password }}' priv: '{{ item.priv | default("*.*:USAGE") }}' state: '{{ item.state | default("present") }}' append_privs: '{{ item.append_privs | default("False") }}' encrypted: '{{ item.encrypted | default("False") }}' login_user: '{{ mysql_root_username }}' login_password: '{{ mysql_root_password }}' update_password: on_create loop: '{{ mysql_users }}'
Denis
но нужно составить дикт
Timur
Два списка нужно
Denis
да вот эти две таски
Timur
А в них дикты - да
Denis
расскажи или научи =)
Denis
почему два списка!?