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 热爱者。
安装
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.