alfresco_ansible

alfresco_ansible Build Status

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 ha sido creado de forma tal que las tareas se encuentran divididas en tags, lo que permite en una sola ejecución secuencial, escoger cuales porciones deseamos que se vayan ejecutando, de forma tal que el mismo rol puede de igual forma instalar Alfresco en un equipo nuevo, como actualizar a la versión que se indique en el inventario.

Instalación desde cero

Requerimientos para Ansible

En un equipo con Ubuntu 18.04 físico o virtualizado, con espacio suficiente para la instalación de Alfresco y el respaldo de sus datos, donde necesita primero activar el servicio de ssh, copiar una llave de SSH hacia el usuario que utilizará para la conexión, y crear un permiso de sudo, creando con el usuario apropiado el archivo /etc/sudoers.d/ansible:

%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 PostreSQL
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

Solamente debe modificar un único archivo, que es el inventario donde vamos a definir cual es el IP del servidor donde vamos a instalar o actualizar Alfresco, y ahí definir los parámetros que son utilizados para la configuración de Alfresco.

Por ejemplo, en inventory/hosts.yml:

---
  alfresco:
    hosts:
      10.xx.xx.xx:                                                                                       # Cambiar IP de servidor de Alfresco
        ansible_user: greencore                                                                          # Usuario a utilizar en SSH
        alfresco_installer: alfresco-community-installer-201707-linux-x64.bin                            # Cual version del instalador, descomentar
        # vieja
        #alfresco_installer: alfresco-community-installer-201602-linux-x64.bin
        alf_glob_prop_path: /opt/alfresco_community/tomcat/shared/classes/alfresco-global.properties     # Ruta de 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 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"
}

Solamente 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 quiere decir que no realiza 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 el laboratorio completo 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 respaldo de datos, de mover el directorio de Alfresco, y re-importan 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 se encuentra en su lugar, y observar los archivos de logs por posibles mensajes de error.

Depuración

Si algo falla, por ejemplo que el tiempo de espera del instalador sea muy bajo, puede continuar luego de esa tarea, usando como base este comando:

ansible-playbook -i inventario playbook.yml --tags a,b,c --start-at-task="Nombre completo de la tarea"
About

Alfresco52 install and upgrade role

Install
ansible-galaxy install fede2cr/alfresco_ansible
GitHub repository
License
Unknown
Downloads
21
Owner
Hacker, profesor, cervecero, luthier, cocinero, maker, astrónomo, biólogo, fotógrafo. Trabajo en Microsoft.