fede2cr.alfresco52
alfresco_ansible 
Recetas de ansible para Alfresco
Descripción
Recetas para:
- Instalación y actualización automática de Alfresco 5.2
- Instalación automática de Alfresco 6.1 (en progreso)
Uso
El rol de Ansible para Alfresco se ha creado de tal manera que las tareas están divididas en tags, lo que permite elegir qué partes se ejecutan en una sola ejecución secuencial. Este mismo rol puede instalar Alfresco en un equipo nuevo o actualizar a la versión indicada en el inventario.
Instalación desde cero
Requerimientos para Ansible
En un equipo con Ubuntu 18.04, físico o virtual, con suficiente espacio para la instalación de Alfresco y el respaldo de sus datos, primero necesita activar el servicio de ssh, copiar una clave SSH al usuario que utilizará para la conexión y crear un permiso de sudo, generando el archivo /etc/sudoers.d/ansible
con el siguiente contenido:
%sudo ALL=(ALL) NOPASSWD: ALL
Defaults:greencore !requiretty
Luego, instalamos algunos paquetes necesarios para la conexión inicial, tanto de la distribución como de Python:
# Paquetes de Ubuntu
sudo apt install -y python3-minimal python3-pip
# Para Mysql
sudo apt install -y python3-pymysql
# Para PostgreSQL
sudo apt install -y python3-psycopg2 libpq-dev postgresql libpostgresql-jdbc-java
# Paquetes de Python
sudo pip3 install ansible psutil # Puede omitir "ansible" en el equipo remoto, solo es necesario en el equipo controlador
Configuración de inventario
Solo necesita modificar un único archivo, que es el inventario, donde definiremos la IP del servidor donde vamos a instalar o actualizar Alfresco, y ahí definiremos los parámetros utilizados para la configuración de Alfresco.
Por ejemplo, en inventory/hosts.yml
:
---
alfresco:
hosts:
10.xx.xx.xx: # Cambiar IP del servidor de Alfresco
ansible_user: greencore # Usuario a utilizar en SSH
alfresco_installer: alfresco-community-installer-201707-linux-x64.bin # Versión del instalador, descomentar
# antigua
#alfresco_installer: alfresco-community-installer-201602-linux-x64.bin
alf_glob_prop_path: /opt/alfresco_community/tomcat/shared/classes/alfresco-global.properties # Ruta del archivo alfresco-global.properties
alf_root: /opt/alfresco_community/ # Raíz de Alfresco
dir_root: /opt/alfresco_community/alf_data # Directorio alf_data
solr4_root: /opt/alfresco_community/alf_data/solr4/index # Directorio de Solr
installer_delay: 190 # Tiempo a esperar que complete el instalador
Antes de continuar, comprobamos el inventario y la ejecución de ansible en general, ejecutando:
ansible -i inventory/hosts.yml -m ping alfresco
10.xx.xx.xx | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python3"
},
"changed": false,
"ping": "pong"
}
Solo para comprobar la disponibilidad de archivos de configuración, archivos de descarga, módulos de Python requeridos para módulos de Ansible, etc., primero vamos a ejecutar ansible en modo dry-run, lo que significa que no realizará ningún cambio.
ansible-playbook -C -i inventory/hosts.yml install_alfresco52-mysql_no_docker.yml --tags install,mysql_install,mysql
Si no detectamos ningún problema, ahora podemos ejecutar sin la opción -C
para realizar la instalación de Alfresco:
ansible-playbook -i inventory/hosts.yml install_alfresco52-mysql_no_docker.yml --tags install,mysql_install,mysql
Actualización de Alfresco
Antes de iniciar, se recomienda comprobar los servicios del equipo antes de actualizar, seguir las normas de solicitud de cambio, utilizar equipos de prueba y siempre realizar respaldos de equipos en producción.
En caso de estar realizando todo el laboratorio de instalación y actualización, es posible que necesite cambiar la versión de Alfresco a ser instalada según el archivo de inventario.
En este caso, los tags adicionales de mysql_preupgrade y mysql_postupgrade se encargan de realizar respaldos de datos, mover el directorio de Alfresco, y re-importar los datos en MySQL, así como el dir.root para ser aplicados en la actualización.
ansible-playbook -i inventory/hosts.yml install_alfresco52-mysql_no_docker.yml --tags install,mysql_preupgrade,mysql,mysql_postupgrade
Ahora solo falta comprobar el servicio, que el contenido está en su lugar, y revisar los archivos de logs por posibles mensajes de error.
Depuración
Si algo falla, por ejemplo si el tiempo de espera del instalador es muy bajo, puede continuar después de esa tarea, usando este comando como base:
ansible-playbook -i inventario playbook.yml --tags a,b,c --start-at-task="Nombre completo de la tarea"
ansible-galaxy install fede2cr.alfresco52