idiv-biodiversity.ssl_certificates

Ansible 角色:SSL 证书

一个安装 SSL 证书的 Ansible 角色。

目录

要求

  • Ansible 2.4+

角色变量

这个角色只需要一个变量,虽然刚开始看起来有点冗长。这个变量基本上是一个证书列表。每个证书需要一个 key 和一个 cert,并可选地指定一个 chain

ssl_certificates:
  - name: 用于 blah.example.com  somehosts SSL 证书
    key:
      content: '{{ vault_ssl_certificate_key }}'
      dest: /path/to/key.pem
    cert:
      src: path/to/cert.pem
      dest: /path/to/cert.pem
    chain:
      src: path/to/chain
      dest: /path/to/chain
  - name: 用于 bippy.example.com  somehosts SSL 证书
    key:
      ...

注意: 推荐将密钥放在 保险库 中!

注意: 确保 Ansible 能找到 src 文件。group_vars/grouphost_vars/host 不会自动搜索。如果想将文件放在那里,可以使用例如 host_vars/host/example.com.pem

注意: keycertchain 也允许设置自定义的 setype,默认值是 cert_t

注意: key 还允许通过 ACL 条目设置一个列表,以提供额外的读取权限。这是为了需要访问密钥的服务,这些服务不是以 root 身份启动然后再降低权限的。

ssl_certificates:
  - name: 用于 blah.example.com  somehosts SSL 证书
    key:
      content: '{{ vault_ssl_certificate_key }}'
      dest: /path/to/key.pem
      acl_users:
        - service-user-a
        - service-user-b
    cert:
      ...

重用目标变量

你可以重用 目标 变量用于其他角色的配置变量,例如:

---

ssl_certificates:
  - name: 用于 blah.example.com  somehosts SSL 证书
    ...
  - name: ...
    ...

# 由于 ssl_certificates 是一个列表,你需要用 [n] 索引

apache_ssl_cert_key_file: '{{ ssl_certificates[0].key.dest }}'
apache_ssl_cert_file: '{{ ssl_certificates[0].cert.dest }}'
apache_ssl_cert_chain_file: '{{ ssl_certificates[0].chain.dest }}'

# 这里使用第二个密钥用于 postfix

postfix_smtp_tls_key_file: '{{ ssl_certificates[1].key.dest }}'
postfix_smtp_tls_cert_file: '{{ ssl_certificates[1].cert.dest }}'

postfix_smtpd_tls_key_file: '{{ ssl_certificates[1].key.dest }}'
postfix_smtpd_tls_cert_file: '{{ ssl_certificates[1].cert.dest }}'

...

依赖

无。

示例剧本

添加到 requirements.yml

---

- src: idiv-biodiversity.ssl_certificates

...

下载:

$ ansible-galaxy install -r requirements.yml

顶级剧本

编写一个顶级剧本:

---

- name: head 服务器
  hosts: head

  roles:
    - role: idiv-biodiversity.ssl_certificates
      tags:
        - certificates
        - ssl-certificates

...

角色依赖

meta/main.yml 中定义角色依赖:

---

dependencies:

  - role: idiv-biodiversity.ssl_certificates
    tags:
      - certificates
      - ssl-certificates

...

许可证

MIT

作者信息

这个角色是由 Christian Krause(GitHub 上的 wookietreiber)和 Dirk Sarpe(GitHub 上的 dirks)于 2019 年创建的,二人都是 德国综合生物多样性研究中心 (iDiv) 的系统管理员,基于 Ben Langenberg(GitHub 上的 sloan87)的草稿。

关于项目

install SSL certificates

安装
ansible-galaxy install idiv-biodiversity.ssl_certificates
许可证
mit
下载
47k