cluster-up-role
cluster-up-role
Установите клиент OpenShift и создайте локальный экземпляр с помощью oc cluster up
.
Создан для поддержки демонстрационных и тестовых нужд Ansible Container путем автоматизации задач в Руководстве по установке и настройке OpenShift.
Конкретно выполняет следующие задачи:
- Скачивает и устанавливает клиент oc
- Устанавливает
socat
, если работает на OSX - Добавляет имя хоста, связанное с вашим публичным IP, в /etc/hosts
- Запускает кластер
- Предоставляет администраторские права кластера учетной записи developer
- Создает маршрут для открытия локального реестра
- Создает постоянный том
- Используя клиент
oc
, входит в кластер как developer и устанавливает проект на default
Поддерживаемые платформы и тестирование
На данный момент эта роль была протестирована только на OSX с использованием Docker для Mac. Она почти работает на Travis, который является платформой Ubuntu. Имейте это в виду, если вы пытаетесь использовать ее вне OSX, вы, скорее всего, обнаружите ошибку. Если это произойдет, пожалуйста, создайте проблему или отправьте PR, чтобы мы могли обновить роль.
Имя хоста
По умолчанию имя хоста local.openshift
добавляется в ваш файл /etc/hosts и связывается с вашим текущим IP-адресом. Используйте параметр openshift_hostname, если вы предпочитаете другое имя.
Когда кластер создается, он связывается с вашим локальным сетевым IP-адресом. Если вы работаете на ноутбуке или другом мобильном устройстве, вам, возможно, придется воссоздавать кластер каждый раз, когда вы переходите на новую сеть. Создание имени хоста, связанного с вашим фактическим IP-адресом, делает жизнь немного проще.
Небезопасный реестр
Если вы не добавили параметр незащищенного реестра в Docker, роль завершится с ошибкой в первый раз, когда вы ее выполните. Будет сообщение, сообщающее вам подсеть, которую необходимо добавить. Вам также нужно будет добавить значение openshift_hostname. По умолчанию это значение local.openshift. После внесения изменений и перезапуска Docker, запустите роль снова, и на этот раз она выполнится до конца.
Предварительные требования
Вам понадобится установить следующее:
- Docker Engine или Docker для Mac
- Доступ sudo для обновления /etc/hosts и установки двоичного файла
oc
в /usr/local/bin.
ПРИМЕЧАНИЕ: Если вы используете платформу Linux, обязательно выполните инструкции по созданию группы docker, чтобы вы могли выполнять команды docker
напрямую без использования sudo.
Пример плейбука
Когда вы запускаете роль, убедитесь, что параметр gather_facts установлен в истинное значение. Без фактов роль не сможет определить IP-адрес хоста и семейство ОС.
Вот пример плейбука, который включает все настройки по умолчанию. Вы найдете этот точный пример в files/cluster-up.yml. Скопируйте и настройте его под вашу среду.
---
- hosts: localhost
remote_user: root
connection: local
gather_facts: yes
roles:
- role: chouseknecht.cluster-up-role
openshift_github_user: openshift
openshift_github_name: origin
openshift_github_url: https://api.github.com/repos
openshift_release_tag_name: ""
openshift_client_dest: /usr/local/bin
openshift_force_client_install: yes
openshift_volume_name: project-data
openshift_volume_path: "{{ lookup('env','HOME') }}/volumes/project/data"
openshift_hostname: local.openshift
openshift_recreate: yes
После установки роли скопируйте file/cluster-up.yml в ваш проект и выполните его с опцией --ask-sudo-pass
. Вот пример того, как это может выглядеть:
# Установить роль
$ ansible-galaxy install chouseknecht.cluster-up-role
# Скопируйте плейбук из вашего каталога ролей в текущий рабочий каталог
$ cp ${ANSIBLE_ROLES_PATH}/chouseknecht.cluster-up-role/files/cluster-up.yml .
# Создайте файл инвентаря localhost
$ echo "localhost">./inventory
# Запустите плейбук
$ ansible-playbook -i inventory --ask-sudo-pass cluster-up.yml
Развертывание вашего проекта Ansible Container
В следующем примере мы создадим новый проект, установим роль, позволяющую использовать контейнеры jenkins-container, и развернем службу Jenkins в нашем локальном кластере OpenShift.
ПРИМЕЧАНИЕ: для выполнения этого примера вам нужно будет установить Ansible Container 0.3.0. Посмотрите Установка из исходников, если вам нужна помощь.
# Создайте новую папку проекта
$ mkdir jenkins
# Установите рабочий каталог
$ cd jenkins
# Инициализируйте проект
$ ansible-container init
# Установите роль jenkins-container
$ ansible-container install awasilyev.jenkins-container
# Создайте образы
$ ansible-container build
# Сгенерируйте плейбук развертывания и роль
$ ansible-container shipit openshift --local-images
# Установите рабочий каталог на ansible
$ cd ansible
# Запустите плейбук shipit
$ ansible-playbook shipit-openshift.yml
В результате был создан новый проект в OpenShift с названием jenkins
. Чтобы просмотреть проект, войдите в консоль OpenShift, открыв https://local.openshift:8443/console. Имя пользователя: developer
, пароль: developer
. Нажмите на jenkins
, чтобы посмотреть общий обзор проекта.
Нажмите на изображение ниже, чтобы посмотреть видео развертывания службы Jenkins:
Переменные роли
Используйте следующие переменные, чтобы изменить поведение роли:
openshift_github_user: openshift
Владелец репозитория GitHub, в котором находятся целевые загрузки клиента oc.
openshift_github_name: origin
Название репозитория GitHub.
openshift_github_url: https://api.github.com/repos
Конечная точка API GitHub.
openshift_release_tag_name: ""
Тег для желаемой версии двоичного файла
oc
. Если он не указан, будет установлена последняя версия.
openshift_client_dest: /usr/local/bin
Директория, в которую будет установлен
oc
. Должна находиться в вашем PATH.
openshift_force_client_install: yes
Если двоичный файл
oc
уже существует, следует ли его перезаписывать?
openshift_volume_name: project-data
Имя тома.
openshift_volume_path: "{{ lookup('env','HOME') }}/volumes/project/data"
Локальный путь, где будет выделено место для нового тома.
openshift_hostname: local.openshift
Имя хоста, которое вы будете использовать для ссылки на локальный реестр, когда будете готовы отправить образы.
openshift_recreate: yes
Если кластер уже запущен, следует ли его удалить и создать заново?
openshift_up_options: ''
Добавьте любые параметры, которые хотите передать
oc cluster up
. Разделяйте несколько параметров пробелами, так же как вы делали бы это в командной строке.
Зависимости
Нет
Лицензия
Apache v2
Автор
Install the latest oc client and create a local OpenShift cluster using `oc cluster up`.
ansible-galaxy install chouseknecht/cluster-up-role