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.

odoo_role_enable_rest_framework: true
odoo_role_enable_queue_job: true
  • Modules globalement du serveur
odoo_role_odoo_server_wide_modules: ['module1', 'module2']
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 et odoo-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

Installer
ansible-galaxy install coopdevs.odoo-role
Licence
gpl-3.0
Téléchargements
22.4k
Propriétaire
Coopdevs, Free and Open Source Software for Social and Solidarity Economy.