abessifi.sqlplus
Rôle Ansible OSB
Description
Ceci est un rôle Ansible pour installer l'outil SQL*PLUS afin de se connecter à un serveur de base de données Oracle.
Systèmes supportés
- Debian 7/8
- Ubuntu Precise/Trusty
- EL 6/7
Dépendances du rôle
- Aucune.
Exigences
Exigences logicielles
- Ansible 1.9 ou supérieur (peut être facilement installé via
pip
. Par exemple :sudo pip install ansible==1.9.2
) - Vagrant 1.7 ou supérieur
- Le paquet
sshpass
qui est nécessaire pour Ansible si vous utilisez l'authentification SSH par mot de passe. Sur Ubuntu/Debian :$ sudo apt-get install sshpass
- Virtualbox
Exigences système
- Aucune.
Variables du rôle
sqlplus_basic_rpm_package
- Paquet RPM incluant les fichiers de base nécessaires pour exécuter les applications OCI, OCCI et JDBC-OCI (par défaut :oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm
)sqlplus_bin_rpm_package
- Paquet RPM incluant des bibliothèques supplémentaires et un exécutable pour exécuter SQL*Plus avec le client instantané (par défaut :oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.x86_64.rpm
)sqlplus_rpm_download_directory
- Chemin absolu vers le répertoire où les fichiers RPM d'installation sont copiés (par défaut :/srv/files/
)sqlplus_home
- Chemin absolu vers le répertoire d'installation de sqlplus (par défaut :/usr/lib/oracle/12.1/client64
)sqlplus_basic_rpm_package_url
- URL pour télécharger le RPM (par défaut :indéfini
)sqlplus_bin_rpm_package_url
- URL pour télécharger le RPM (par défaut :indéfini
)proxy_env
- Variables d'environnement pour proxy / noproxy le téléchargement du RPM (par défaut :dummy_var: dummy_var
)
Tags disponibles
- Aucune.
Faits locaux
- Aucuns.
Utilisation
Installation
Tout d'abord, assurez-vous d'avoir téléchargé les RPM nécessaires sur le site d'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
Maintenant, mettez les paquets téléchargés sur l'hôte distant afin qu'Ansible puisse les voir (via le paramètre de rôle sqlplus_rpm_download_directory
). Par défaut, Ansible vérifie dans le répertoire /srv/files/
.
Tester la connexion
Personnellement, pour des tests rapides, j'utilise l'image Docker sath89/oracle-12c qui met en place un serveur de base de données Oracle 12c. Tout ce que vous devez faire est de récupérer l'image, de créer un répertoire de données local et de lancer un conteneur 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
Pour tester la connexion à la base de données :
$ export ORACLE_SID=xe.oracle.docker
$ sqlplus -L sys/oracle@<ADRESSE-IP-DU-SERVEUR-DB>/xe.oracle.docker as sysdba
Connecté à :
Oracle Database 12c Standard Edition Release 12.1.0.2.0 - 64 bits Production
SQL>
Développement et tests
Tester avec Vagrant
Pour des tests rapides, vous pouvez lancer une machine virtuelle avec Vagrant. Vous devrez peut-être adapter le fichier Vagrantfile à votre environnement (système, adresses IP, etc.) :
Changez le nom du box Vagrant dans le Vagrantfile si nécessaire.
Créez la machine virtuelle :
(hôte)$ vagrant up --no-provision
Copiez les paquets RPM sur la VM.
Provisionnez la machine virtuelle :
(hôte)$ vagrant provision
Exécuter des tests d'acceptation
Les tests d'acceptation/intégration peuvent être exécutés contre le rôle à l'aide de l'outil magique test-kitchen
. Tous les tests d'acceptation écrits se trouvent dans le répertoire ./test/integration/.
Le fichier .kitchen.yml
décrit la configuration de test et la liste des suites de tests à exécuter. Par défaut, vos instances seront convergées avec Ansible et exécutées dans des machines virtuelles Vagrant.
Pour lister les instances :
$ kitchen list
Instance Driver Provisioner Verifier Transport Last Action
default-centos-7-x64 Vagrant AnsiblePlaybook Busser Ssh <Non créé>
Pour exécuter la suite de tests par défaut sur une plateforme CentOS 7, exécutez la commande suivante :
$ kitchen test
Auteur
Ce rôle a été créé par Ahmed Bessifi, un passionné de DevOps.
ansible-galaxy install abessifi.sqlplus