andrelohmann.odoo
odoo
内容
このロールを使用して、最新のOdooバージョンをソースからUbuntuサーバーにインストールします。
要件
このロールはUbuntuが必要です。
ロール変数
Odooの変数と設定パラメータを設定します。
odoo_release: latest # 例:16、17
# odoo_source_installをfalseに設定すると、ナイトリーパッケージからインストールされます
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内でのテストと開発
前提条件
- Virtualbox + Vagrantがインストールされている(Vagrantでロールをテストする場合のみ必要)
- Docker Desktop
- Visual Studio Code + リモート拡張パック(依存関係は.vscode/extensions.json内に定義)
開発セットアップ
このAnsibleロールは、テストのためにMoleculeを使用して開発されています。開発はVisual Studio Codeおよび関連する開発コンテナに基づいており、必要なツール(Ansible、リンター、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ロールは、Moleculeテストとリリース管理を実行するための多数のGitHubワークフローを定義しています。
リリース管理にはいくつかの設定が必要です。
master/mainブランチの保護
- 設定 -> ブランチ -> ブランチ保護ルールを追加
- ブランチパターン名 -> 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: 」が2行目以降に記載されていることが重要です。1行のみのコミットメッセージでは、メジャーバージョンの更新は無視されます。
GALAXY_API_KEYシークレットの追加
- https://galaxy.ansible.com/でGitHubアカウントで認証してください。
- Preferences -> API KeyからGalaxy APIキーを取得します。
- GitHubロールリポジトリを開きます
- 設定 -> シークレットと変数 -> アクション -> 新しいリポジトリシークレット
- 「GALAXY_API_KEY」をキーとして使用し、コピーしたGalaxy APIキーを値として使用します。
ライセンス
MIT
著者情報
© Andre Lohmann (および他の方々) 2024
https://github.com/andrelohmann
メンテイナー連絡先
- Andre Lohmann <lohmann.andre (at) gmail (dot) com>