Перейти к основному содержимому

Описание Ansible-ролей инсталлятора

Структура ролей инсталлятора в Pangolin имеет вид:

.
├── clean # Группа ролей, отвечающих за очистку стенда от компонентов Pangolin
│ └── tasks
│ └── main.yml # Корневая роль очистки стенда

├── common # Общие роли для процесса установки/обновления
│ ├── tasks
│ │ ├── backup_all.yml # Роль для создания полной резервной копии
│ │ ├── backup_restore_bash_sudoers.yml # Создание резервной копии и восстановление привилегированных пользователей
│ │ ├── bash_profile.yml # Настройка bash_profile
│ │ ├── block_traffic_by_pghba.yml # Блокирование трафика с использованием pg_hba
│ │ ├── block_traffic.yml # Блокирование трафика
│ │ ├── check_and_use_custom_config.yml # Валидация и использование кастомного файла конфигурации
│ │ ├── check_current_configuration.yml # Проверка текущей конфигурации кластера
│ │ ├── check_exist_certificates.yml # Проверка существующих сертификатов
│ │ ├── check_physical_space_on_directories_or_mount_points.yml # Проверка свободного места на точках монтирования
│ │ ├── configure_linux_users.yml # Настройка служебных технических учетных записей
│ │ ├── define_ips_nodes.yml # Определение IP-адресов узлов
│ │ ├── disable_backup_user.yml # Отключение резервного копирования c использованием backup_user
│ │ ├── history_of_stand.yml # Работа с историей стенда
│ │ ├── main.yml # Корневая роль вызова функций общих ролей процесса установки/обновления
│ │ ├── make_dump_and_calc_dump_checksums.yml # Создание дампа и подсчет его контрольной суммы
│ │ ├── merge_configs.yml # Объединение файлов конфигурации
│ │ ├── packages.yml # Работа с rpm/deb-пакетами
│ │ ├── python_env.yml # Настройка переменных окружения Python
│ │ ├── redefine_paramates_new_installer.yml # Переопределение параметров для совместимости нового инсталлятора
│ │ ├── rename_old_dirs_and_update_old_symlinks.yml # Переименование старых каталогов и обновление старых символьных ссылок
│ │ ├── researcher.yml # Определение текущих переменных стенда
│ │ ├── trigger_stop_update.yml # Аварийная остановка обновления по условию
│ │ ├── tune_pangolin_local_repo.yml # Настройка локального репозитория Pangolin
│ │ ├── update_errors_sync_to_hosts.yml # Синхронизация ошибок обновления по узлам установки
│ │ └── use_auto_merge.yml # Система автоматического слияния файлов конфигурации
│ └── templates
│ ├── diff_cfg.txt.j2
│ ├── diff_pgbouncer_cfg.txt.j2
│ ├── manage_backup_fake.sh.j2
│ └── pg_se_archlogs_fake.sh.j2

├── configure # Группа ролей для подготовки стенда
│ ├── tasks
│ │ ├── configure_for_update.yml # Подготовка для обновления
│ │ ├── encrypt_passwords_in_configs.yml # Засекречивание паролей в конфигурационных файлах
│ │ ├── finish_configure.yml # Завершение настройки стенда
│ │ ├── main.yml # Корневая роль для запуска подготовки стенда
│ │ ├── update_change_reuse_time.yml # Обновление времени переиспользования/смены/сброса паролей в БД
│ │ ├── update_pg_stat_kcache.yml # Обновление расширения pg_stat_kcache
│ │ ├── update_user_pass.yml # Обновление пользовательских паролей
│ │ └── welcome_message.yml # Создание приветственного сообщения
│ └── templates
│ ├── dynmotd.sh.j2
│ ├── ext_update.sql.j2
│ ├── pg_quota.conf.j2
│ └── run_update_extentions.sh.j2

├── deprecated_roles # Группа устаревших ролей
│ ├── checkup # Устаревшие роли проверки установки/обновления
│ │ └── tasks
│ │ ├── check_certificates_params.yml
│ │ ├── define_update_certificates.yml
│ │ └── prepare_update_certs.yml
│ ├── common # Устаревшие общие роли
│ │ └── tasks
│ │ ├── disable_monitoring.yml
│ │ └── update_edit_pghba.yml
│ ├── pangolin_manager # Устаревшие роли pangolin_manager
│ │ └── tasks
│ │ └── update_post.yml
│ ├── postgresql # Устаревшие роли PostgreSQL
│ │ └── tasks
│ │ └── generate_certs.yml
│ └── tests # Устаревшие роли тестирования целостности установки/обновления
│ └── tasks
│ ├── consistency.yml
│ ├── interface.yml
│ ├── main.yml
│ ├── recovery.yml
│ └── sub_interface.yml

