abessifi.sqlplus
Rol de Ansible OSB
Descripción
Este es un rol de Ansible para instalar la herramienta SQL*PLUS para conectarse a un servidor de base de datos Oracle.
Sistemas soportados
- Debian 7/8
- Ubuntu Precise/Trusty
- EL 6/7
Dependencias del rol
- Ninguna.
Requisitos
Requisitos de software
- Ansible 1.9 o superior (se puede instalar fácilmente a través de
pip
. Por ejemplo:sudo pip install ansible==1.9.2
) - Vagrant 1.7 o superior
- Paquete
sshpass
, que es necesario para que Ansible funcione si usas autenticación SSH por contraseña. En Ubuntu/Debian:$ sudo apt-get install sshpass
- Virtualbox
Requisitos del sistema
- Ninguno.
Variables del rol
sqlplus_basic_rpm_package
- Paquete RPM que incluye archivos básicos requeridos para ejecutar aplicaciones OCI, OCCI y JDBC-OCI (por defecto:oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm
)sqlplus_bin_rpm_package
- Paquete RPM que incluye bibliotecas adicionales y ejecutables para ejecutar SQL*Plus con cliente instantáneo (por defecto:oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.x86_64.rpm
)sqlplus_rpm_download_directory
- Ruta absoluta al directorio donde se copian los archivos RPM de instalación (por defecto:/srv/files/
)sqlplus_home
- Ruta absoluta al directorio de instalación de sqlplus (por defecto:/usr/lib/oracle/12.1/client64
)sqlplus_basic_rpm_package_url
- URL para descargar el RPM (por defecto:no definido
)sqlplus_bin_rpm_package_url
- URL para descargar el RPM (por defecto:no definido
)proxy_env
- Variables de entorno para proxy / no proxy en la descarga del RPM (por defecto:dummy_var: dummy_var
)
Etiquetas disponibles
- Ninguna.
Hechos locales
- Ninguno.
Uso
Instalación
Primero, asegúrate de haber descargado los RPM requeridos desde el sitio web de Oracle:
- oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm
- oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.x86_64.rpm
Ahora coloca los paquetes descargados en el host remoto para que Ansible pueda verlos (a través del parámetro del rol sqlplus_rpm_download_directory
). Por defecto, Ansible busca el archivo rpm dentro del directorio /srv/files/
.
Probar conexión
Personalmente, y para pruebas rápidas, utilizo la imagen de Docker sath89/oracle-12c que levanta un servidor de base de datos Oracle 12c. Todo lo que necesitas hacer es bajar la imagen, crear un directorio de datos local y arrancar un contenedor oracle-db
:
$ sudo docker pull sath89/oracle-12c:latest
$ sudo mkdir -p /var/lib/oracledb/data
$ sudo docker run --name oracle-db -d -p 8080:8080 -p 1521:1521 -v /var/lib/oracledb/data:/u01/app/oracle -e DBCA_TOTAL_MEMORY=1024 sath89/oracle-12c
Para probar la conexión a la base de datos:
$ export ORACLE_SID=xe.oracle.docker
$ sqlplus -L sys/oracle@<DIRECCIÓN-IP-DEL-SERVIDOR-DB>/xe.oracle.docker as sysdba
Conectado a:
Oracle Database 12c Standard Edition Release 12.1.0.2.0 - 64bit Production
SQL>
Desarrollo y pruebas
Prueba con Vagrant
Para pruebas rápidas, puedes levantar una VM usando Vagrant. Puede que necesites adaptar el Vagrantfile para que se ajuste a tu entorno (sistema, direcciones IP, etc):
Cambia el nombre de la caja de Vagrant en el Vagrantfile si es necesario.
Crea la máquina virtual:
(host)$ vagrant up --no-provision
Copia los paquetes RPM a la VM.
Provisiona la máquina virtual:
(host)$ vagrant provision
Ejecutar pruebas de aceptación
Las pruebas de aceptación/ integración se pueden ejecutar contra el rol usando la herramienta mágica test-kitchen
. Todas las pruebas de aceptación escritas están en el directorio ./test/integration/.
El archivo .kitchen.yml
describe la configuración de prueba y la lista de suites de pruebas a ejecutar. Por defecto, tus instancias se convergen con Ansible y se ejecutan en máquinas virtuales de Vagrant.
Para listar las instancias:
$ kitchen list
Instance Driver Provisioner Verifier Transport Last Action
default-centos-7-x64 Vagrant AnsiblePlaybook Busser Ssh <No creado>
Para ejecutar la suite de pruebas predeterminada en una plataforma CentOS 7, ejecuta lo siguiente:
$ kitchen test
Autor
Este rol fue creado por Ahmed Bessifi, un entusiasta de DevOps.
ansible-galaxy install abessifi.sqlplus