# Secrets Role Ansible роль для сохранения секретов на удаленной машине. ## Описание Роль позволяет безопасно сохранять секреты на удаленной машине в виде файлов с ограниченными правами доступа. Поддерживает сохранение переменных как файлов и копирование существующих файлов. ## Параметры ### Обязательные параметры - `secrets_dest` - директория, куда будут сохранены секреты в виде файлов - `secrets_user` - имя пользователя, который будет владеть директорией и файлами - `secrets_group` - группа, которая будет владеть директорией и файлами (по умолчанию равна `secrets_user`) ### Опциональные параметры - `secrets_vars` - список переменных, из которых будут извлечены секреты (по умолчанию: `[]`) - `secrets_files` - список файлов, которые будут скопированы "как есть" (по умолчанию: `[]`) - `secrets_dir_mode` - права доступа для директории (по умолчанию: `0750`) - `secrets_file_mode` - права доступа для файлов с секретами (по умолчанию: `0400`) ## Функциональность 1. Создает директорию `secrets_dest` если она не существует 2. Сохраняет каждую переменную из `secrets_vars` как файл с таким же именем 3. Копирует файлы из `secrets_files` в директорию назначения 4. Устанавливает права доступа `0400` для всех файлов с секретами 5. Назначает указанного пользователя и группу владельцами директории и файлов ## Пример использования ```yaml - name: Save application secrets include_role: name: secrets vars: secrets_dest: /opt/myapp/secrets secrets_user: myapp secrets_group: myapp secrets_vars: - database_password - api_key - jwt_secret secrets_files: - /path/to/ssl/certificate.pem - /path/to/ssl/private.key ``` ## Безопасность - Все файлы с секретами создаются с правами `0400` (только чтение для владельца) - Директория создается с правами `0750` (полный доступ для владельца, чтение и выполнение для группы) - Используется `no_log: true` для предотвращения вывода секретов в логи Ansible