2016-12-27 4 views
3

Un examen des modules de base de données principaux dans Ansible documentation ne montre aucun signe d'un module pour Oracle. Quel est le meilleur moyen de gérer les déploiements SQL/PLSQL via les bases de données Ansible pour Oracle?Exécution de scripts SQL Oracle avec un playbook Ansible

Devons-nous utiliser les rôles de Ansible Galaxy pour gérer cela? Très peu de personnes semblent avoir téléchargé les rôles répertoriés sur Galaxy pour Oracle.

+1

Quand vous dites "scripts SQL", voulez-vous dire de grands scripts SQL * Plus, ou juste des commandes SQL et PL/SQL aléatoires? Si vous cherchez un moyen d'automatiser les commandes SQL et PL/SQL, vous pouvez regarder mon programme open source [Method5] (https://method5.github.io/). C'est un programme d'exécution à distance, sans agent et parallèle; Un peu comme Ansible, mais il est spécialement conçu pour les bases de données Oracle. –

+0

Merci Jon. Je cherche spécifiquement Ansible ici. –

Répondre

0

J'ai créé un rôle pour installer l'apex 5 (où je désinstalle d'abord l'apex 4). J'utilise des modules comme 'script' et 'shell'. Je ne suis pas très content de l'initialisation de l'environnement mais j'apprends encore. Pour toute tâche SQL/PLSQL, sqlplus est le bon outil. (peut-être que SQLcl peut faire mieux ..?)

- name: Determine apex version 
    become: yes 
    become_user: oracle 
    shell: source /etc/profile && sqlplus -S/as sysdba @"{{ temp_dir }}/apexver.sql" 
    register: apexver 
    args: 
    executable: /bin/bash 
    changed_when: "'APEX_040000' in apexver.stdout" 

- name: oracle apex remove 
    become: yes 
    become_user: oracle 
    script: apex_remove.sh {{ item }} 
    with_items: 
    - 'XE' 
    ignore_errors: yes 
    register: result 
    when: "'APEX_040000' in apexver.stdout" 

22:18 $ cat apex_remove.sh 
#!/bin/sh 

# set oracle environment 
. /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh 
ORACLE_SID=$1 

sqlplus -s /nolog <<EOF 
connect/as sysdba 
@?/apex/apxremov.sql 
exit 
EOF 
+0

Je me demande pourquoi Ansible ne donnerait pas un module pour Oracle DB –