andrelohmann.odoo

odoo

Última prueba

Contenido

Usa este rol para instalar la última versión de Odoo desde el código fuente en tu servidor Ubuntu.

Requerimientos

Este rol requiere Ubuntu.

Variables del Rol

Configura las variables y parámetros de configuración de Odoo.

odoo_release: latest  # por ejemplo, 16, 17
# establece odoo_source_install en false para instalar desde paquetes nocturnos
odoo_source_install: false
odoo_config: []
# Usa el formato clave/valor para los parámetros de configuración
# - key: db_name
#   value: odoo
# - key: admin_passwd
#   value: S3cr3t!
# Preseed de bases de datos
odoo_init_databases: []
#- database: odoo_1
#  language: de_DE

Ejemplo de Playbook

- hosts: odoo
  become: yes
  roles:
  - { role: andrelohmann.odoo }

Desarrollo del Rol

Propósito Especial

Este repositorio soporta las siguientes funciones para el desarrollo del rol:

  • yamllint
  • ansible-lint
  • prueba de molécula
  • acción de github
  • actualización automática de versiones
  • actualizar ansible-galaxy
  • mostrar estado de la construcción
  • probar dentro de vagrant (con fines de desarrollo)
  • probar con molécula (dentro o fuera de vagrant)
  • probar contra un contenedor de Docker
  • probar y desarrollar dentro de vscode

Prerrequisitos

https://thedatabaseme.de/2022/01/17/automated-testing-your-ansible-role-with-molecule-and-github-actions/

  • Virtualbox + Vagrant instalado (solo necesario si el rol se va a probar también con Vagrant)
  • Docker Desktop
  • VisualStudioCode + paquete de extensiones remotas (las dependencias están definidas en .vscode/extensions.json)

Configuración de Desarrollo

Este rol de Ansible se desarrolla usando molécula para pruebas. Su desarrollo se basa en Visual Studio Code y un contenedor de desarrollo relacionado, resolviendo todas las dependencias en términos de herramientas necesarias (ansible, linter, molécula).

El rol se probará en Ubuntu Noble.

Para iniciar los contenedores de prueba de molécula desde dentro del contenedor de desarrollo, el socket de Docker debe estar montado en el contenedor de desarrollo.

Carpetas y Archivos Importantes

.devcontainer
  • Define el Dockerfile para el contenedor de desarrollo
  • Configura el inicio del contenedor de desarrollo (por ejemplo, monta el socket de Docker)
molecule/default/Dockerfile.js
  • Usado como plantilla para todas las plataformas definidas en molecule/default/molecule.yml
  • Prepara los entornos para soportar servicios systemd (necesario para algunos roles de Ansible que actúan sobre systemd)
  • Instala todos los requisitos para ejecutar Ansible contra el contenedor derivado
  • El archivo está alineado con los atributos de las plataformas en molecule/default/molecule.yml
  • Para más información, estudia la documentación de molécula

Uso

Visual Studio Code

  • Cambia al directorio raíz de tu rol y abre vscode
code .
  • Desde el contenedor de desarrollo puedes usar los siguientes comandos de ejecución
yamllint .
ansible-lint .
molecule create
molecule test --all

Vagrant + Virtualbox

  • Cambia al directorio raíz de tu rol
  • Cambia a la carpeta de Vagrant
  • Inicia y entra en la máquina de Vagrant
vagrant up
vagrant ssh
  • Cambia a la carpeta del rol
cd /etc/ansible/roles/ansible-role- [tab]
  • Ahora puedes ejecutar todas las pruebas
yamllint .
ansible-lint .
molecule create
molecule test --all

Proceso de Construcción y Liberación

El rol de Ansible define un conjunto de flujos de trabajo de GitHub para ejecutar pruebas de molécula y gestión de liberaciones.

La gestión de liberaciones requiere un puñado de configuraciones.

Proteger la rama principal/master

  • Configuración -> Ramas -> Agregar regla de protección de rama
  • Nombre del patrón de rama -> main o master (dependiendo de tu rama predeterminada)
  • Proteger ramas coincidentes -> marca "Requerir una solicitud de extracción antes de fusionar"
  • "Requerir aprobaciones" se puede manejar individualmente según sea necesario

Dar permisos de lectura y escritura a GITHUB_TOKEN

  • Configuración -> Acciones -> General -> Permisos de flujo de trabajo -> permisos de lectura y escritura

Mensajes de confirmación

Los mensajes de confirmación deben seguir un formato especial para lograr una actualización de versión semántica de parche, menor o mayor.

parche

0.0.x

fix(single_word): descripción
menor

0.x.0

feat(single_word): descripción
mayor

x.0.0

perf(single_word): descripción
CAMBIO DRÁSTICO: describiendo el cambio drástico

Es absolutamente importante que "CAMBIO DRÁSTICO: " se mencione en la segunda línea o posteriores. En mensajes de confirmación de línea única, se ignorará la actualización de versión mayor.

Agregar secreto GALAXY_API_KEY

  • Autentícate con tu cuenta de GitHub en https://galaxy.ansible.com/.
  • Obtén la clave API de galaxy desde Preferencias -> Clave API
  • Abre tu repositorio de rol en GitHub
  • Configuración -> Secretos y variables -> Acciones -> Nuevo secreto de repositorio
  • Usa "GALAXY_API_KEY" como clave y la clave API de galaxy copiada como valor

Licencia

MIT

Información del Autor

© Andre Lohmann (y otros) 2024

https://github.com/andrelohmann

Contacto del Mantenedor

  • Andre Lohmann <lohmann.andre (en) gmail (punto) com>
Acerca del proyecto

ansible galaxy role to install odoo from sources

Instalar
ansible-galaxy install andrelohmann.odoo
Licencia
mit
Descargas
184
Propietario