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を使用し、開発モードでサーバーを開始する必要がある場合は:

odoo_role_enable_rest_framework: true

これにより、Odoo設定ファイルに開発モード用のセクションとオプションが追加されます。

モジュールqueue_jobを使用する場合は、次のようにします:

odoo_role_enable_queue_job: true

これにより、Odoo設定ファイルにqueue_jobを新しいスレッド/プロセスとして有効にするオプションが追加されます。

  • サーバー全体のモジュール

db_filterqueue_jobの他に、サーバー全体のモジュールをインストールする必要がある場合は次のようにします:

odoo_role_odoo_server_wide_modules: ['module1', 'module2']

デフォルトでは、Odoo v12から必須とされるwebbaseをサーバー全体のモジュールとして設定し、対応する変数がtrueに設定されている場合はdb_filterqueue_jobも追加されます。

  • ワーカー設定

ジョブを実行するために使用するワーカーの数も定義できます:

odoo_role_channels: root:2

モジュール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"

開発者向けの支援

これをスキップするには、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


これで全翻訳が完了です。

インストール
ansible-galaxy install coopdevs.odoo-role
ライセンス
gpl-3.0
ダウンロード
22.4k
所有者
Coopdevs, Free and Open Source Software for Social and Solidarity Economy.