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
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. –
Merci Jon. Je cherche spécifiquement Ansible ici. –