coopdevs.odoo-role
以下は、Odoo Ansibleプロビジョニングロールに関する簡潔で理解しやすい日本語訳です。
Odoo Ansibleプロビジョニングロール
これはOdooのためのAnsibleロールです。以下をサポートしています:
- Odoo 12
- Odoo 11
- Odoo 10
Odoo 13ではまだテストされていません。
要件
PostgreSQL(9.5以上)が必要です。
現在、このロールはPostgreSQLデータベースアクセスのためのピア認証のみをサポートしています。
PostgreSQLにデータベースを作成し、そのデータベースにアクセスできるユーザーと、同じユーザー名のシステムユーザーを作成する必要があります。
例えば、PostgreSQLにodoo
ユーザーを作成して、そのデータベースにアクセスさせ、システムにodoo
という名前のユーザーを作成します。
ロール変数
利用可能な変数は以下の通りで、デフォルト値も示されています:
- エディション
このロールは、Odooをgit
(gitリポジトリから)またはtar
(パッケージまたは圧縮リリースファイル)を使ってインストールする2つの異なる方法をサポートしています。
# Odooのリリースダウンロード戦略:tarまたはgit
odoo_role_download_strategy: tar
# tarダウンロード戦略の変数
odoo_role_odoo_version: 11.0 # このファイル以外では使用されません
odoo_role_odoo_release: 20190505 # このファイル以外では使用されません
odoo_role_odoo_url: "https://nightly.odoo.com/{{ odoo_role_odoo_version }}/nightly/src/odoo_{{ odoo_role_odoo_version }}.{{ odoo_role_odoo_release }}.tar.gz"
# Odooコミュニティのバックポートからのリリース
odoo_role_odoo_download_path: "{{ odoo_role_odoo_path }}/../odoo_releases/odoo_{{ odoo_role_odoo_version }}.{{ odoo_role_odoo_release }}.tar.gz"
# gitダウンロード戦略の変数
odoo_role_odoo_git_url: "https://github.com/OCA/OCB.git"
odoo_role_odoo_git_ref: "11.0"
# pipバージョンを定義する変数
odoo_role_pip_version: "23.1.2"
# pyenvの既存のPythonバージョンを強制再インストールする変数
odoo_role_force_pyenv_version: false
- ユーザーとグループ
odoo_role_odoo_user: odoo
odoo_role_odoo_group: odoo
- ディレクトリ構成
odoo_role_odoo_venv_path: /opt/.odoo_venv
odoo_role_odoo_path: /opt/odoo
odoo_role_odoo_bin_path: "{{ odoo_role_odoo_path }}/build/scripts-2.7/odoo"
odoo_role_odoo_python_path: "{{ odoo_venv_path }}/bin/python"
odoo_role_odoo_config_path: /etc/odoo
odoo_role_odoo_log_path: /var/log/odoo
odoo_role_odoo_modules_path: /opt/odoo/modules
- データベース
# このロールが作成するDBの配列
odoo_role_odoo_dbs: [ "odoo" ]
# 複数DB環境の場合、DB名はアクセスするDNS名と一致する必要があります
odoo_role_dbfilter_enabled: true
# データベースの作成、削除を許可するためのパスワード
odoo_role_odoo_db_admin_password: 1234
# デモデータをデータベースに入れるかどうか
odoo_role_demo_data: false
# ログイン前にデータベースを選択するかどうか(dbfilterが無効な場合)
odoo_role_list_db: false
- Odoo HTTPサーバー設定
# Odooがリバースプロキシの後ろで実行される場合は、127.0.0.1に設定
odoo_role_odoo_http_interface: 0.0.0.0
# Odooがリバースプロキシの後ろで実行される場合はtrueに設定
odoo_role_odoo_proxy_mode: false
# 必要なHTTPワーカーの数を指定(デフォルトは1)
odoo_role_workers: 2
- Odooその他のサーバー設定
# Odooのタイムアウトをカスタマイズ
odoo_role_limit_time_cpu: 60
odoo_role_limit_time_real: 120
# Odooのメモリ制限をカスタマイズ
odoo_role_limit_memory_hard: 2684354560
odoo_role_limit_memory_soft: 2147483648
- コアモジュールのインストール/更新リスト
# サーバー起動前にインストールするモジュールのリスト
odoo_role_odoo_core_modules_dict:
shared:
- base
db1:
- account
- コミュニティモジュールのインストール/更新リスト
# サーバー起動前にインストールするモジュールのリスト
odoo_role_odoo_community_modules_dict:
shared:
- web_responsive
db1:
- mis_reports
- モジュールの強制更新 特定のOdooモジュール(またはモジュールのリスト)を強制的に更新するには、次のコマンドを実行します。
-e "odoo_role_modules_force_update=['l10n_es']"
- 開発モード
Odooには、コード変更時にサーバーを自動リロードし、開発プロセスを迅速にするための開発モードがあります。コマンドライン引数--dev
を使うことで、Odooを開発モードで実行できます。
odoo_role_dev_mode: true
このモードが有効な場合、systemdユニットは作成されず、Odooプロセスを手動で実行する必要があります。次のコマンドで開始できます:
./odoo-bin -c /etc/odoo/odoo.conf --dev all
- Rest Frameworkのサポート
Rest Frameworkを使用し、開発モードでサーバーを開始する必要がある場合は:
odoo_role_enable_rest_framework: true
これにより、Odoo設定ファイルに開発モード用のセクションとオプションが追加されます。
- Queue Jobのサポート
モジュールqueue_jobを使用する場合は、次のようにします:
odoo_role_enable_queue_job: true
これにより、Odoo設定ファイルにqueue_jobを新しいスレッド/プロセスとして有効にするオプションが追加されます。
- サーバー全体のモジュール
db_filter
やqueue_job
の他に、サーバー全体のモジュールをインストールする必要がある場合は次のようにします:
odoo_role_odoo_server_wide_modules: ['module1', 'module2']
デフォルトでは、Odoo v12から必須とされるweb
とbase
をサーバー全体のモジュールとして設定し、対応する変数がtrueに設定されている場合はdb_filter
とqueue_job
も追加されます。
- ワーカー設定
ジョブを実行するために使用するワーカーの数も定義できます:
odoo_role_channels: root:2
- Sentryのサポート
モジュールsentryを使用する場合は、次のようにします:
odoo_role_enable_sentry: true
odoo_role_sentry_dsn: https://your_sentry_url
- i18nの上書き
i18nの上書きを強制するために次の変数を使用できます:
odoo_role_i18n_overwrite: true
この変数はインベントリに定義するか、プレイブックを実行するときに使用できます。
- 環境変数
サーバー用の環境変数のセットを定義する必要がある場合は、environment_variables
辞書変数を使用できます:
environment_variables:
var_name1: "var_value1"
var_name2: "var_value2"
var_name3: "var_value3"
このオプションは、/etc/default/odoo
に変数を追加するファイルを作成し、SystemdサービスにEnvironmentFile
属性を追加します。
ロールタグ
only-modules
タグの使用
このタグは、完全なセットアップを行うことなくOdooモジュールをインストールまたは更新するのに役立ちます。次のようにプレイブックを実行します:
ansible-playbook playbook.yml --tags "only-modules"
開発者向けの支援
ct
エイリアスを含むテンプレートが/etc/profile.d/
に生成されます。odoo-backup
およびodoo-restore
スクリプトが追加されます。
これをスキップするには、odoo_role_dev_helpers
変数をfalse
に設定します。
odoo_role_dev_helpers: true
コミュニティロール
デプロイ
コミュニティロールを使用するには、サーバーにこれらのモジュールをデプロイする必要があります。このロールはpip
を使用してモジュールのデプロイを管理します。
モジュールのバージョンを管理するためにrequirements.txt
ファイルを定義できます:
# requirements.txt
odoo11-addon-contract==11.0.2.1.0
odoo11-addon-contract-sale-invoicing==11.0.1.0.0
デフォルトの
requirements.txt
ファイルのパスは"{{ inventory_dir }}/../files/requirements.txt"
です。
odoo_role_community_modules_requirements_path
変数で変更できます。これにより、異なる
requirements.txt
ファイルを条件付きで使用できます。
インストール
モジュールがサーバーに存在する場合、データベースにインストールする必要があります。
インストールしたいモジュール名のリストを含むodoo_role_odoo_community_modules
変数を定義します。
# inventory/group_vars/all.yml
odoo_role_odoo_community_modules: 'contract,contract_sale_invoicing'
依存関係
このロールは他のロールに依存していません(現時点では)。
例プレイブック
- hosts: odoo_servers
roles:
- role: coopdevs.odoo-role
vars:
odoo_role_odoo_db_name: odoo-db
odoo_role_odoo_db_admin_password: "{{ odoo_admin_password }}"
odoo_role_download_strategy: tar
odoo_role_odoo_version: 11.0
odoo_role_odoo_release: 20180424
開発とテスト
ロールの開発とテストには、devenv
を使用してLinux環境でローカル仮想マシンを管理します。
tests
フォルダ内の.devenv
ファイルを使用して仮想マシンを作成できます。
devenv
次に、次のコマンドでロールをテストできます:
ansible-playbook devenv.yml -i inventory
これにより、PostgreSQLを含む仮想マシンがプロビジョニングされ、その後ロールが実行されます。
リリース
新しいリリースを公開するには:
- releasesに移動し、
Draft a new release
をクリックします。 Choose a tag
で新しいタグを作成し、変更ログで説明を更新します。
## What's Changed
* feat: invert add-ons paths order by @oyale in https://github.com/coopdevs/odoo-role/pull/135
* Add pytest and coverage packages to dev environments by @oyale in https://github.com/coopdevs/odoo-role/pull/136
**Full Changelog**: https://github.com/coopdevs/odoo-role/compare/v0.3.4...v0.3.5
- リリースを公開した後、
ansible galaxy
に移動して新しいリリースをインポートします。My content
の下にodoo-roleリポジトリが表示されるはずです。
ライセンス
GPLv3
著者情報
@ygneo
http://coopdevs.org
これで全翻訳が完了です。
Odoo 10+ provisioning role
ansible-galaxy install coopdevs.odoo-role