ansibleguy.infra_certs
Ansible 角色 - 证书生成器
Ansible 角色用于在 Linux 服务器上创建证书。
测试过:
- Debian 11
- Debian 12
安装
# 最新版
ansible-galaxy role install git+https://github.com/ansibleguy/infra_certs
# 从 Galaxy 安装
ansible-galaxy install ansibleguy.infra_certs
# 或者安装到自定义角色路径
ansible-galaxy install ansibleguy.infra_certs --roles-path ./roles
# 安装依赖
ansible-galaxy install -r requirements.yml
使用方法
想要一个简单的 Ansible 图形界面吗?可以查看我的 Ansible WebUI
注意事项
自签名和最小 CA 模式每次运行只会创建一个证书。
重新运行时可以使用 'certs' 标签来节省一些开销。
LetsEncrypt 模式会根据定义创建/删除多个证书。
配置示例
LetsEncrypt 配置示例:
certs:
mode: 'le_certbot'
path: '/etc/apache2/ssl'
letsencrypt:
certs:
myNiceSite:
domains: ['myRandomSite.net', 'ansibleguy.net']
email: '[email protected]'
service: 'apache'
自签名配置示例:
certs:
mode: 'selfsigned' # 或 'snakeoil'(如果需要更快)
path: '/etc/nginx/ssl'
group_key: 'nginx'
owner_cert: 'nginx'
cert:
cn: '我的伟大证书!'
org: 'AnsibleGuy'
country: 'AT'
email: '[email protected]'
domains: ['mySoGreat.site', 'ansibleguy.net']
ips: ['192.168.44.2']
pwd: !vault ...
最小 CA 配置示例:
certs:
mode: 'ca'
path: '/etc/ca/certs'
mode_key: '0400'
cert:
name: 'custom_file_name' # 将会附加扩展名
cn: '我的伟大证书!'
org: 'AnsibleGuy'
country: 'AT'
email: '[email protected]'
domains: ['mySoGreat.site', 'ansibleguy.net']
ca:
path: '/etc/ca'
cn: '超级证书颁发机构'
org: 'AnsibleGuy'
country: 'AT'
email: '[email protected]'
pwd: !vault ...
使用最小 CA 时,可以通过更改 'cert' 配置多次运行角色来创建多个由 CA 签名的证书。
您可能希望使用 'ansible-vault' 加密您的密码:
ansible-vault encrypt_string
执行
运行剧本:
ansible-playbook -K -D -i inventory/hosts.yml playbook.yml --ask-vault-pass
还有一些有用的 标签 可用:
- certs => 忽略 CA 任务;仅生成证书
- selfsigned
- config
- certs
为了解决错误,您可以在运行时设置 'debug' 变量:
ansible-playbook -K -D -i inventory/hosts.yml playbook.yml -e debug=yes
功能
软件包安装
- Ansible 依赖(_最小_)
- 加密依赖
配置
四种可能模式:
- 生成 自签名 证书
- 使用 最小证书颁发机构 创建签名证书
- 配置 LetsEncrypt-Certbot 生成公开有效的证书
- 支持 Nginx 和 Apache
- 主机需要有指向有效公共 DNS 记录
- 需要通过 80/tcp 端口公开可达
默认配置:
- 模式 => 自签名
信息
注意: 目前该角色仅支持基于 Debian 的系统。
注意: 大多数角色功能可以选择启用或禁用。
有关所有可用选项,请查看位于 主默认文件 的默认配置!
注意: 如果您需要 批量管理证书,可以查看 ansibleguy.infra_pki 角色,该角色使您能够创建和管理完整的 公钥基础设施。
注意: 证书文件名(_名称变量或公共名称)将进行更新:
- 空格会转换为下划线
- 除 "0-9a-zA-Z." 以外的所有字符将被移除
- 文件扩展名(_crt/chain.crt/key/csr_)将被附加
警告: 并非您提供的每个设置/变量都会被检查有效性。错误的配置可能会导致角色失效!
信息: 为了使 LetsEncrypt 更新正常工作,必须允许对以下地址的出站连接:
80/tcp,443/tcp+udp 到 acme-v02.api.letsencrypt.org,staging-v02.api.letsencrypt.org(_调试模式_)和 r3.o.lencr.org
关于项目
Meat-role to generate/manage certificates for other roles
安装
ansible-galaxy install ansibleguy.infra_certs
许可证
other
下载
7.6k
拥有者
[email protected] | GPG: https://badges.ansibleguy.net/public.gpg