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
- Wsparcie dla Rest Framework
Jeżeli potrzebujesz używać Rest Framework i chcesz uruchomić serwer w trybie deweloperskim, użyj:
odoo_role_enable_rest_framework: true
- Wsparcie dla Queue Job
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
- Wsparcie dla sentry
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
- Szablon z aliasem
ct
jest renderowany do/etc/profile.d/
. - Dodaj skrypty
odoo-backup
iodoo-restore
.
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 sekcjiMy content
.
Licencja
GPLv3
Informacje o autorze
@ygneo http://coopdevs.org
Odoo 10+ provisioning role
ansible-galaxy install coopdevs.odoo-role