inqfen
судя по выводу ансибла, там не pg_restore а psql
inqfen
втф?
inqfen
То ли я что-то не понимаю и делаю не то, то ли документация где-то наебывает (как минимум в одном месте она так делает)
Maksim
ты по идее должен сам написать через shell модуль как восстановить твою дамп
Maksim
postgresql_db - Add or remove PostgreSQL databases from a remote host. postgresql_ext - Add or remove PostgreSQL extensions from a database. postgresql_lang - Adds, removes or changes procedural languages with a PostgreSQL database. postgresql_privs - Grant or revoke privileges on PostgreSQL database objects. postgresql_schema - Add or remove PostgreSQL schema from a remote host postgresql_user - Adds or removes a users (roles) from a PostgreSQL database.
inqfen
postgresql_db state Choices: present ← absent dump restore
inqfen
Юзаю тот restore, который из коробки, такая вот фигня
inqfen
а вот dump нормально работает как pg_dump
Maksim
а у тебя дам sql?
inqfen
да, текстовый
Maksim
https://github.com/ansible/ansible/blob/a8d4bf86421d151d8df7132e8e87d04b6662f45a/lib/ansible/modules/database/postgresql/postgresql_db.py просто тут пацаны написали логику когда какой инструмент юзать
Maksim
по дефолту идет psql если не указан формат )
inqfen
- name: dump db to server postgresql_db: login_host: "{{postgres_host}}" login_password: "{{postgres_password}}" login_user: "{{postgres_user}}" name: "{{postgres_database}}" port: "{{postgres_port}}" state: restore target: "/backup/{{backup_name}}-obfuscated.sql" target_opts: "--clean"
inqfen
ща почитаю что там написали
Maksim
elif os.path.splitext(target)[-1] == '.tar': flags.append(' --format=Tar') cmd = module.get_bin_path('pg_restore', True)
Maksim
попробуй поменять расширение)
inqfen
if os.path.splitext(target)[-1] == '.sql': flags.append(' --file={0}'.format(target)) блет
inqfen
Значит придется сначала дропать бд
inqfen
Юзается текстовый потому что перед восстановлением еще питоноскрипт обфускацию делает
inqfen
Классно доки написаны, попробуй угадай без кода как оно работает
Sergey
Классно доки написаны, попробуй угадай без кода как оно работает
Да по лени работает. Кто будет таскать неархивированные дампы?
Sergey
😊)))
inqfen
Ну вот например я таскаю. Если оно работает так только для архивированных - значит это надо указать же
inqfen
Supported formats for dump and restore are: .sql and .tar Потому что в доках все прямо наоборот
inqfen
Да, я там как раз еще один pr буду делать в notes, так что и это добавлю
inqfen
И код немного надо поправить, но пока некогда к сожалению, в этом модуле еще косячок есть
kst
Всем привет, подскажите, в чём может быть проблема?
kst
inqfen
dd unrecognized operand of
inqfen
проверь как написаны аргументы
inqfen
или это при передаче temp файлов ансибла?
Maksim
Всем доброго времени суток. Есть 2 задания - https://pastebin.com/UdyTPVQf Не подскажите почему одно выполняется в другом? Речь вот о чём: в сбор фактов попадает шаг "setup. Копирую служебные файлы фронтенда", а под шагом "setup. Копирую служебные файлы фронтенда" выполняет следующий за ним "setup. Копирую общие файлы nginx". Получается, что они как бы вверх поднимаются. Используется ansible 2.5.2
inqfen
а теперь вопрос лучше по-русски написать
inqfen
Ничего не понял)
Maksim
Попытка номер 2) Есть 2 задачи в плейбуке. Плейбук отрабатывает странно. ПОд странностью я понимаю следующее: При выполнении 1 задачи выполняет по факту задача 2. То естьт в логе идёт task 1, а по фак
Maksim
Не знаю как ещё сформулировать)
bebebe
Попытка номер 2) Есть 2 задачи в плейбуке. Плейбук отрабатывает странно. ПОд странностью я понимаю следующее: При выполнении 1 задачи выполняет по факту задача 2. То естьт в логе идёт task 1, а по фак
в том куске который вы скинули на pastebin нету таски "создаю и проверка необходимые каталоги" (русский язык вам не родной?) а в выводе она есть
bebebe
либо вы смотрите не туда и запускаете не то, либо не всем нам показали
Maksim
https://pastebin.com/AfGZatzN
bebebe
https://pastebin.com/AfGZatzN
зайдите в директорию где лежит плейбука и выполните команду find . /etc/ansible -type f -ls и выложите output на pastebin
Sergey
Попытка номер 2) Есть 2 задачи в плейбуке. Плейбук отрабатывает странно. ПОд странностью я понимаю следующее: При выполнении 1 задачи выполняет по факту задача 2. То естьт в логе идёт task 1, а по фак
Это уже было сколько-то дней назад - знакомые таски, мягко говоря, странный подход. Увы. В такие моменты хочется грязно ругаться на несовершенство мира.
Sergey
Если сделать нормально, обойдясь без совы и глобуса, то это не потребует таких усилий диких при отладке и поддержке (чего стоят постоянные убегания за файлами в относительные пути!)
Maksim
Это уже было сколько-то дней назад - знакомые таски, мягко говоря, странный подход. Увы. В такие моменты хочется грязно ругаться на несовершенство мира.
тогда была немного другая проблема. Я как раз и занимаюсь переделыванием того, что осталось от предыдущих людей, пытаюсь навести порядок.
Sergey
На мой взгляд, здесь порядок возможен только через параметризированную роль (тогда не придётся костылить с when).
inqfen
вообще это решается тегами
inqfen
Но их немного сломали(
Maksim
зайдите в директорию где лежит плейбука и выполните команду find . /etc/ansible -type f -ls и выложите output на pastebin
https://pastebin.com/ctMdEwg6 каталога /etc/ansible не существует. Ставился не из пакета ansible, как я знаю, в каждом каталоге, где есть плейбуки лежит ansible.cfg. Ещё интересно, что с дургими плейбуками таких проблем нет.
bebebe
https://pastebin.com/WUVPPNXz
а вы плейбуку против какого количества хостов запускаете? покажите какую команду выполняете, скрыв название хостов
bebebe
понятно
bebebe
вот ваш баг
bebebe
https://github.com/ansible/ansible/issues/41312
bebebe
strategy = free в ansible.cfg замените на strategy = serial и попробуйте запустить снова
bebebe
почитайте за что эта опция отвечает: https://docs.ansible.com/ansible/2.5/user_guide/playbooks_strategies.html
Vladimir
с бодреньким ) а кто-нибудь сталкивался с такой развлекухой: есть хост, он принадлежит к двум групппам у каждой группы свои групварсы и плейбуки работают по хостам обозванным группами т.е. в инвентаре: l2 - host [walter] l2 [site] l2 в плейбуке 1 hosts: walter в плейбуке 2 hosts: site в group_vars/walter nginx_port:8011 в group_vars/site nginx_port:8022 разные порты для дебага плейбуки запускают каждый свою роль в плейбуке 1 роль была создана и отдебажена первой, все ок затем скопирована в роль плейбука 2 и сделаны изменения в конфигах и прочем при отработке плейбука 2 (site) групварсы берутся из групварсов другой группы (walter) при этом, если его переименовать, то отрабатывается правильно, берет варсы из своего файла но что более смешно, попробовал запустить первый плейбук (walter) с переименованным файлом его переменных, но ругани не получил, оно взяло варсы group_vars/site и типа все норм..... а вот если убрать и второй файл, то тогда ругается что нет такой вары сижу, чешу репу, не понимаю, как так......
Vladimir
проходила мимо Ванга, шепнула, что возможно ансиблу по барабану из какой группы брать варю, если хост и той и другой принадлежит.....
Maksim
Есть такое)
Ivan
https://t.me/pro_ansible/57937 разобрался, вот так надо было сделать - mysql_user: name: root priv: '*.*:ALL,GRANT' host: '%'
Ivan
host: '%' - надо было указать
Fedor
нехорошо так делать
Fedor
небезопасно
kst
или это при передаче temp файлов ансибла?
это при передаче темп файла
kst
проблема в целевом хосте, но из-за чего, вообще не ясно
Ivan
небезопасно
я понимаю, но мне надо было для того, чтобы мои коллеги тетсировщики могли юзать юай тулзовину, а то не все понимают CLI
Ivan
не, у нас тест энвы дестроятся
Ivan
они у нас независимы
Fedor
я про плейбук :)
Ivan
ааа, та мы его тоже только юзаем для тест энвов. Я сам мануальщик, просто решил облегчить жизнь коллег с некторыми задачами
Fedor
👍
bebebe
https://pastebin.com/sgrsS51v
Закоментируйте эту строку в ansible.cfg
łibfitź.r14.a
привет. подскажите, таск может состоять из единственного notify?
Aleksey
с бодреньким ) а кто-нибудь сталкивался с такой развлекухой: есть хост, он принадлежит к двум групппам у каждой группы свои групварсы и плейбуки работают по хостам обозванным группами т.е. в инвентаре: l2 - host [walter] l2 [site] l2 в плейбуке 1 hosts: walter в плейбуке 2 hosts: site в group_vars/walter nginx_port:8011 в group_vars/site nginx_port:8022 разные порты для дебага плейбуки запускают каждый свою роль в плейбуке 1 роль была создана и отдебажена первой, все ок затем скопирована в роль плейбука 2 и сделаны изменения в конфигах и прочем при отработке плейбука 2 (site) групварсы берутся из групварсов другой группы (walter) при этом, если его переименовать, то отрабатывается правильно, берет варсы из своего файла но что более смешно, попробовал запустить первый плейбук (walter) с переименованным файлом его переменных, но ругани не получил, оно взяло варсы group_vars/site и типа все норм..... а вот если убрать и второй файл, то тогда ругается что нет такой вары сижу, чешу репу, не понимаю, как так......
- name: Manage MariaDB server hosts: [ 'debops_service_mariadb_server', 'debops_mariadb_server' ] become: True environment: '{{ inventory__environment | d({}) | combine(inventory__group_environment | d({})) | combine(inventory__host_environment | d({})) }}' можно вроде так изменить повидение но это не точно
łibfitź.r14.a
привет. подскажите, таск может состоять из единственного notify?
пробовал так: - name: random notify: handler и так: - name: random notify: - handler ругается
Aleksey
вроде нет смысл notify теряется