├── doc # Роли, связанные с документацией
│ └── tasks
│ ├── backup.yml # Создание резервной копии старой документации
│ ├── main.yml # Главная роль по доставке документации на стенд
│ └── revert.yml # Возврат исходного состояния документации

├── etcd # Группа ролей для настройки etcd
│ ├── tasks
│ │ ├── install.yml # Установка/обновление etcd
│ │ └── main.yml # Корневая роль при настройке etcd
│ └── templates
│ ├── etcd.conf.j2
│ ├── etcd.logrotate.j2
│ └── etcd.service.j2

├── finally # Группа ролей, отвечающая за финализацию процедуры обновления
│ └── tasks
│ ├── finish_update.yml # Завершение процедуры обновления
│ ├── main.yml # Корневая роль процедуры финализации
│ ├── switch_to_original_configs.yml # Переключение на исходные конфигурационные файлы
│ └── turn_off_etcd_v2.yml # Отключение поддержки ETCD V2

├── pangolin_auth_password # Группа ролей утилиты pangolin_auth_password
│ └── tasks
│ ├── install_and_update.yml # Роли установки и обновления pangolin_auth_password
│ ├── main.yml # Корневая роль pangolin_auth_password
│ └── revert.yml # Возврат компонента pangolin_auth_password к исходному состоянию

├── pangolin_auth_reencrypt # Группа ролей, отвечающая за утилиту pangolin_auth_reencrypt
│ ├── tasks
│ │ ├── backup.yml # Создание резервной копии pangolin_auth_reencrypt
│ │ ├── check_and_stop.yml # Проверка утилиты pangolin_auth_reencrypt и ее остановка перед обновлением
│ │ ├── install_and_update.yml # Установка и обновление утилиты pangolin_auth_reencrypt
│ │ ├── main.yml # Корневая роль pangolin_auth_reencrypt
│ │ └── revert.yml # Возврат утилиты pangolin_auth_reencrypt к исходному состоянию
│ └── templates
│ └── pangolin-auth-reencrypt.service.j2

├── pangolin_backup_tools # Группа ролей, отвечающих за утилиты резервного копирования `pangolin_backup_tools`
│ ├── tasks
│ │ ├── backup.yml # Создание резервной копии pangolin_backup_tools
│ │ ├── check_exists_backup_tools.yml # Проверка состояния pangolin_backup_tools на стенде
│ │ ├── install_and_update.yml # Установка и обновление утилиты pangolin_backup_tools
│ │ ├── main.yml # Корневая роль pangolin_backup_tools
│ │ ├── return_original_scripts.yml # Возврат исходных скриптов
│ │ └── revert.yml # Возврат утилиты pangolin_backup_tools к исходному состоянию
│ └── templates
│ └── backup-tools-env.j2

├── pangolin_certs_rotate # Группа ролей, отвечающих за утилиту pangolin_certs_rotate
│ ├── tasks
│ │ ├── backup.yml # Создание резервной копии pangolin_certs_rotate
│ │ ├── check_and_stop.yml # Проверка и остановка pangolin_certs_rotate
│ │ ├── create_and_edit_cfg.yml # Создание и редактирование файлов конфигурации pangolin_certs_rotate
│ │ ├── install_and_update.yml # Установка и обновление утилиты pangolin_certs_rotate
│ │ ├── main.yml # Корневая роль pangolin_certs_rotate
│ │ └── revert.yml # Возврат утилиты pangolin_certs_rotate к исходному состоянию
│ └── templates
│ ├── pangolin-certs-rotate.j2
│ └── pangolin-certs-rotate.service.j2

├── pangolin_checks # Группа ролей, отвечающих за проверки перед установкой/обновлением
│ ├── tasks
│ │ ├── main.yml # Корневая роль проверок перед установкой
│ │ ├── pangolin_assert.yml # Проверка переменных и состояния стенда
│ │ ├── pangolin_change.yml # Изменение настроек стенда на время обновления
│ │ ├── pangolin_common.yml # Общие проверки
│ │ ├── pangolin_handlers_error.yml # Система сохранения и вывода ошибок
│ │ ├── pangolin_install.yml # Проверки для установки
│ │ ├── pangolin_update.yml # Проверки для обновления
│ │ └── revert.yml # Возврат стенда и компонентов к исходному состоянию
│ └── templates
│ ├── 10-kmadmin_pg.j2
│ └── 10-postgres.j2

