robertdebock.vault_configuration

Ansible角色 vault_configuration

在您的系统上配置 HashiCorp Vault。

GitHub GitLab 下载量 版本
github gitlab downloads 版本

示例剧本

此示例来自 molecule/default/converge.yml,并在每次推送、拉取请求和发布时进行测试。

---
- name: 收敛
  hosts: all
  become: true
  gather_facts: true

  roles:
    - role: robertdebock.vault_configuration

机器需要准备好。在 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_hardening_disable_swap: false

另请查看 完整的解释和示例 以了解如何使用这些角色。

角色变量

变量的默认值在 defaults/main.yml 中设置:

---
# vault_configuration 的默认文件

# 拥有此角色管理的文件和目录的所有者和组。
vault_configuration_owner: vault
vault_configuration_group: vault

# 设置许可证。在使用 Vault 企业版时必需。
# 可以通过设置角色 `robertdebock.vault` 安装 Vault 企业版:
# - `vault_type` 设置为 `"ent"` 或 `"hsm"`。
# vault_configuration_license: "XYZABC"

# 指定 TLS 材料的存放位置。通常为 `/opt/vault/tls`。
vault_configuration_tls_directory: "/opt/vault/tls"

#
# 全局设置
#

# 这些是“全局”设置。
# 下面使用的值来自: https://developer.hashicorp.com/vault/docs/configuration
vault_configuration_max_lease_ttl: "768h"
vault_configuration_default_lease_ttl: "768h"
vault_configuration_api_addr: "https://{{ ansible_fqdn }}:8200"
vault_configuration_cluster_addr: "https://{{ ansible_fqdn }}:8201"
vault_configuration_disable_cache: false
vault_configuration_disable_mlock: true
vault_configuration_disable_clustering: false
vault_configuration_plugin_directory: ""
vault_configuration_ui: false
vault_configuration_log_level: ""

#
# 监听器设置
#

# 这些是“监听器”设置,可以有多个监听器。
vault_configuration_listeners:
  - type: "tcp"
    address: "127.0.0.1:8200"
    cluster_address: "127.0.0.1:8201"
    http_idle_timeout: "5m"
    http_read_header_timeout: "10s"
    http_read_timeout: "30s"
    http_write_timeout: "0"
    max_request_size: 33554432
    max_request_duration: "90s"
    proxy_protocol_behavior: ""
    proxy_protocol_authorized_addrs: ""
    tls_disable: false
    # 您可以指定文件(`tls_cert_file`)或文件内容(`tls_cert`)。
    # tls_cert_file: "/opt/vault/tls/vault.crt"
    tls_cert: |
      -----BEGIN CERTIFICATE-----
      ...
      -----END CERTIFICATE-----
    # 您可以指定文件(`tls_file_key`)或文件内容(`tls_key`)。
    # tls_key_file: "/opt/vault/tls/vault.key"
    tls_key: |
      -----BEGIN PRIVATE KEY-----
      ...
      -----END PRIVATE KEY-----
    tls_min_version: "tls12"
    ...
    
# 存储设置
#

# “storage” 选项支持多种类型:https://developer.hashicorp.com/vault/docs/configuration/storage
# 通过取消注释所需的“storage”选项来选择一个。只能使用一个 `vault_configuration_storage_*` 映射。

# 这些是“raft”设置。
vault_configuration_storage_raft:
  path: "/opt/vault/data"
  node_id: "{{ ansible_hostname }}"
  performance_multiplier: 0
  ...

# (UN)SEAL 设置
#

# 您可以配置 Vault 以自动解封。每种类型有一组唯一的参数。
# 只能使用其中一个 `vault_configuration_seal_*` 映射。
# ...

要求

使用角色的状态

以下角色用于准备系统。您可以使用其他方式准备系统。

要求 GitHub GitLab
robertdebock.bootstrap Build Status GitHub Build Status GitLab
robertdebock.core_dependencies Build Status GitHub Build Status GitLab
robertdebock.hashicorp Build Status GitHub Build Status GitLab
robertdebock.vault Build Status GitHub Build Status GitLab

背景

此角色是许多兼容角色的一部分。有关更多信息,请查看 这些角色的文档

以下是相关角色的概述: 依赖关系

兼容性

此角色已在这些 容器映像 上测试:

容器 标签
Amazon 候选人
Debian 所有
EL 9
Fedora 38, 39
Ubuntu 所有

所需的最低 Ansible 版本为 2.12,已测试:

  • 先前版本
  • 当前版本
  • 开发版本

如果您发现问题,请在 GitHub 上注册。

许可证

Apache-2.0

作者信息

robertdebock

请考虑 赞助我

关于项目

Configure HashiCorp Vault on your system.

安装
ansible-galaxy install robertdebock.vault_configuration
许可证
apache-2.0
下载
14.9k
拥有者
I know my way around (Linux) infrastructure, have a passion for automation, Docker, Ansible, Molecule and ci/cd.