andrelohmann.odoo
odoo
内容
使用此角色在您的 Ubuntu 服务器上从源安装最新的 Odoo 版本。
需求
此角色需要 Ubuntu。
角色变量
设置 Odoo 变量和配置参数
odoo_release: latest # 例如 16, 17
# 将 odoo_source_install 设置为 false,以从 nightly 包安装
odoo_source_install: false
odoo_config: []
# 使用键 / 值格式设置配置参数
# - key: db_name
# value: odoo
# - key: admin_passwd
# value: S3cr3t!
# 预填数据库
odoo_init_databases: []
#- database: odoo_1
# language: de_DE
示例剧本
- hosts: odoo
become: yes
roles:
- { role: andrelohmann.odoo }
角色开发
特殊目的
此库支持角色开发的以下功能:
- yamllint
- ansible-lint
- molecule 测试
- github 操作
- 自动版本升级
- 更新 ansible-galaxy
- 显示构建状态
- 在 Vagrant 中测试(出于开发目的)
- 使用 molecule 测试(在 Vagrant 内或外)
- 针对 Docker 容器测试
- 在 vscode 中测试和开发
先决条件
自动化测试您的 Ansible 角色与 molecule 和 GitHub Actions
- 安装 Virtualbox + Vagrant(只有在使用 vagrant 测试角色时需要)
- Docker Desktop
- Visual Studio Code + 远程扩展包(依赖项在 .vscode/extensions.json 中定义)
开发设置
此 Ansible 角色使用 molecule 进行测试开发。它的开发基于 Visual Studio Code 及相关的开发容器,解决了所需工具(Ansible、linter、molecule)的所有依赖。
该角色将在 Ubuntu Noble 上进行测试。
要从开发容器内部启动 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 --all
Vagrant + Virtualbox
- 切换到角色的根目录
- 切换到 vagrant 文件夹
- 启动并进入 vagrant 机器
vagrant up
vagrant ssh
- 切换到角色文件夹
cd /etc/ansible/roles/ansible-role- [tab]
- 现在您可以运行所有测试
yamllint .
ansible-lint .
molecule create
molecule test --all
构建和发布过程
该 Ansible 角色定义了一系列 GitHub 工作流来运行 molecule 测试和发布管理。
发布管理需要一些设置。
保护主分支
- 设置 -> 分支 -> 添加分支保护规则
- 分支模式名称 -> main 或 master(取决于您的默认分支)
- 保护匹配的分支 -> 勾选“需要拉取请求才能合并”
- “需要批准”可以根据需要单独处理
给予 GITHUB_TOKEN 读写权限
- 设置 -> 操作 -> 常规 -> 工作流权限 -> 读和写权限
提交消息
提交消息应遵循特定格式以实现补丁、次要或主要语义版本更新。
补丁
0.0.x
fix(single_word): description
次要
0.x.0
feat(single_word): description
主要
x.0.0
perf(single_word): description
BREAKING CHANGE: describing the 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>