Vladislav 👻
Anonymous
George
Anonymous
George
может у тебя есть спецсимволы в пароле?
George
ну, там *:/'"`
Anonymous
Кстати есть такое
George
тогда надо заэскейпить
George
и закавычить весь пароль
George
(только почему мне нужно объяснять очевидные вещи, где может сломаться ямл ()
Vladislav 👻
Anonymous
и закавычить весь пароль
У меня пароль лежит в шифрованом виде через ansible-vault.
Т.е. в виде
key: !vault !
blablabla
George
https://t.me/pro_ansible/98970
George
@SLASH_CyberPunk по идее отсюдова
George
Timur
Vladislav 👻
Vladislav 👻
Timur
Vladislav 👻
👍🏻
Vladislav 👻
Пойду прикину, как это будет выглядеть
Anonymous
тоды хз
Кстати помогло. Просто сделал ansible-vault encrypt_string и передал туда закавыченный пароль, который и засунул в group_vars. И заработало.
Спасибо большое
George
shine
Граждане, на секундочку, немного наркоманский вопрос, структуру таблиц удаленной мускульной базы какими-либо специализированными модулями можно сдёрнуть?
ну т.е. я представляю, как это через тот же шелл сделать или запуск удаленного скрипта и т.д.
George
что значит сдернутЬ?
Anonymous
@cognoz будет жить. Поприветствуем!
George
ты хочешь в виде json'а (условно) получить аналог SHOW CREATE TABLE?
Tadeusz
Ну это схема базы...
shine
show create table table_name;
или
show create procedure;
shine
хочется бэкапить структуру / процедуры/ функции, выгружая это всё в гит, без данных, например
Валентин
Ребят, подскажите как when условие применить в зависимости от окружения? Есть dev и test
Andrew
Может mysqldump?
mysqldump \
--routines \
--triggers \
--no-data \
--databases "$1" > "$1"
Stan
подскажите, пытаюсь заранить playbook, по ssh не пускает ,пишет : etc/ssh/ssh_config line 19: Applying options for *\r\ndebug1: auto-mux: Trying existing master\r\ndebug1: Control socket \"/root/.ansible/cp/3605020054\" does not exist\r\ndebug2:
хотя в настройках все норм выглядит, что может мешать?
Anonymous
Подскажите пожалуйста как в molecule для ansible провижинера указать переменную ansible_user?
У меня есть подсасывание group_vars, в котором определен ansible_user: ubuntu, нужно для молекулы это переопределить
provisioner:
name: ansible
lint:
name: ansible-lint
inventory:
links:
group_vars: ../../../../inventories/group_vars/
Anonymous
Timur
Timur
Timur
Лучше задай по конкретному параметру
Timur
Типа when: enable_this_trigger | bool
Timur
А значение этой переменной задавай разным окружениям через инвентарь или плейбуку
Timur
Anonymous
Все равно не понял проблемы
molecule накатывает определенную роль на docker контейнер. Для этой роли требуется переменные из group_vars, поэтому я подключаю их через
inventory:
links:
group_vars: ../../../../../inventories/group_vars/
в group_vars/all.yml у меня определа переменная: ansible_user: ubuntu
И ansible, что ожидаемо, не может подключиться к docker контейнеру, который был поднят molecule'ой, т.к. в докере пользователь - root
------
В любом случае уже неактуально, я как-то не догадался изначально, что можно просто в плейбуке molecule/default/playbook.yml переопределить пользователя
vars:
ansible_user: root
Vladislav 👻
А поясните мне за wait_for, пытался запилить чекалку доступности порта, но что-то гугл выдает примеры, которые просто пролетают...
Как можно проверить порт нормально?
George
Vladimir
Вечерний тупняк( Может кто подскажет. Есть такой host_vars и task:
--------
nginx_vhost:
- server_name: "test.examle.com"
restrict_access:
basic_auth:
- {user: 'dev', pass: '123'}
- {ueser: 'demo', pass: '456'}
- server_name: "test2.examle.com"
restrict_access:
basic_auth:
- {user: 'dev2', pass: '123'}
- {ueser: 'demo2', pass: '456'}
--------------
- name: Nginx | creat auth file
htpasswd:
path: /etc/nginx/include/passwdfile.{{ item.server_name }}
name: item.basic_auth.user
password: item.basic_auth.password
owner: root
group: root
mode: 0640
loop: "{{ nginx_vhost }}"
when: nginx_vhost.basic_auth
Как сделать обход по паролям, что бы все добавлялись?
#хочустранного
Vladimir
Вопрос снят.
George
или это просто ночное обострение было ?)
Vladimir
и как решил?
loop + subelements. Если интересно, могу сюда таску скинуть
George
ну, конечно, интересно посмотреть
Vladimir
- name: Nginx | creat auth file
htpasswd:
path: /etc/nginx/include/passwdfile.{{ item.0.server_name }}
name: item.1.user
password: item.1.pass
owner: root
group: root
mode: 0640
loop: "{{ nginx_vhost | subelements(restrict_access.basic_auth)}}"
@gecube вот так
Anonymous
Andy Amba будет жить. Поприветствуем!
George
Anonymous
@Unsigned_Long_Long будет жить. Поприветствуем!
Anonymous
@Aburnashev будет жить. Поприветствуем!
Anonymous
@lmmcs будет жить. Поприветствуем!
Vladislav 👻
Vladimir
Vladislav 👻
Ага, понял 👍🏻
Anonymous
mirumirich будет жить. Поприветствуем!
Sun
господа, опять странный вопрос:
Есть некоторое кол-во сервисных юзеров, которым надо на новый сервер положить в профиль пару файликов, типа aws-creds.
Можно ли как-то проверять папку files роли на предмет совпадения названий папок с юзернеймом и затем уже вызывать sync?
По тупому я смог, но срёт в логи, если папки с именем юзера нет. А хочется без фейлов проходить плейбук.
inqfen
Получаешь список директорий в files получаешь список директорий в юзеров, составляешь генератором (типа for catalog in files if catalog in users) лист директорий, которые надо синкать и синкаешь по нему
Timur
Dr. L.S.Dee
господа, опять странный вопрос:
Есть некоторое кол-во сервисных юзеров, которым надо на новый сервер положить в профиль пару файликов, типа aws-creds.
Можно ли как-то проверять папку files роли на предмет совпадения названий папок с юзернеймом и затем уже вызывать sync?
По тупому я смог, но срёт в логи, если папки с именем юзера нет. А хочется без фейлов проходить плейбук.
Господа, извиняюсь, конечно, что опять влезаю с оффтопиком, но... У меня в последнее время складывается впечатление, что логика использования как сабжа, так и моего оффтопика оччччень похожи.
На DSC реализовать проверку на наличие какого-то объекта прямо в рантайме и "на коленке" я мог бы, только задействуя Script. Злоупотребление которым в корне неправильно (недаром же он один такой на всю туеву хучу доступных ресурсов, как встроенных, так и в галерее).
Без него - я бы либо оставил декларацию, что такой-то файл должен присутствовать по такому-то пути (и тут диспетчер DSC либо тоже нагадил бы в логи ошибками и записал бы целевые хосты как "не соответствующие состоянию", либо молча радостно создал файлы по нужному пути - и неважно, что там больше ничего нет), либо...
Либо написал бы модуль, куда и вынес проверку. Вернее, поискал бы подходящий, ведь все уже написано до нас.
P.S. Про рантайм написал? Да. ОК. Так вот, а вообще такую проверку я бы вынес за пределы применения конфигурации. И включал в список, на котором применяется целевая конфа, только те хосты, где есть нужный ресурс (в данном случае - пользователи, которые хотя бы раз залогинились и для которых создан хомяк).
Timur
inqfen
Да, не надо так, но человек попросил, я подсказал
inqfen
Вдруг у него именно такой случай, когда вот надо
Timur
Timur
Dr. L.S.Dee
Tl;dr: использовать собранные факты в плейбуке.
1. Собрать информацию о хостах, включив условие "каталог такой-то существует". Видимо, для каждого имени пользователя.
2. Каждый хост с положительным результатом включается в соответствующую коллекцию.
3. Для каждой такой коллекции применяется задача "файл такой-то должен сущестовать". В ранее указанном каталоге, да.
Коллекции могут перекрываться.
Dr. L.S.Dee
Dr. L.S.Dee
Или я чушь несу?
Sergey