abessifi.sqlplus
Ansible OSB ロール
説明
これは、Oracle データベースサーバーに接続するための SQL*PLUS ツールをインストールするための Ansible ロールです。
対応システム
- Debian 7/8
- Ubuntu Precise/Trusty
- EL 6/7
ロールの依存関係
- なし。
要件
ソフトウェア要件
- Ansible 1.9 以上(
pip
で簡単にインストール可能。例:sudo pip install ansible==1.9.2
) - Vagrant 1.7 以上
- SSH パスワード認証を使用する場合は、Ansible に必要な
sshpass
パッケージ。Ubuntu/Debian では:$ sudo apt-get install sshpass
- Virtualbox
システム要件
- なし。
ロール変数
sqlplus_basic_rpm_package
- OCI、OCCI、JDBC-OCI アプリケーションを実行するために必要な基本ファイルを含む RPM パッケージ(デフォルト:oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm
)sqlplus_bin_rpm_package
- インスタントクライアントで SQL*Plus を実行するための追加ライブラリと実行可能ファイルを含む RPM パッケージ(デフォルト:oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.x86_64.rpm
)sqlplus_rpm_download_directory
- インストール用の RPM ファイルがコピーされるディレクトリの絶対パス(デフォルト:/srv/files/
)sqlplus_home
- sqlplus のインストールディレクトリの絶対パス(デフォルト:/usr/lib/oracle/12.1/client64
)sqlplus_basic_rpm_package_url
- RPM をダウンロードするための URL(デフォルト:未定義
)sqlplus_bin_rpm_package_url
- RPM をダウンロードするための URL(デフォルト:未定義
)proxy_env
- RPM ダウンロードのプロキシ/noproxy 用の環境変数(デフォルト:dummy_var: dummy_var
)
利用可能なタグ
- なし。
ローカルファクト
- なし。
使用法
インストール
まず、Oracle のウェブサイトから必要な RPM をダウンロードしたことを確認してください:
- 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
ダウンロードしたパッケージをリモートホストに置いて、Ansible がそれを認識できるようにします(sqlplus_rpm_download_directory
ロールパラメータを介して)。デフォルトでは、Ansible は /srv/files/
ディレクトリ内の rpm ファイルをチェックします。
接続テスト
個人的に、私は Oracle 12c データベースサーバーを起動する Docker イメージ sath89/oracle-12c を使用しています。必要なのは、イメージをプルして、ローカルデータディレクトリを作成し、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
データベース接続をテストするには:
$ export ORACLE_SID=xe.oracle.docker
$ sqlplus -L sys/oracle@<DB-SERVER-IP-ADDRESS>/xe.oracle.docker as sysdba
接続成功:
Oracle Database 12c Standard Edition Release 12.1.0.2.0 - 64bit Production
SQL>
開発とテスト
Vagrant でのテスト
クイックテストのために、Vagrant を使用して VM を立ち上げることができます。必要に応じて、Vagrantfile を環境(システム、IP アドレスなど)に合わせて調整する必要があります:
必要に応じて、Vagrantfile 内の Vagrant ボックス名を変更します。
仮想マシンを作成します:
(host)$ vagrant up --no-provision
RPM パッケージを VM にコピーします。
仮想マシンをプロビジョニングします:
(host)$ vagrant provision
受け入れテストの実行
受け入れ/統合テストは、魔法の test-kitchen
ツールを使用してロールに対して実行できます。書かれた受け入れテストは ./test/integration/ ディレクトリにあります。
.kitchen.yml
ファイルは、テスト設定と実行するテストスイートのリストを説明しています。デフォルトでは、インスタンスは Ansible で 統合され、Vagrant 仮想マシンで実行されます。
インスタンスを一覧表示するには:
$ kitchen list
インスタンス ドライバー プロビジョナー 検証者 トランスポート 最後のアクション
default-centos-7-x64 Vagrant AnsiblePlaybook Busser Ssh <未作成>
CentOS 7 プラットフォームでデフォルトのテストスイートを実行するには、次のコマンドを実行します:
$ kitchen test
著者
このロールは、DevOps 愛好者の Ahmed Bessifi によって作成されました。
ansible-galaxy install abessifi.sqlplus