gluu-setup

Ansible Gluu: Установка роли

gluu-setup - это роль Ansible для простой установки сервера Gluu, его модулей и сертификата.

В режиме кластера роль установит SSH-ключ, чтобы разрешить доступ для менеджера кластера, распределит публичные сертификаты между всеми серверами, обновит LDAP-сервер для принятия внешних соединений и обновит конфигурацию для использования всех LDAP-серверов.

Чтобы использовать функциональность режима кластера в этой роли, все сервера Gluu должны быть в группе gluu-servers, а менеджер кластера Gluu должен быть в группе gluu-cluster-manager.

История

Сервер для управления доступом и аутентификацией Gluu с открытым исходным кодом позволяет организациям предлагать единую систему входа, надежную аутентификацию и централизовать управление.

Требования

Для развертывания вам понадобятся:

  • Ansible на вашей машине развертывания
  • Также нужно установить эту зависимость python:
    • dnspython
$ pip install -r requirements.txt

Установка

gluu-setup - это роль Ansible, доступная для установки через Ansible Galaxy. Чтобы установить роль gluu-setup, используйте следующую команду.

$ ansible-galaxy install GuillaumeSmaha.gluu-setup

Обновление

Если вы хотите обновить роль, вам нужно указать параметр --force при установке. Проверьте следующую команду:

$ ansible-galaxy install --force GuillaumeSmaha.gluu-setup

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

vars:

  # ===================================
  # Gluu на одном узле
  # ===================================

  # Определите пользовательскую версию пакета для установки.
  # Чтобы получить список доступных версий пакетов, посетите: https://gluu.org/docs/ce/
  gluu_version: 3.1.7

  # Определите имя хоста, используемое Gluu.
  gluu_hostname: '{{ ansible_ssh_host }}'

  # IP-адрес хоста.
  gluu_ip: '{{ lookup("dig", "{{ gluu_internal_hostname }}.") | regex_replace("^NXDOMAIN$", "") | default(gluu_internal_hostname, true) }}'


  # Список модулей для установки
  gluu_modules:
  - oxauth
  - oxtrust
  - ldap
  - httpd
  # Доступные модули:
  # - download_wars #Принудительная загрузка war-файлов
  # - oxauth
  # - oxtrust
  # - ldap
  # - httpd
  # - saml
  # - asimba
  # - cas
  # - oxauth-rp
  # - passport
  # - jce

  # Словарь сертификатов для Gluu.
  # Вы можете добавить необходимый ключ.
  # Каждый ключ должен содержать ключ `publicKey` и, при необходимости, ключ `privateKey` с путем к файлам сертификатов.
  # Также, когда gluu_cluster = True, вы можете установить параметр `shareable`, чтобы скопировать публичный ключ на все другие серверы Gluu.
  # Список официальных ключей для Gluu:
  #   - asimba
  #   - httpd
  #   - idp-encryption
  #   - idp-signing
  #   - openldap
  #   - shipIDP
  # Пример:
  #  gluu_certificates:
  #    idp-signing:
  #      publicKey: "{{ playbook_dir }}/templates/{{ inventory_dir | basename }}/certificates/idp-signing.crt"
  #      privateKey: "{{ playbook_dir }}/templates/{{ inventory_dir | basename }}/certificates/idp-signing.key"
  gluu_certificates:

  # Тип LDAP-сервера.
  # С версии Gluu 3.1.2 вы можете выбрать тип LDAP-сервера.
  # Этот скрипт поддерживает только openLDAP для репликации LDAP.
  # Доступные LDAP серверы:
  # - openldap
  # - opendj
  # По умолчанию: openldap
  gluu_ldap_server: openldap

  # Пользовательский сертификат для LDAP-сервера и клиента
  # Клиент Gluu oxAuth/oxTrust нуждается в файле pkcs12 с приватным и публичным ключами
  # По умолчанию:
  gluu_ldap_certificate:
    cert_ca_file:
    cert_file:
    cert_key_file:

  # Файл для настройки схемы LDAP
  gluu_ldap_custom_schema_file: custom_schema.json.default

  # Вы можете установить пароль LDAP.
  # По умолчанию: случайный пароль
  gluu_ldap_password:

  # Базовый inum для Gluu
  # Inum в Gluu разделяется на 3 части:
  # - База
  # - Родительский тип для организации или устройства
  # - Родительское значение для организации или устройства
  # - Тип (только для организации)
  # - Значение (только для организации)
  # Пример: @!0000.1111.2222.3333!0001!1111.2222!0000!1111.2222 можно разделить следующим образом:
  # - База: @!0000.1111.2222.3333
  # - Родительский тип: !0001!
  # - Родительское значение: 1111.2222
  # - Тип: !0000!
  # - Значение: 1111.2222
  # Вы можете найти каждый тип в документации Gluu: https://gluu.org/docs/ce/api-guide/api/
  # По умолчанию: случайное значение
  gluu_inum_base:

  # inum организации
  # Значение должно содержать значение gluu_inum_base !
  # Пример: gluu_inum_org: "{{ gluu_inum_base }}!0001!1111.2222"
  # По умолчанию: случайное значение
  gluu_inum_org:

  # inum устройства
  # Значение должно содержать значение gluu_inum_base !
  # Пример: gluu_inum_appliance: "{{ gluu_inum_base }}!0002!1111.2222"
  # По умолчанию: случайное значение
  gluu_inum_appliance:

  # Свойства для автоматически сгенерированных сертификатов (самоподписанных)
  gluu_certificate_properties:
    org_name: Организация
    country_code: CA
    city: Монреаль
    state: QC

  # ===================================
  # Gluu на нескольких узлах (кластер)
  # ===================================

  # Определите, находится ли сервер в кластере.
  # Когда gluu_cluster = True и если у вас установлен менеджер кластера в группе "gluu-cluster-manager"; тогда публичный SSH-ключ менеджера кластера будет скопирован на каждый сервер Gluu.
  gluu_cluster: False

  # Только когда gluu_cluster = True.
  # Цель этого параметра - различить внутреннее имя хоста и внешнее имя хоста (gluu_hostname).
  # Внешнее имя хоста будет вызываться извне, и это балансировщик нагрузки, такой как nginx. Все серверы Gluu будут настроены с внешним именем хоста.
  # Чтобы соединить все узлы кластера с LDAP-серверами, необходимо иметь внутреннее имя хоста, которое не будет вызывать внешнее имя хоста.
  # По умолчанию это равно gluu_hostname
  gluu_internal_hostname: '{{ gluu_hostname }}'

  # Когда gluu_cluster = True, определите, есть ли несколько LDAP-серверов с репликацией.
  gluu_cluster_ldap_replication: False

  # Когда gluu_cluster = True и gluu_cluster_ldap_replication = True, определите, будет ли конфигурация LDAP устанавливаться ansible или через веб-интерфейс менеджера кластера.
  # При gluu_cluster_ldap_replication = False этот параметр включает настройку EXTRA_SLAPD_ARGS="-F /opt/symas/etc/openldap/slapd.d".
  # При gluu_cluster_ldap_replication = True файл slapd.conf будет отредактирован для настройки репликации между всеми серверами с модулем LDAP.
  gluu_cluster_ldap_replication_without_cluster_manager: False

  # Когда gluu_cluster = True, этот параметр позволяет установить конфигурацию по умолчанию для другого хоста.
  # Для его использования нужно быть осторожным с порядком выполнения ansible для каждого хоста.
  # Содержимое файла /opt/gluu-server-{{ gluu_version }}/install//community-edition-setup/setup.properties.last определенного хоста будет скопировано в setup.properties.
  # Например, после установки можно создать зеркальный сервер с такой же конфигурацией, как у основного сервера.
  gluu_install_from: main

  # Когда gluu_cluster = True, вы можете установить имена хостов внешних LDAP-серверов Gluu.
  # По умолчанию список всех серверов с установленным модулем LDAP.
  # Например, простой сервер-потребитель, установленный только с модулем oxauth, будет использовать этот параметр с именем хоста двух основных серверов.
  # Пример:
  #   gluu_ldap_hostname: 192.168.1.101:1636,192.168.1.102:1636
  gluu_ldap_hostname:

Развертывание

Чтобы развернуть, вам нужно выполнить несколько шагов:

  • Создайте новый файл hosts. Проверьте документацию по инвентаризации Ansible, если вам нужна помощь.
  • Создайте новый плейбук для развертывания вашего приложения, например, deploy.yml
  • Настройте переменные роли (см. Переменные роли)
  • Включите роль GuillaumeSmaha.gluu-setup как часть выполнения
  • Запустите плейбук развертывания

ansible-playbook -i hosts deploy.yml

Если все было настроено правильно, эта команда установит Gluu Cluster Manager на хост.

Пример плейбука

В папке example вы можете проверить пример проекта, который показывает, как развернуть.

Чтобы запустить его, вам потребуется Vagrant и установленная роль. Пожалуйста, посетите https://www.vagrantup.com для получения дополнительной информации о Vagrant и нашей секции установки.

$ cd example
$ vagrant plugin install vagrant-lxc
$ vagrant plugin install vagrant-hostmanager
$ vagrant up --provider=lxc
$ ansible-galaxy install GuillaumeSmaha.gluu-setup
$ ansible-playbook -i env/ubuntu deploy.yml
$ ansible-playbook -i env/centos deploy.yml

Доступ к Gluu можно получить, перейдя по адресу:

https://gluu-setup-ubuntu/

или

https://gluu-setup-centos/

Примеры проектов

Вы можете найти полный пример плейбука здесь:

https://github.com/GuillaumeSmaha/ansible-gluu-playbook

О проекте

Gluu Setup for RHEL/CentOS and Ubuntu

Установить
ansible-galaxy install GuillaumeSmaha/ansible-role-gluu-setup
Лицензия
gpl-3.0
Загрузки
194
Владелец