├── pangolin_dbms # Группа ролей, отвечающих за компонент pangolin_dbms
│ ├── files
│ │ └── fix-[CVE-2024-4317](https://pangolin.sbertech.ru/cve-policy?cve=CVE-2024-4317).sql
│ ├── tasks
│ │ ├── add_and_configure_db_user_with_enc_space.yml # Добавление и конфигурация пользователя БД с зашифрованным пространством
│ │ ├── backup.yml # Создание резервной копии
│ │ ├── copy_3rdparty_components.yml # Копирование компонентов раздела 3rdparty
│ │ ├── create_encrypt_password.yml # Создание и засекречивание паролей
│ │ ├── create_local_backup.yml # Создание локальной резервной копии
│ │ ├── create_p12_config_files.yml # Создание конфигурационных файлов p12
│ │ ├── fix_cve.yml # Применение исправления уязвимостей CVE
│ │ ├── fix_pg_start_backup_before_major_update.yml # Исправление pg_start_backup перед обновлением с переносом данных
│ │ ├── generate_and_update_db_user_pass.yml # Генерация и обновление пароля db_user
│ │ ├── install.yml # Роль установки pangolin_dbms
│ │ ├── main.yml # Корневая роль pangolin_dbms
│ │ ├── mv_user_tablespaces.yml # Перемещение пользовательских табличных пространств
│ │ ├── pg_inplace_upgrade.yml # Роль обновления типа inplace_upgrade
│ │ ├── pg_upgrade_log_print.yml # Роль вывода лога обновления pg_upgrade
│ │ ├── revert_major.yml # Возврат к исходному состоянию в случае обновления с переносом данных
│ │ ├── revert_minor_shutdown.yml # Возврат к исходному состоянию в случае обновления исполняемых файлов с выключением БД
│ │ ├── revert_minor.yml # Возврат к исходному состоянию в случае обновления исполняемых файлов
│ │ ├── swidtag_file.yml # Роль, отвечающая за доставку SWIDTAG
│ │ ├── update_major.yml # Роль обновления с переносом данных
│ │ ├── update_minor_shutdown.yml # Роль обновления исполняемых файлов с выключением БД
│ │ ├── update_minor.yml # Роль обновления исполняемых файлов
│ │ ├── update_post_major.yml # Действия после обновления исполняемых файлов
│ │ └── update_pre_major.yml # Действия перед обновлением исполняемых файлов
│ └── templates
│ ├── pg_receivewal.service.j2
│ ├── pkcs12_cfg.j2
│ └── postgresql.service.j2

├── pangolin_diagnostic_tool # Группа ролей, отвечающих за компоненты pangolin_diagnostic_tool
│ └── tasks
│ ├── install_and_update.yml # Установка и обновление утилит pangolin_diagnostic_tool
│ ├── main.yml # Корневая роль pangolin_diagnostic_tool
│ └── revert.yml # Возврат утилит pangolin_diagnostic_tool к исходному состоянию

├── pangolin_license # Группа ролей, отвечающая за лицензирование Pangolin
│ └── tasks
│ ├── backup.yml # Создание резервной копии лицензии
│ ├── install.yml # Установка лицензии
│ ├── main.yml # Корневая роль pangolin_license
│ ├── revert.yml # Возврат лицензии к исходному состоянию
│ ├── scout_install.yml # Проверка лицензии при установке
│ └── scout_update.yml # Проверка лицензии при обновлении

├── pangolin_manager # Группа ролей, отвечающих за компонент pangolin_manager
│ ├── tasks
│ │ ├── backup.yml # Создание резервной копии pangolin_manager
│ │ ├── install.yml # Установка pangolin_manager
│ │ ├── main.yml # Корневая роль pangolin_manager
│ │ ├── pangolin_dcs_arbiter.yml # Настройка pangolin_dcs для роли арбитра
│ │ ├── pending_restart.yml # Проверка patroni на состояние pending_restart
│ │ ├── revert.yml # Возврат pangolin_manager к исходному состоянию
│ │ ├── update_define_auth_password.yml # Определение файлов конфигурации и паролей авторизации patroni api при обновлении
│ │ ├── update_define_roles_of_nodes.yml # Определение ролей узлов кластера при обновлении
│ │ ├── update_run_switchover.yml # Запуск переключения при обновлении
│ │ ├── update_wait_cluster_synchronization.yml # Ожидание синхронизации кластера при обновлении
│ │ ├── update_with_patronictl.yml # Обновление при наличии patronictl
│ │ └── update.yml # Скрипты обновления pangolin_manager
│ └── templates
│ └── pangolin-manager.service.j2

├── pangolin_pooler # Группа ролей, отвечающая за компонент pangolin_pooler
│ ├── tasks
│ │ ├── backup.yml # Создание резервной копии pangolin_pooler
│ │ ├── install.yml # Установка компонента pangolin_pooler
│ │ ├── main.yml # Корневая роль pangolin_pooler
│ │ ├── revert.yml # Возврат pangolin_pooler к исходному состоянию
│ │ ├── update_new.yml # Обновленные скрипты обновления pangolin_pooler
│ │ └── update.yml # Скрипты обновления pangolin_pooler
│ └── templates
│ ├── pangolin-pooler-restart.sh.j2
│ ├── pangolin-pooler.service.j2
│ └── userlist.txt.j2

├── pangolin_scout # Группа ролей, отвечающих за разведку перед обновлением
│ ├── files
│ │ ├── search_deprecated_data_types.sql
│ │ ├── search_deprecated_functions.sql
│ │ ├── search_deprecated_language.sql
│ │ ├── search_deprecated_operator_class.sql
│ │ ├── search_deprecated_operator_family.sql
│ │ ├── search_deprecated_operators.sql
│ │ ├── search_deprecated_polymorph_usage.sql
│ │ ├── search_deprecated_types_infoschema.sql
│ │ ├── search_deprecated_types_missing.sql
│ │ ├── search_deprecated_xid_table.sql
│ │ ├── search_tables_linked_fk_ext_tables.sql
│ │ ├── search_tables_with_autovacuum_freeze_max_age_problem.sql
│ │ ├── search_views_depend_on_ext_functions.sql
│ │ └── search_views_depend_on_ext_views_or_tables.sql
│ └── tasks
│ ├── main.yml # Корневая роль разведки перед обновлением
│ ├── pangolin_assert.yml # Проверки критически важных переменных и состояния стенда
│ ├── pangolin_backup_tools.yml # Проверка pangolin_backup_tools
│ ├── pangolin_common.yml # Общие проверки pangolin_common
│ ├── pangolin_dbms_migrate_check.yml # Проверка возможности миграции данных
│ ├── pangolin_dbms.yml # Проверки pangolin_dbms
│ ├── pangolin_handlers_error.yml # Система сохранения и вывода ошибок
│ ├── pangolin_information_messages.yml # Информационные сообщения
│ ├── pangolin_manager.yml # Проверки pangolin_manager
│ ├── pangolin_pooler_new.yml # Проверки новой версии pangolin_pooler
│ └── pangolin_pooler.yml # Проверки pangolin_pooler

├── pangolin_security_utilities # Группа ролей pangolin_security_utilities
│ └── tasks
│ ├── create_file_for_secret_dump.yml # Создание файла для хранилища секретов
│ ├── install_and_update.yml # Роли, отвечающие за установку и обновления
│ ├── main.yml # Корневая роль запуска pangolin_security_utilities
│ ├── revert.yml # Возврат к исходному состоянию
│ └── setup_kms_credentials.yml # Настройка хранилища секретов

├── pangolin_timescaledb # Группа ролей для поддержки timescaledb
│ └── tasks
│ ├── check.yml # Проверка перед обновлением
│ ├── install_and_update.yml # Роли установки и обновления timescaledb
│ └── revert.yml # Возврат расширения к исходному состоянию

├── pangolin_tuner # Группа ролей утилиты pangolin_tuner
│ └── tasks
│ ├── main.yml # Корневая роль pangolin_tuner
│ ├── revert.yml # Возврат утилиты pangolin_tuner к исходному состоянию
│ └── update.yml # Процедура обновления утилиты pangolin_tuner

├── recovery # Группа ролей, отвечающая за процедуру восстановления стенда до исходного состояния в случае ошибки обновления
│ └── tasks
│ ├── control_services_started.yml # Роль контроля запуска сервисов
│ ├── control_services_stopped.yml # Роль контроля остановки сервисов
│ ├── finally.yml # Восстановление с этапа завершения обновления
│ ├── main_major.yml # Восстановление в случае обновления с переносом данных
│ ├── main_minor.yml # Восстановление в случае обновления исполняемых файлов
│ ├── main.yml # Корневая роль восстановления в случае критической ошибки при обновлении
│ ├── pangolin_auth_reencrypt.yml # Восстановление компонента pangolin_auth_reencrypt
│ ├── pangolin_backup_tools.yml # Восстановление компонента pangolin_backup_tools
│ ├── pangolin_certs_rotate.yml # Восстановление компонента pangolin_certs_rotate
│ ├── pangolin_checks.yml # Восстановление компонентов проверки обновления
│ ├── pangolin_dbms.yml # Восстановление компонента pangolin_dbms
│ ├── pangolin_diagnostic_tool.yml # Восстановление компонентов pangolin_diagnostic_tool
│ ├── pangolin_manager.yml # Восстановление компонента pangolin_manager
│ ├── pangolin_pooler.yml # Восстановление компонента pangolin_pooler
│ ├── pangolin_security_utilities.yml # Восстановление компонента pangolin_security_utilities
│ └── pangolin_tuner.yml # Восстановление компонента pangolin_tuner

└── tls # Группа ролей для реализации поддержки TLS
└── tasks
├── enable_tls.yml # Включение поддержки TLS в БД
└── main.yml # Корневая роль TLS