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:

Развертывание 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

Автор

@chouseknecht

О проекте

Install the latest oc client and create a local OpenShift cluster using `oc cluster up`.

Установить
ansible-galaxy install chouseknecht/cluster-up-role
Лицензия
apache-2.0
Загрузки
146
Владелец
Ansible Galaxy Engineering Manager