Instalación de odoo y localización española mediante ansible.
- Instalar ansible:
pip install ansible
- Copiar el fichero ansible.cfg del repositorio a la ruta /etc/ansible
- Crear el fichero hosts en la ruta /etc/ansible
Ejemplo de fichero hosts:
Para local:
localhost ansible_connection=local
Para servidor remoto:
servidorDestino ansible_host=192.168.0.35 ansible_user=root ansible_port=22
El repositorio viene con este ejemplo de receta:
- name: Odoo
hosts: all
become: yes
roles:
- ansible-odoo
vars:
- odoo_version: 8.0
- odoo_config_admin_passwd: admin
- odoo_repo_url2: https://github.com/OCA/l10n-spain.git
- odoo_repo_type2: git
- odoo_repo_rev2: 8.0
- odoo_repo_dest2: "/home/{{ odoo_user }}/odoo/l10n-spain"
- odoo_config_addons_path:
- "/home/{{ odoo_user }}/odoo/server/openerp/addons"
- "/home/{{ odoo_user }}/odoo/server/addons"
- "/home/{{ odoo_user }}/odoo/l10n-spain"
Si quisieramos seleccionar el host donde se va a ejecutar cambiaremos all, por la etiqueta que pusieramos en el fichero de configuración hosts, en nuestro caso podría ser localhost o servidorDestino
En vars podemos añadir o modificar las variables que queramos, ya sea para cambiar la version de odoo que se va a instalar, la contraseña maestra, o el repositorio. En este caso en la receta de ejemplo se instalaría la versión 8 de Odoo con todas sus dependencias.
Comando para ejecutar receta:
ansible-playbook playbook.yml
Mirar ansible-odoo/defaults/main.yml
UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh.", "unreachable": true}
Habrá que comprobar si podemos acceder por ssh al servidor, teniendo la clave pública en la carpeta authorized_keys.
Comprobar también en el archivo de configuración de hosts que el argumento ansible_user y ansible_host estan definidos correctamente.
Si todo es correcto pero sigue dando este problema, instalar lo siguiente:
apt install python-dev
Error al resolver dependencia cryptography:
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
Realizar los siguientes comandos en el servidor remoto:
apt-get update
apt-get install build-essential libssl-dev libffi-dev python-dev
Si nos da el siguiente error:
locale.Error: unsupported locale setting
Ejecutaremos en la consola
export LC_ALL=C
Entrar en vars/Odoo-x.yml y cambiar el paquete python-imaging por python-pil y python-pypdf por PyPDF
new encoding (UTF8) is incompatible with the encoding of the template database (SQL_ASCII) HINT: Use the same encoding as in the template database, or use template0 as template.
Para solucionarlo ejecutaremos en postgres los siguientes comandos
UPDATE pg_database SET datistemplate = FALSE WHERE datname = 'template1';
DROP DATABASE template1;
CREATE DATABASE template1 WITH TEMPLATE = template0 ENCODING = 'UTF8';
UPDATE pg_database SET datistemplate = TRUE WHERE datname = 'template1';
\c template1
VACUUM FREEZE;