Instalación no interactiva de Toba

Buenas, estoy queriendo armar un esquema de Deploy de Toba sobre
Vagrant y Ansible, y si bien aun me falta pulir algunas cositas, estoy
pensando que necesito poder instalar toba sin que realice de forma
interactiva todas las preguntas de instalación (Id de desarrollo,
Socket de la Base Postgres, etc…)

Existe alguna manera de lograr esto pasándole algún .ini o por
parámetro al menos?

Si queda piola paso el playbook del deploy.

Hola Tomás

No recuerdo bien en que versión se agrego la posibilidad de instalación no-interactiva para varios de los parámetros (2.6 quizás).

Te puedo dar una mano con Vagrant también ya que lo hemos utilizado internamente. En ciertas ocaciones el toba no-interactivo seguía realizando alguna pregunta (por ej si tiene que pisar una base de datos existente), asi que hicimos un bash y le agregamos ‘enters’ para que siga adelante.


----------- archivo instalar_toba.sh -----------
#!/usr/bin/env bash

#env
#NOMBRE_BASE
#TOBA_HOME
#TOBA_ID_DESARROLLADOR
#PG_PASS
#TOBA_PASS
PG_PORT=5432

# INSTALAR TOBA
echo "start ======== ${TOBA_ID_DESARROLLADOR}" > /tmp/log
# INSTALAR TOBA
ID_TOBA=${TOBA_ID_DESARROLLADOR}
echo -n ${PG_PASS} > /tmp/clave_pg
echo -n ${TOBA_PASS} > /tmp/clave_toba
printf "\n" | ${TOBA_HOME}/bin/instalar -d ${ID_TOBA} -t 0 -h localhost -p ${PG_PORT} -u postgres -b ${NOMBRE_BASE} -c /tmp/clave_pg -k /tmp/clave_toba >> /tmp/log

rm /tmp/clave_pg /tmp/clave_toba


##### Falta poner el link simbolico a donde este apache de ${TOBA_HOME}/instalacion/toba.conf
  

Luego desde Ansible lo podés invocar asi:


   ----- archivo toba/instalar.ym -----   
   - name: Instalar Toba
     script: instalar_toba.sh creates="{{ toba_home }}/instalacion/i__desarrollo/p__{{nombre}}/usuarios.sql"
     sudo: yes
     environment:
          NOMBRE_BASE: "{{nombre}}"
          TOBA_HOME: "{{toba_home}}"
          TOBA_ID_DESARROLLADOR: "{{id_desarrollador_toba}}"
          PG_PASS: "postgres"
          TOBA_PASS: "toba"
          HOME: "{{toba_home}}"
          PG_PORT: 5432

No se si podés simplemente copiar y pegar esto (lo adapté un poco), pero te puede servir de base. También el bash se puede escribir en Ansible completamente, por ahora quedó así porque era más facil de debuggear (si Toba hacía una pregunta, se colgaba todo).

Un último tip, como verás, el archivo de ansible tiene parámetros, asi que lo podés ‘invocar’ desde otros tasks para así poder instalar distintos Tobas sin repetir la configuración.

  
  - {include: "../../toba/instalar.yml",
        nombre: guarani,
        alias: "{{alias_guarani_gestion}}",
        toba_home: "{{root_guarani_gestion}}/lib/toba"
     }

Saludos!

Es muy bueno eso que me pasas, lo pruebo y comento si todo salio funcionando.

Muchas Gracias!

Hola Tomas,

los cambios necesarios para hacer scripteable la instalacion salen con la version 2.7 en un par de semanas, estamos en la etapa de testing ;). Te puedo pasar el listado de changesets a mezclar si queres… pero corre por tu cuenta, si nos aguantas unos dias ya sale.

Saludos

Dale Richard, yo voy probando las sugerencias de acotroneo pero cuando salga la version 2.7 adapto el playbook.

Gracias por la data.

Hola a todos, ante que nada gracias por toda la ayuda y consejos.

Tengo una primer versión (experimental) de Instalación de Toba 2.6 en una VM con Ubuntu 14.04 con Ansible.

El proyecto esta subido acá:

https://github.com/tomasdelvechio/toba-ansible

Por ahora no hay branches ni versiones, solo lo que voy subiendo al master.

Se aceptan Issues, sugerencias y Pull Requests.

Cuando salga la versión 2.7 rearmo el playbook.