andrelohmann.maxmind
maxmind
内容
使用这个角色来安装 geoip 和 maxmind 数据库。
需要一个 maxmind 账户。要创建 maxmind 账户,请按照以下链接操作:
需求
这个角色需要 ubuntu。
角色变量
设置 account_id、license_key 和 editions ids:
maxmind_account_id: __你的账户 ID__
maxmind_license_key: __你的许可密钥__
maxmind_edition_ids: GeoLite2-ASN GeoLite2-City GeoLite2-Country
maxmind_geoipupdate_run: true # 在安装过程中运行 geoipupdate
maxmind_geoipupdate_cron: true # 创建一个定期运行 geoipupdate 的 cron 任务
示例剧本
- hosts: maxmind
roles:
- { role: andrelohmann.maxmind }
角色开发
特殊用途
此存储库支持以下角色开发功能:
- yamllint
- ansible-lint
- molecule 测试
- github 操作
- 自动版本更新
- 更新 ansible-galaxy
- 显示构建状态
- 在 vagrant 中进行测试(用于开发)
- 使用 molecule 进行测试(在 vagrant 内部或外部)
- 在 docker 容器中进行测试
- 在 vscode 中测试和开发
前提条件
- 安装 Virtualbox + Vagrant(如果要使用 vagrant 测试角色,才需要)
- Docker Desktop
- Visual Studio Code + 远程扩展包(依赖项在 .vscode/extensions.json 中定义)
开发设置
此 ansible 角色使用 molecule 进行测试开发。它的开发基于视觉工作室代码和相应的开发容器,解决所有必要工具的依赖(ansible, linter, molecule)。
角色将在 ubuntu jammy 上进行测试。
要从开发容器中启动 molecule 测试容器,需要将 docker 套接字绑定到开发容器中。
重要文件夹和文件
.devcontainer
- 定义用于开发容器的 Dockerfile
- 配置开发容器启动(例如,绑定挂载 docker 套接字)
molecule/default/Dockerfile.js
- 用作 molecule/default/molecule.yml 中定义的所有平台的模板
- 准备支持 systemd 服务的环境(对于某些基于 systemd 的 ansible 角色是必要的)
- 安装运行 ansible 所需的所有要求
- 文件与 molecule/default/molecule.yml 中平台的属性对齐
- 更多信息 - 请查看 molecule 文档
使用
Visual Studio Code
- 切换到角色的根目录并启动 vscode
code .
- 在开发容器中可以使用以下运行命令
yamllint .
ansible-lint .
molecule create
molecule test
Vagrant + Virtualbox
- 切换到角色的根目录
- 切换到 vagrant 文件夹
- 启动并进入 vagrant 机器
vagrant up
vagrant ssh
- 切换到角色文件夹
cd /etc/ansible/roles/ansible-role- [tab]
- 现在可以运行所有测试
yamllint .
ansible-lint .
molecule create
molecule test
构建和发布过程
该 ansible 角色定义了一系列 github 工作流以运行 molecule 测试和发布管理。
发布管理需要一些设置。
保护主分支
- 设置 -> 分支 -> 添加分支保护规则
- 分支模式名称 -> main 或 master(取决于你的默认分支)
- 保护匹配分支 -> 勾选 "在合并前需要拉取请求"
- "需要批准" 可以根据需要单独处理
给予 GITHUB_TOKEN 读写权限
- 设置 -> 操作 -> 一般 -> 工作流权限 -> 读写权限
提交信息
提交信息应遵循特定格式以实现补丁、次要或主要语义版本更新。
补丁
0.0.x
fix(single_word): 描述
次要
0.x.0
feat(single_word): 描述
主要
x.0.0
perf(single_word): 描述
BREAKING CHANGE: 描述重大变更
“BREAKING CHANGE: ” 在第二行及以后的行中非常重要。在单行提交消息中,主要版本更新将被忽略。
添加 GALAXY_API_KEY 秘密
- 在 https://galaxy.ansible.com/ 中使用你的 github 账户进行身份验证。
- 从首选项 -> API 密钥中获取 galaxy api 密钥
- 打开你的 github 角色存储库
- 设置 -> 秘密和变量 -> 操作 -> 新的存储库秘密
- 用 "GALAXY_API_KEY" 作为键,用复制的 galaxy API 密钥作为值
许可证
MIT
作者信息
© Andre Lohmann (及其他人) 2024
https://github.com/andrelohmann
维护者联系方式
- Andre Lohmann <lohmann.andre (at) gmail (dot) com>