vault_snapshot
Ansible роль vault_snapshot
Настройка vault_snapshot на Vault.
GitHub | GitLab | Загрузки | Версия |
---|---|---|---|
Пример Playbook
Этот пример взят из molecule/default/converge.yml
и тестируется при каждом пуше, запросе на вытягивание и релизе.
---
- name: Свести
hosts: all
become: true
gather_facts: true
pre_tasks:
- name: Прочитать токен с удаленной машины
ansible.builtin.slurp:
src: /root/.vault-token
register: token_raw
roles:
- role: robertdebock.vault_snapshot
vault_snapshot_token: "{{ token_raw['content'] | b64decode }}"
vault_snapshot_ssl_verify: false
vault_snapshot_schedules:
- name: каждый час
interval_seconds: 3600
retain: 24
path_prefix: /opt/vault/snapshots/
storage_type: local
local_max_space: 1073741824
- name: каждый час-aws
interval_seconds: 3600
retain: 24
path_prefix: /hourly
storage_type: aws-s3
aws_s3_bucket: my-bucket
aws_s3_region: eu-central-1
aws_access_key_id: some_key
aws_secret_access_key: some_secret
aws_s3_enable_kms: false
- name: каждый час-azure
interval_seconds: 3600
retain: 24
path_prefix: /hourly/
storage_type: azure-blob
azure_container_name: my-blob
azure_account_name: some_account
azure_account_key: some_key
Машину нужно подготовить. В CI это делается с помощью molecule/default/prepare.yml
:
---
- name: Подготовить
hosts: all
become: true
gather_facts: false
roles:
- role: robertdebock.bootstrap
- role: robertdebock.core_dependencies
- role: robertdebock.hashicorp
- role: robertdebock.vault
vault_type: ent
vault_hardening_disable_swap: false
- role: robertdebock.vault_configuration
vault_configuration_license: "{{ lookup('ansible.builtin.env', 'VAULT_LICENSE') }}"
vault_configuration_listener_tcp:
address: "127.0.0.1:8200"
cluster_address: "127.0.0.1:8201"
tls_disable: true
vault_configuration_storage_raft:
path: "/opt/vault/data"
node_id: "{{ ansible_hostname }}"
tasks:
- name: Сбросить обработчики
ansible.builtin.meta: flush_handlers
- name: Запустить Vault
ansible.builtin.service:
name: vault
state: started
- name: Инициализировать Vault
ansible.builtin.command:
cmd: vault operator init -format=yaml
register: vault_init_raw
environment:
VAULT_ADDR: "https://localhost:8200"
VAULT_SKIP_VERIFY: "true"
changed_when: true
- name: Сохранить выходные данные vault_init_raw в формате YAML
ansible.builtin.set_fact:
vault_init: "{{ vault_init_raw.stdout | from_yaml }}"
- name: Сохранить root_token
ansible.builtin.copy:
content: "{{ vault_init.root_token }}"
dest: /root/.vault-token
owner: root
group: root
mode: "0640"
- name: Разблокировать Vault
ansible.builtin.command:
cmd: vault operator unseal {{ item }}
loop: "{{ vault_init.unseal_keys_b64 }}"
environment:
VAULT_ADDR: "https://localhost:8200"
VAULT_SKIP_VERIFY: "true"
changed_when: true
Также смотрите полное объяснение и пример о том, как использовать эти роли.
Переменные роли
Значения по умолчанию для переменных установлены в defaults/main.yml
:
---
# файл по умолчанию для vault_snapshot
# Установить адрес экземпляра vault. Похож на `VAULT_ADDR`.
vault_snapshot_address: "https://localhost:8200"
# Установить токен для подключения к Vault. Похож на `VAULT_TOKEN`.
vault_snapshot_token: ""
# Список снимков для настройки. Пожалуйста, посмотрите в `molecule/default/converge.yml` для полного примера.
vault_snapshot_schedules: []
# Должна ли быть отключена проверка SSL сертификата?
vault_snapshot_ssl_verify: true
Требования
- пакеты pip, указанные в requirements.txt.
Состояние используемых ролей
Следующие роли используются для подготовки системы. Вы можете подготовить вашу систему другим способом.
Требования | GitHub | GitLab |
---|---|---|
robertdebock.bootstrap | ||
robertdebock.core_dependencies | ||
robertdebock.hashicorp | ||
robertdebock.vault | ||
robertdebock.vault_configuration |
Контекст
Эта роль является частью многих совместимых ролей. Ознакомьтесь с документацией этих ролей для получения дополнительной информации.
Вот обзор связанных ролей:
Совместимость
Эта роль была протестирована на следующих образах контейнеров:
контейнер | теги |
---|---|
Amazon | Candidate |
Debian | все |
EL | 9 |
Fedora | 39 |
Ubuntu | все |
Минимальная версия Ansible, необходимая для работы, - 2.12, тесты проводились на:
- предыдущей версии.
- текущей версии.
- версии для разработки.
Если вы нашли проблемы, пожалуйста, зарегистрируйте их на GitHub.
Лицензия
Информация об авторе
Пожалуйста, рассмотрите возможность финансирования меня.
ansible-galaxy install robertdebock/ansible-role-vault_snapshot