coopdevs.odoo-role

Rola do Provisions w Odoo Ansible

To jest rola Ansible do provisioning Odoo. Obsługuje:

  • Odoo 12
  • Odoo 11
  • Odoo 10

Nie była jeszcze testowana z Odoo 13.

Wymagania

PostgreSQL (9.5+).

Na chwilę obecną, ta rola obsługuje tylko uwierzytelnianie peer dla dostępu do bazy danych PostgreSQL.

Musisz stworzyć bazę danych w PostgreSQL, jednego użytkownika z dostępem do tej bazy oraz jednego użytkownika systemowego o tej samej nazwie.

Na przykład, możesz stworzyć użytkownika odoo w PostgreSQL z dostępem do utworzonej bazy danych oraz użytkownika o nazwie odoo w swoim systemie.

Zmienne roli

Dostępne zmienne są wymienione poniżej, wraz z wartościami domyślnymi:

  • Wydanie

Ta rola obsługuje instalację Odoo według dwóch różnych strategii: git (z repozytorium git) i tar (plik pakietu lub skompresowany plik).

# Strategia pobierania wersji Odoo: tar lub git
odoo_role_download_strategy: tar

# Zmienne dla strategii pobierania tar
odoo_role_odoo_version: 11.0 # nie używane poza tą aplikacją
odoo_role_odoo_release: 20190505 # nie używane poza tą aplikacją
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_role_odoo_download_path: "{{ odoo_role_odoo_path }}/../odoo_releases/odoo_{{ odoo_role_odoo_version }}.{{ odoo_role_odoo_release }}.tar.gz"

# Zmienne dla strategii pobierania git
odoo_role_odoo_git_url: "https://github.com/OCA/OCB.git"
odoo_role_odoo_git_ref: "11.0"
odoo_role_pip_version: "23.1.2"
odoo_role_force_pyenv_version: false
  • Użytkownicy i grupy
odoo_role_odoo_user: odoo
odoo_role_odoo_group: odoo
  • Struktura katalogów
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
  • Bazy danych
odoo_role_odoo_dbs: [ "odoo" ]
odoo_role_dbfilter_enabled: true
odoo_role_odoo_db_admin_password: 1234
odoo_role_demo_data: false
odoo_role_list_db: false
  • Ustawienia serwera HTTP Odoo
odoo_role_odoo_http_interface: 0.0.0.0
odoo_role_odoo_proxy_mode: false
odoo_role_workers: 2
  • Inne ustawienia serwera Odoo
odoo_role_limit_time_cpu: 60
odoo_role_limit_time_real: 120
odoo_role_limit_memory_hard: 2684354560
odoo_role_limit_memory_soft: 2147483648
  • Lista modułów core do instalacji/aktualizacji
odoo_role_odoo_core_modules_dict:
  shared:
    - base
  db1:
    - account
  • Lista modułów społecznościowych do instalacji/aktualizacji
odoo_role_odoo_community_modules_dict:
  shared:
    - web_responsive
  db1:
    - mis_reports
  • Wymuszenie aktualizacji modułów Odoo Aby wymusić aktualizację modułu Odoo lub listy modułów, uruchom provisioning z komendą
-e "odoo_role_modules_force_update=['l10n_es']"
  • Tryb deweloperski

Odoo ma tryb umożliwiający automatyczne przeładowanie serwera po zmianie kodu. Używając parametru wiersza poleceń --dev możemy uruchomić Odoo w trybie deweloperskim.

odoo_role_dev_mode: true

W przypadku aktywnego trybu, jednostka systemd nie jest tworzona i musisz uruchomić proces Odoo ręcznie. Możesz to zrobić przy pomocy następującej komendy:

./odoo-bin -c /etc/odoo/odoo.conf --dev all

Jeżeli potrzebujesz używać Rest Framework i chcesz uruchomić serwer w trybie deweloperskim, użyj:

odoo_role_enable_rest_framework: true

Jeżeli potrzebujesz używać modułu queue_job, użyj:

odoo_role_enable_queue_job: true
  • Moduły ogólnodostępne serwera

Jeśli potrzebujesz zainstalować niektóre moduły ogólnodostępne oprócz db_filter i queue_job, użyj:

odoo_role_odoo_server_wide_modules: ['module1', 'module2']
  • Konfiguracja pracowników

Możesz również zdefiniować, ile pracowników chcesz używać do wykonywania zadań:

odoo_role_channels: root:2

Jeśli chcesz używać modułu sentry, użyj:

