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.
ansible-galaxy install abessifi/ansible-sqlplus