Aprovisionamiento de una base de datos con ansible

Llego la hora de la verdad.
Vamos a juntar todos los pasitos que hemos estado llevando a cabo en los distintos playbooks para llevar a cabo un aprovisionamiento total de un nuevo server Oracle v19.3 en su modalidad single server

Para ello vamos a usar el codigo que tenemos en GitHUB y las explicaciones detalladas de las anteriores entradas.

Recopilando un poco la informacion tenemos un árbol de playbooks y ficheros

  Root
   |
   |- vars:
        |- main.yaml                     Specific rules an locations of our oracle department
        |- oracle_files.yaml              Source  & patch files info and locations    
   |
   |- files
        |-CRQ001_asm_create_disks.yaml      Example of asm disks provisioning
        |-CRQ002_createdb_ASMTEST.yaml      Example of database provisioning
        |-CRQ003_createdb_FSTEST.yaml       Example of database provisioning
   |    
   | - roles
         |so_check                           Checks the pre requirements of S.O
            -|
             |vars
                |-  OracleLinux_7_oracle_19.3_requisites.yaml      Prerrequisites for a installation of a 19.3 oracle files at OEL7
            
         |oracle_directories                 Role wich checks all required file structure exsists
         |
         |unzip_binaries                     Role wich unzips selected files 
         |
         |asm_binaries_install               Role wich install and setus the CRS = Listener          
            |
            |Templates 
                |-asm_binaries_19.3.rsp.j2   Jinja files wich create the asm response file for 19.3 version 
                |-asm_binaries_12.1.rsp.j2   Jinja files wich create the asm response file for 12.1 version 
                |-asm_binaries_12.2.rsp.j2   Jinja files wich create the asm response file for 12.2 version 
         |    
         | asm_create                       Role which configures asmlib, create asmdisks, diskgroups and asm 
         |
         | db_create                        Role wich creates a database 
            |
            |Templates 
                |-rdbms_createdb_19.3.rsp.j2   Jinja files wich create the rdbms response file for 19.3 version 
                |-rdbms_createdb_12.1.rsp.j2   Jinja files wich create the rdbms response file for 12.1 version 
                |-rdbms_createdb_12.2.rsp.j2   Jinja files wich create the rdbms response file for 12.2 version 
         |
         |
    | check_so_prerrequisites.yaml     Playbook wich checks the S.O  prerrequisites
    |     
    | asm_only_binaries                Playbook which install CRS listener and setup them
    | 
    | asm_full_install                 Playbook which install CRS,listeners, confiurres asmlib, create asmdisks,diskgroups and asm 
    |
    | db_binaries_install              Playbook wich installs and inventory database binaries 
    |
    | asmfull_plus_db_binaries         Playbook   which install CRS,listeners, confiurres asmlib, create asmdisks,diskgroups, asm and database binaries 
    |
    | db_createdb                      Playbook wich creates a database 


Prerrequisitos del provisionamientio

Vamos a llevar a cabo el proceso en dos pasos.

Paso 1 REQ01

Desde la dirección del departamento nos indican que nos han enviado la petición REQ01 donde ya tenemos un servidor llamado alone.pamplona.name con la IP 192.168.51.6 donde el equipo de linux nos ha echo una instalación mínima de Oracle Linux 7.
Ademas de esto, nos han preparado los siguientes discos:

  • partición de 20G montado bajo /u01 que será dedicada para oracle
  • Dos discos para DATA que se corresponden con /dev/sda y /dev/sdb
  • Un disco para FRA que se se corresponde con /dev/sdc
  • Un disco para REDO1 que se corresponde con /dev/sdd
  • Un disco para REDO2 que se corresponde con /dev/sde

Paso 2 : REQ03

El segundo paso es que nos indican que necesitamos crear una Base de datos 19.3

Preparación del servidor

Lo primero que tenemos que llevar a cabo es la preparación del servidor, transfiriendo los mecanismos de conexión de Ansible y configurando el sudores tal como comentábamos en la entrada
Requisitos de los equipos cliente para automatizar con Ansible: SUDO

Plataformacion del sistema oeprativo

Este paso va a llevar a cabo las tareas de preinstalacion y configuración de sistema operativo que nos indica Oracle en sus manuales de instalacion.
Nosotros lo llevaremos a cabo mediante dos roles:

  • so_check
  • oracle_directories

Podemos ver mas detalle en la entrada Plataformando el sistema operativo con Ansible

Instalación de grid infraestructura

En este paso vamos a llevar a cabo la instacion del los recursos y el registro en el servidor del oracle restart.

Para ellos usaremos los roles:

  • unzip_binaries
  • asm_binaries_install
    Una vez finalizado este paso tendremos en funcionamiento un servidor plataformado con un CRS en funcionamiento, pero no tenemos asm en marcha
    Tenemos mas detalle de todos los pasos en Instalando el grid infraesturcure con Ansible

    Instalación de discos y ASM

    Dado que en la petición que nos han llegado nos solicitan una base de datos sobre ASM y nos dan los discos, necesitaremos configurar los discos y el asm, para eso utilizaremos los roles

    • asm_create

    Pero, ademas de usar el role , tendremos que generar un fichero de aprovisionamiento con la información de los discos, para ello crearemos el fichero files/REQ01_asm_create_disks.yml que será especifico para esta petición.

    Para tener mas detalles de lo que hace este bloque de playbooks y el formato y funcionamiento de este fichero podemos ver la entrada Creación de Discos y ASM con Ansible

    Instalación y creación de base de datos 19.3

    En el paso anterior habíamos acabado con la petición REQ01, pero también tenemos la petición REQ03 donde nos solicitan una base de datos 19.3 en ASM , esto lo vamos a llevar a cabo con los playbooks

    • db_binaries_install
    • db_createdb

    Al igual que en el paso anterior, esta petición de creación de base de datos tiene información dedicada, por lo que tendremos que crear un fichero de información especifico files/REQ03_createdb_TEST.yaml
    Para tener mas información de como completar este fichero y cuales son los pasos que ejecutan nuestros roles podemos ver la entrada Instalación y Creación de base de datos con Ansible

    Como podemos ver , el llevar a cabo este tipo de tareas con Ansible es extremadamente sencillo, en este taller hemos usado variedad de playbooks independientes ya que a nivel didáctico es mucho mas sencillo el explicarlo por bloques funcionales , pero en un entorno real se pueden crear tareas o roles con la union de varios de ellos mediante flujos de trabajo

Deja una respuesta