{"id":2157,"date":"2020-02-05T23:16:07","date_gmt":"2020-02-05T22:16:07","guid":{"rendered":"http:\/\/clemente.pamplona.name\/dba\/?p=2157"},"modified":"2020-04-15T16:30:49","modified_gmt":"2020-04-15T14:30:49","slug":"aprovisionamiento-de-una-base-de-datos-con-ansible","status":"publish","type":"post","link":"http:\/\/clemente.pamplona.name\/dba\/aprovisionamiento-de-una-base-de-datos-con-ansible\/","title":{"rendered":"Aprovisionamiento de una base de datos con ansible"},"content":{"rendered":"<p>Llego la hora de la verdad.<br \/>\nVamos 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 <\/p>\n<p>Para ello vamos a usar el codigo que tenemos en <a href=\"https:\/\/github.com\/pamplonaDBA\/provisioning\" rel=\"noopener noreferrer\" target=\"_blank\">GitHUB<\/a> y las explicaciones detalladas de las anteriores entradas.<\/p>\n<p>Recopilando un poco la informacion tenemos un \u00e1rbol de playbooks y ficheros <\/p>\n<pre>\r\n  Root\r\n   |\r\n   |- vars:\r\n        |- main.yaml                     Specific rules an locations of our oracle department\r\n        |- oracle_files.yaml              Source  & patch files info and locations    \r\n   |\r\n   |- files\r\n        |-CRQ001_asm_create_disks.yaml      Example of asm disks provisioning\r\n        |-CRQ002_createdb_ASMTEST.yaml      Example of database provisioning\r\n        |-CRQ003_createdb_FSTEST.yaml       Example of database provisioning\r\n   |    \r\n   | - roles\r\n         |so_check                           Checks the pre requirements of S.O\r\n            -|\r\n             |vars\r\n                |-  OracleLinux_7_oracle_19.3_requisites.yaml      Prerrequisites for a installation of a 19.3 oracle files at OEL7\r\n            \r\n         |oracle_directories                 Role wich checks all required file structure exsists\r\n         |\r\n         |unzip_binaries                     Role wich unzips selected files \r\n         |\r\n         |asm_binaries_install               Role wich install and setus the CRS = Listener          \r\n            |\r\n            |Templates \r\n                |-asm_binaries_19.3.rsp.j2   Jinja files wich create the asm response file for 19.3 version \r\n                |-asm_binaries_12.1.rsp.j2   Jinja files wich create the asm response file for 12.1 version \r\n                |-asm_binaries_12.2.rsp.j2   Jinja files wich create the asm response file for 12.2 version \r\n         |    \r\n         | asm_create                       Role which configures asmlib, create asmdisks, diskgroups and asm \r\n         |\r\n         | db_create                        Role wich creates a database \r\n            |\r\n            |Templates \r\n                |-rdbms_createdb_19.3.rsp.j2   Jinja files wich create the rdbms response file for 19.3 version \r\n                |-rdbms_createdb_12.1.rsp.j2   Jinja files wich create the rdbms response file for 12.1 version \r\n                |-rdbms_createdb_12.2.rsp.j2   Jinja files wich create the rdbms response file for 12.2 version \r\n         |\r\n         |\r\n    | check_so_prerrequisites.yaml     Playbook wich checks the S.O  prerrequisites\r\n    |     \r\n    | asm_only_binaries                Playbook which install CRS listener and setup them\r\n    | \r\n    | asm_full_install                 Playbook which install CRS,listeners, confiurres asmlib, create asmdisks,diskgroups and asm \r\n    |\r\n    | db_binaries_install              Playbook wich installs and inventory database binaries \r\n    |\r\n    | asmfull_plus_db_binaries         Playbook   which install CRS,listeners, confiurres asmlib, create asmdisks,diskgroups, asm and database binaries \r\n    |\r\n    | db_createdb                      Playbook wich creates a database \r\n\r\n\r\n<\/pre>\n<h1> Prerrequisitos del provisionamientio <\/h1>\n<p>Vamos a llevar a cabo el proceso en dos pasos.<\/p>\n<h2>Paso 1 REQ01<\/h2>\n<p>Desde la direcci\u00f3n del departamento nos indican que  nos han enviado la petici\u00f3n <\/b>REQ01<\/b> donde ya tenemos un servidor llamado <i>alone.pamplona.name<\/i> con la IP <i>192.168.51.6<\/i> donde el equipo de linux nos ha echo una instalaci\u00f3n m\u00ednima de Oracle Linux 7.<br \/>\nAdemas de esto, nos han preparado los siguientes discos:<\/p>\n<ul>\n<li> partici\u00f3n de 20G montado bajo \/u01 que ser\u00e1 dedicada para oracle\n<li> Dos discos para DATA que se corresponden con <i> \/dev\/sda<\/i> y <i>\/dev\/sdb<\/i>\n<li> Un disco para FRA que se se corresponde con <i>\/dev\/sdc<\/i>\n<li> Un disco para REDO1 que se corresponde con <i> \/dev\/sdd<\/i>\n<li> Un disco para REDO2 que se corresponde con <\/i> \/dev\/sde<\/i>\n<\/ul>\n<h2> Paso 2 : REQ03 <\/h2>\n<p>El segundo paso es que nos indican que necesitamos crear una Base de datos 19.3 <\/p>\n<h1> Preparaci\u00f3n del servidor<\/h1>\n<p>Lo primero que tenemos que llevar a cabo es la preparaci\u00f3n del servidor, transfiriendo los mecanismos de conexi\u00f3n de Ansible y configurando el sudores tal como coment\u00e1bamos en la entrada<br \/>\n<a href=\"http:\/\/clemente.pamplona.name\/dba\/requisitos-de-los-equipos-cliente-para-automatizar-con-ansible-sudo\/\" rel=\"noopener noreferrer\" target=\"_blank\">Requisitos de los equipos cliente para  automatizar con Ansible: SUDO<\/a><\/p>\n<h1> Plataformacion del sistema oeprativo<\/h1>\n<p>Este paso va a llevar a cabo las tareas de preinstalacion  y configuraci\u00f3n de sistema operativo que nos indica Oracle en sus manuales de instalacion.<br \/>\nNosotros lo llevaremos a cabo mediante dos roles:<\/p>\n<ul>\n<li> so_check\n<li> oracle_directories\n<\/ul>\n<p>Podemos ver mas detalle en la entrada  <a href=\"http:\/\/clemente.pamplona.name\/dba\/plataformando-el-sistema-operativo-con-ansible\/\" rel=\"noopener noreferrer\" target=\"_blank\">Plataformando el sistema operativo con Ansible<\/a><\/p>\n<h1>Instalaci\u00f3n de grid infraestructura <\/h1>\n<p>En este paso vamos a llevar a cabo la instacion del los recursos y el registro en el servidor del oracle restart.<\/p>\n<p>Para ellos usaremos los roles:<\/p>\n<ul>\n<li> unzip_binaries\n<li>asm_binaries_install<br \/>\nUna vez finalizado este paso tendremos en funcionamiento un servidor plataformado con un CRS en funcionamiento, pero no tenemos asm en marcha<br \/>\nTenemos mas detalle de todos los pasos en <a href=\"http:\/\/clemente.pamplona.name\/dba\/instalando-el-grid-infraesturcure-con-ansible\/\">Instalando el grid infraesturcure con Ansible<\/a><\/p>\n<h1> Instalaci\u00f3n de discos y ASM <\/h1>\n<p>Dado que en la petici\u00f3n 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<\/p>\n<ul>\n<li> asm_create\n<\/ul>\n<p>Pero, ademas de usar el role , tendremos que generar un fichero de aprovisionamiento con la informaci\u00f3n de los discos, para ello crearemos el fichero <b>files\/REQ01_asm_create_disks.yml<\/b> que ser\u00e1 especifico para esta petici\u00f3n.<\/p>\n<p>Para tener mas detalles de lo que hace este bloque de playbooks y el formato y funcionamiento de este fichero podemos ver la entrada <a href=\"http:\/\/clemente.pamplona.name\/dba\/creacion-de-discos-y-asm-con-ansible\/\">Creaci\u00f3n de Discos y ASM  con Ansible<\/a><\/p>\n<h1> Instalaci\u00f3n y creaci\u00f3n de base de datos 19.3<\/h1>\n<p>En el paso anterior hab\u00edamos acabado con la petici\u00f3n REQ01, pero tambi\u00e9n tenemos la petici\u00f3n REQ03 donde nos solicitan una base de datos 19.3 en ASM , esto lo vamos a llevar a cabo con los playbooks<\/p>\n<ul>\n<li>db_binaries_install\n<li>db_createdb\n<\/ul>\n<p>Al igual que en el paso anterior, esta petici\u00f3n de creaci\u00f3n de base de datos tiene informaci\u00f3n dedicada, por lo que tendremos que crear un fichero de informaci\u00f3n especifico <b>files\/REQ03_createdb_TEST.yaml<\/b><br \/>\nPara tener mas informaci\u00f3n de como completar este fichero y cuales son los pasos que ejecutan nuestros roles podemos ver la entrada <a href=\"http:\/\/clemente.pamplona.name\/dba\/instalacion-y-creacion-de-base-de-datos-con-ansible\/\">Instalaci\u00f3n y Creaci\u00f3n de base de datos con Ansible<\/a><\/p>\n<p>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\u00e1ctico 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<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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 &hellip; <a href=\"http:\/\/clemente.pamplona.name\/dba\/aprovisionamiento-de-una-base-de-datos-con-ansible\/\">Sigue leyendo <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[975,976],"tags":[],"class_list":["post-2157","post","type-post","status-publish","format-standard","hentry","category-19c","category-ansible"],"_links":{"self":[{"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/posts\/2157","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/comments?post=2157"}],"version-history":[{"count":7,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/posts\/2157\/revisions"}],"predecessor-version":[{"id":2185,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/posts\/2157\/revisions\/2185"}],"wp:attachment":[{"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/media?parent=2157"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/categories?post=2157"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/tags?post=2157"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}