coopdevs.odoo-role
Rôle de Provisionnement Ansible pour Odoo
Ceci est un rôle Ansible pour le provisionnement d'Odoo. Il prend en charge :
- Odoo 12
- Odoo 11
- Odoo 10
Il n'a pas encore été testé avec Odoo 13.
Exigences
Un PostgreSQL (9.5 ou supérieur).
Pour l'instant, ce rôle ne prend en charge que l'authentification par pair pour l'accès à la base de données PostgreSQL.
Vous devez donc créer une base de données dans PostgreSQL, un utilisateur avec accès à cette base de données, et un utilisateur système avec le même nom d'utilisateur.
Par exemple, vous pouvez créer un utilisateur odoo
dans PostgreSQL avec accès à la base de données créée, et un utilisateur nommé odoo
dans votre système.
Variables du Rôle
Les variables disponibles sont listées ci-dessous, avec leurs valeurs par défaut :
- Édition
Ce rôle prend en charge l'installation d'Odoo selon deux stratégies différentes : git
(à partir d'un dépôt git) et tar
(un fichier de package ou de release compressé).
# Stratégie de téléchargement des versions Odoo : tar ou git
odoo_role_download_strategy: tar
# Variables pour la stratégie de téléchargement tar
odoo_role_odoo_version: 11.0 # non utilisée en dehors de ce fichier
odoo_role_odoo_release: 20190505 # non utilisée en dehors de ce fichier
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"
# Variables pour la stratégie de téléchargement git
odoo_role_odoo_git_url: "https://github.com/OCA/OCB.git"
odoo_role_odoo_git_ref: "11.0"
# Variable pour définir la version de pip
odoo_role_pip_version: "23.1.2"
- Utilisateurs et groupes
odoo_role_odoo_user: odoo
odoo_role_odoo_group: odoo
- Structure des répertoires
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
- Bases de données
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
- Paramètres du serveur HTTP d'Odoo
odoo_role_odoo_http_interface: 0.0.0.0
odoo_role_odoo_proxy_mode: false
odoo_role_workers: 2
- Autres paramètres du serveur 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
- Liste des modules principaux à installer/mettre à jour
odoo_role_odoo_core_modules_dict:
shared:
- base
db1:
- account
- Liste des modules communautaires à installer/mettre à jour
odoo_role_odoo_community_modules_dict:
shared:
- web_responsive
db1:
- mis_reports
- Mode développement
Odoo a un mode pour recharger automatiquement le serveur lorsque le code change. En utilisant le paramètre de ligne de commande --dev
, nous pouvons exécuter Odoo en mode développement.
odoo_role_dev_mode: true
Si ce mode est actif, l'unité systemd n'est pas créée et vous devez exécuter le processus Odoo manuellement.
- Support pour le Framework REST
odoo_role_enable_rest_framework: true
- Support pour le module queue_job
odoo_role_enable_queue_job: true
- Modules globalement du serveur
odoo_role_odoo_server_wide_modules: ['module1', 'module2']
- Support pour sentry
odoo_role_enable_sentry: true
odoo_role_sentry_dsn: https://your_sentry_url
- Surcharge i18n
odoo_role_i18n_overwrite: true
- Variables d'environnement
environment_variables:
var_name1: "var_value1"
var_name2: "var_value2"
Tags du Rôle
- Utilisation du Tag
only-modules
ansible-playbook playbook.yml --tags "only-modules"
Aides pour les développeurs
- Un template avec l'alias
ct
est rendu dans/etc/profile.d/
. - Ajoute des scripts
odoo-backup
etodoo-restore
.
Vous pouvez éviter cela en définissant la variable odoo_role_dev_helpers
à false
.
odoo_role_dev_helpers: true
Rôles de la communauté
Déploiement
Pour utiliser les rôles de la communauté, vous devez déployer ces modules sur le serveur. Ce rôle gère le déploiement des modules avec pip
.
Vous pouvez définir un fichier requirements.txt
pour gérer les modules et assurer la version installée.
# requirements.txt
odoo11-addon-contract==11.0.2.1.0
odoo11-addon-contract-sale-invoicing==11.0.1.0.0
Installation
Une fois les modules sur le serveur, vous devez les installer dans la base de données.
odoo_role_odoo_community_modules: 'contract,contract_sale_invoicing'
Dépendances
Ce rôle ne dépend pas encore d'autres rôles.
Exemple de 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
Développement et Test
Pour développer et tester le rôle, nous utilisons devenv
.
Vous pouvez utiliser le fichier .devenv
dans le dossier tests
pour créer une machine virtuelle.
devenv
Ensuite, vous pouvez tester le rôle avec la commande suivante :
ansible-playbook devenv.yml -i inventory
Publication
Pour publier une nouvelle version :
- Allez sur releases et cliquez sur
Draft a new release
. - Créez un nouveau tag et mettez à jour la description avec le changelog.
Licence
GPLv3
Informations sur l'Auteur
@ygneo http://coopdevs.org
Odoo 10+ provisioning role
ansible-galaxy install coopdevs.odoo-role