abessifi.sqlplus

Ansible OSB 角色

描述

这是一个 Ansible 角色,用于安装 SQL*PLUS 工具,以连接到 Oracle 数据库服务器。

支持的系统

  • Debian 7/8
  • Ubuntu Precise/Trusty
  • EL 6/7

角色依赖

  • 无。

要求

软件要求

  • Ansible 1.9 或更高版本(可以通过 pip 容易安装,例如:sudo pip install ansible==1.9.2
  • Vagrant 1.7 或更高版本
  • sshpass 软件包,如果使用密码进行 SSH 认证,Ansible 需要此软件包。在 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 - 代理/Noproxy RPM 下载的环境变量(默认值: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 文件。

测试连接

为了快速测试,我个人使用 Docker 映像 sath89/oracle-12c,它启动 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 生产版

SQL>

开发和测试

使用 Vagrant 测试

为了快速测试,可以使用 Vagrant 启动一个虚拟机。您可能需要根据您的环境(系统、IP 地址等)调整 Vagrantfile:

  • 如有需要,请更改 Vagrantfile 中的 Vagrant box 名称。

  • 创建虚拟机:

(host)$ vagrant up --no-provision
  • 将 RPM 包复制到虚拟机中。

  • 配置虚拟机:

(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

作者

该角色由 Ahmed Bessifi 创建,他是一位 DevOps 热爱者。

关于项目

Install and configure SQLPLUS tool

安装
ansible-galaxy install abessifi.sqlplus
许可证
mit
下载
2.5k
拥有者
I’m a tech enthusiast who breathes code and loves creating beautiful software. I’m an active contributor to opensource projects and maintain a few of my own.