abessifi.sqlplus
Ansible OSB Rolle
Beschreibung
Dies ist eine Ansible-Rolle zur Installation des SQL*PLUS-Tools, um eine Verbindung zu einem Oracle-Datenbankserver herzustellen.
Unterstützte Systeme
- Debian 7/8
- Ubuntu Precise/Trusty
- EL 6/7
Rollenabhängigkeiten
- Keine.
Anforderungen
Software-Anforderungen
- Ansible 1.9 oder höher (kann einfach über
pip
installiert werden. Z. B.:sudo pip install ansible==1.9.2
) - Vagrant 1.7 oder höher
sshpass
-Paket, das von Ansible benötigt wird, wenn Sie die SSH-Authentifizierung mit Passwort verwenden. Auf Ubuntu/Debian:$ sudo apt-get install sshpass
- Virtualbox
Systemanforderungen
- Keine.
Rollenvariablen
sqlplus_basic_rpm_package
- RPM-Paket, das grundlegende Dateien zur Ausführung von OCI, OCCI und JDBC-OCI-Anwendungen enthält (Standard:oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm
)sqlplus_bin_rpm_package
- RPM-Paket, das zusätzliche Bibliotheken und ausführbare Dateien zum Ausführen von SQL*Plus mit Instant Client enthält (Standard:oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.x86_64.rpm
)sqlplus_rpm_download_directory
- Absoluter Pfad zu dem Verzeichnis, in das die Installations-RPM-Dateien kopiert werden (Standard:/srv/files/
)sqlplus_home
- Absoluter Pfad zum Installationsverzeichnis von sqlplus (Standard:/usr/lib/oracle/12.1/client64
)sqlplus_basic_rpm_package_url
- URL zum Herunterladen des RPM (Standard:undefined
)sqlplus_bin_rpm_package_url
- URL zum Herunterladen des RPM (Standard:undefined
)proxy_env
- Umgebungsvariablen für Proxy / noproxy beim Herunterladen von RPM (Standard:dummy_var: dummy_var
)
Verfügbare Tags
- Keine.
Lokale Fakten
- Keine.
Verwendung
Installation
Stellen Sie zuerst sicher, dass Sie die erforderlichen RPMs von der Oracle-Website heruntergeladen haben:
- 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
Legen Sie nun die heruntergeladenen Pakete auf dem Remote-Host ab, sodass Ansible sie sehen kann (über den Parameter sqlplus_rpm_download_directory
). Standardmäßig überprüft Ansible die RPM-Datei im Verzeichnis /srv/files/
.
Verbindung testen
Für persönliche und schnelle Tests verwenden ich das Docker-Image sath89/oracle-12c, das einen Oracle 12c-Datenbankserver bereitstellt. Sie müssen nur das Image herunterladen, ein lokales Datenverzeichnis erstellen und einen oracle-db
-Container starten:
$ 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
Um die Datenbankverbindung zu testen:
$ export ORACLE_SID=xe.oracle.docker
$ sqlplus -L sys/oracle@<DB-SERVER-IP-ADRESSE>/xe.oracle.docker as sysdba
Verbunden mit:
Oracle Database 12c Standard Edition Release 12.1.0.2.0 - 64bit Production
SQL>
Entwicklung und Tests
Test mit Vagrant
Für schnelle Tests können Sie eine VM mit Vagrant erstellen. Möglicherweise müssen Sie die Vagrantfile an Ihre Umgebung anpassen (System, IP-Adressen usw.):
Ändern Sie den Namen der Vagrant-Box in der Vagrantfile, falls nötig.
Erstellen Sie die virtuelle Maschine:
(host)$ vagrant up --no-provision
Kopieren Sie die RPM-Pakete in die VM.
Bereitstellen Sie die virtuelle Maschine:
(host)$ vagrant provision
Akzeptanztests durchführen
Akzeptanz-/Integrationstests können mit dem Tool test-kitchen
gegen die Rolle ausgeführt werden. Alle geschriebenen Akzeptanztests befinden sich im Verzeichnis ./test/integration/.
Die Datei .kitchen.yml
beschreibt die Testkonfiguration und die Liste der zu ausführenden Testsuiten. Standardmäßig werden Ihre Instanzen konvergiert mit Ansible und in Vagrant-VMs ausgeführt.
Um die Instanzen aufzulisten:
$ kitchen list
Instanz Treiber Bereitsteller Prüfer Transport Letzte Aktion
default-centos-7-x64 Vagrant AnsiblePlaybook Busser Ssh <Nicht erstellt>
Um die Standard-Test-Suite auf einer CentOS 7-Plattform auszuführen, führen Sie Folgendes aus:
$ kitchen test
Autor
Diese Rolle wurde von Ahmed Bessifi, einem DevOps-Enthusiasten, erstellt.
ansible-galaxy install abessifi.sqlplus