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, который нужен Ansible, если вы используете SSH-аутентификацию по паролю. На Ubuntu/Debian: $ sudo apt-get install sshpass
  • Virtualbox

Системные требования

  • Нет.

Переменные роли

  • sqlplus_basic_rpm_package - RPM пакет, включающий базовые файлы, необходимые для работы приложений OCI, OCCI и JDBC-OCI (по умолчанию: oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm)
  • sqlplus_bin_rpm_package - RPM пакет, включающий дополнительные библиотеки и исполняемые файлы для работы SQL*Plus с быстрого клиента (по умолчанию: 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 - URL для загрузки RPM (по умолчанию: не определён)
  • sqlplus_bin_rpm_package_url - URL для загрузки RPM (по умолчанию: не определён)
  • proxy_env - Переменные окружения для прокси / без прокси для загрузки RPM (по умолчанию: dummy_var: dummy_var)

Доступные теги

  • Нет.

Локальные факты

  • Нет.

Использование

Установка

Сначала убедитесь, что вы скачали необходимые RPM с сайта 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

Теперь перенесите загруженные пакеты на удалённый хост, чтобы Ansible мог их увидеть (через параметр роли sqlplus_rpm_download_directory). По умолчанию Ansible проверяет файлы rpm внутри директории /srv/files/.

Тест подключения

Для быстрого тестирования я использую образ 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 Production

SQL>

Разработка и тестирование

Тестирование с Vagrant

Для быстрого тестирования вы можете запустить виртуальную машину с помощью Vagrant. Возможно, вам придется адаптировать Vagrantfile под вашу среду (система, IP-адреса и т.д.):

  • При необходимости измените имя Vagrant box в Vagrantfile.

  • Создайте виртуальную машину:

(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

Автор

Эта роль была создана Ахмедом Бессифи, специалистом в области DevOps.

О проекте

Install and configure SQLPLUS tool

Установить
ansible-galaxy install abessifi/ansible-sqlplus
Лицензия
mit
Загрузки
2176
Владелец
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.