odoo_role_enable_sentry: true
odoo_role_sentry_dsn: https://your_sentry_url
  • Nadpisanie i18n

Możemy wymusić nadpisanie i18n używając następującej zmiennej:

odoo_role_i18n_overwrite: true

Możesz zdefiniować tę zmienną w inwentarzu lub użyć jej podczas uruchamiania playbooka:

ansible-playbook playbooks/provision.yml -i ../my-inventory/inventory/hosts --ask-vault-pass --limit=host -e "{odoo_role_i18n_overwrite: true}"
  • Zmienne środowiskowe

Jeśli potrzebujesz zdefiniować zestaw zmiennych środowiskowych dla swojego serwera, możesz użyć słownika environment_variables:

environment_variables:
  var_name1: "var_value1"
  var_name2: "var_value2"
  var_name3: "var_value3"

Ta opcja dodaje plik w /etc/default/odoo z tymi zmiennymi i dodaje atrybut EnvironmentFile do usługi systemd wskazujący na /etc/default/odoo.

Tagi roli

  • Używając tagu only-modules

Ten tag pomaga w instalacji lub aktualizacji modułów Odoo bez przeprowadzania pełnej instalacji. Uruchom playbook z opcją --tags:

ansible-playbook playbook.yml --tags "only-modules"

Pomoc deweloperska

Możesz to pominąć ustawiając zmienną odoo_role_dev_helpers na false.

odoo_role_dev_helpers: true

Rola społeczności

Wdrażanie

Aby używać ról społecznościowych, musisz wdrożyć te moduły na serwerze. Ta rola zarządza wdrażaniem modułów za pomocą pip.

Możesz zdefiniować plik requirements.txt, aby zarządzać modułami i upewnić się, że odpowiednie wersje są zainstalowane:

# requirements.txt
odoo11-addon-contract==11.0.2.1.0
odoo11-addon-contract-sale-invoicing==11.0.1.0.0
odoo11-addon-contract-variable-qty-timesheet==11.0.1.0.0
odoo11-addon-contract-variable-quantity==11.0.1.2.1

Domyślna ścieżka pliku requirements.txt to "{{ inventory_dir }}/../files/requirements.txt".

Możesz to zmienić używając zmiennej odoo_role_community_modules_requirements_path.

Dzięki temu możesz mieć różne pliki requirements.txt i używać ich warunkowo.

Instalacja

Po wdrożeniu modułów na serwer, musisz je zainstalować w bazie danych.

Zdefiniuj zmienną odoo_role_odoo_community_modules z listą nazw modułów, które chcesz zainstalować.

# inventory/group_vars/all.yml
odoo_role_odoo_community_modules: 'contract,contract_sale_invoicing'

Zależności

Ta rola nie zależy od innych ról (jeszcze).

Przykładowy Playbook

- 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

Deweloperstwo i testowanie

Do deweloperki i testowania roli używamy devenv do zarządzania lokalnymi maszynami wirtualnymi w środowiskach Linux.

Możesz użyć pliku .devenv w folderze tests, aby stworzyć maszynę wirtualną.

devenv

Następnie możesz przetestować rolę używając następującej komendy:

ansible-playbook devenv.yml -i inventory

To zainstaluje maszynę wirtualną z PostgreSQL, a następnie wykona rolę.

Wydanie

Aby opublikować nowe wydanie:

  • Przejdź do releases i kliknij na Draft a new release.
  • Stwórz nową etykietę w Choose a tag i zaktualizuj opis o dziennik zmian, jak w poniższym przykładzie:
## Co się zmieniło
* feat: zmiana kolejności ścieżek dodatków przez @oyale w https://github.com/coopdevs/odoo-role/pull/135
* Dodano pakiety pytest i coverage do środowisk deweloperskich przez @oyale w https://github.com/coopdevs/odoo-role/pull/136

**Pełny Dziennik Zmian**: https://github.com/coopdevs/odoo-role/compare/v0.3.4...v0.3.5
  • Po opublikowaniu wydania przejdź do ansible galaxy aby zaimportować nowe wydanie. Powinieneś znaleźć repozytorium odoo-role w sekcji My content.

Licencja

GPLv3

Informacje o autorze

@ygneo http://coopdevs.org

Zainstaluj
ansible-galaxy install coopdevs.odoo-role
Licencja
gpl-3.0
Pobrania
22.4k
Właściciel
Coopdevs, Free and Open Source Software for Social and Solidarity Economy.