Spec-Zone.ru › Chef 16

Многоуровневая установка

[править на GitHub]

В этом разделе описано, как настроить сервер Chef Infra с одним бэкендом и несколькими серверами фронтенда с балансировкой нагрузки.

image

Предварительные требования

Перед установкой программного обеспечения Chef Infra Server выполните следующие шаги:

  • Сервер бэкенда должен быть доступен с каждого сервера фронтенда. Виртуальный IP-адрес создается и управляется сервером Chef Infra, но также должен быть добавлен в DNS, чтобы все машины в конфигурации с тиering могли к нему получить доступ.
  • Персистентные данные на сервере бэкенда Chef Infra в основном состоят из файлов и каталогов куков. Перед установкой сервера Chef Infra следует выделить отдельные диски для хранения этих данных.
  • Для серверов фронтенда следует использовать балансировку нагрузки, а также запись DNS для виртуального IP-адреса, используемого для балансировки нагрузки. Этот виртуальный IP-адрес добавляется в файл chef-server.rb в качестве api_fqdn.
  • Все необходимые порты должны быть открыты. Список портов см. в разделе «Брандмауэры» (ниже). Все соединения с сервером Chef Infra и от него осуществляются по протоколу TCP. Для получения инструкций по настройке портов, если это необходимо, обратитесь к руководству операционной системы или к системным администраторам.
  • Имя хоста сервера Chef Infra должно быть FQDN, включая суффикс домена, и должно быть разрешимо серверами бэкенда и фронтенда. Дополнительную информацию см. в разделе Имена хостов, FQDN.
  • chef-server-ctl reconfigure не будет привязывать backend_vip к серверу бэкенда. Наиболее просто определить backend_vip как уже настроенный основной IP-адрес бэкенд-системы. Если вам нужно использовать дополнительный адрес, его необходимо настроить и привязать к системе перед запуском chef-server-ctl reconfigure.

Основные требования к оборудованию

Для развертывания с тиering сервер бэкенда должен соответствовать следующим требованиям к оборудованию:

  • 64-разрядная архитектура
  • 8 ядер в общей сложности (физических или виртуальных)
  • 16 ГБ оперативной памяти
  • Быстрое, избыточное хранилище (SSD/решение на основе RAID)
    • 50 ГБ/сервер бэкенда (SSD при локальном размещении, Premium Storage в Microsoft Azure, EBS-Optimized GP2 в AWS)
  • Интерфейс сетевой карты 1 GigE
  • Сервер бэкенда; все остальные системы будут серверами фронтенда.

Настройка диска

Персистентные данные на сервере бэкенда сервера Chef Infra в основном состоят из файлов и каталогов куков. Перед установкой сервера Chef Infra следует выделить отдельные диски для хранения этих данных. Эти диски должны быть частью решения на основе SSD или RAID-массива, обеспечивающего избыточность и высокую производительность IOPS. Это руководство по конфигурации предполагает, что:

  • Доступно ~50 ГБ неразмеченного пространства на диске. Объем дискового пространства должен увеличиваться с числом узлов, управляемых сервером бэкенда. Хорошим правилом является выделение 2 МБ на узел.
  • Дисковое пространство представляется как одно устройство. Например: /dev/sdb.
  • Хранилище добавляется в группу томов с именем opscode и представляется серверу Chef Infra путем монтирования на /var/opt/opscode перед переконфигурацией

Следующие команды правильно настраивают конфигурацию диска на сервере бэкенда:

pvcreate /dev/sdb

и:

vgcreate opscode /dev/sdb

и:

lvcreate -l 80%VG -n tiered opscode

Монтирование устройства хранения

Для создания и монтирования устройства хранения на сервере бэкенда выполните следующие действия:

  1. Создайте файловую систему. Например, ext4 типа с именем tiered:

    mkfs.ext4 /dev/opscode/tiered
    

    затем:

    mkdir -p /var/opt/opscode
    

    и затем:

    mount /dev/opscode/tiered /var/opt/opscode
    

Бэкенд

Для настройки бэкенд-сервера Chef Infra выполните следующие шаги:

  1. Загрузите пакеты с https://downloads.chef.io/chef-server/. Для Red Hat и CentOS 6:

    rpm -Uvh /tmp/chef-server-core-<version>.rpm
    

    Для Ubuntu:

    dpkg -i /tmp/chef-server-core-<version>.deb
    

    Через несколько минут сервер Chef Infra будет установлен.

  2. Создайте файл с именем chef-server.rb, который расположен в каталоге /etc/opscode/. См. раздел chef-server.rb ниже для примера настроек и необходимых значений.

chef-server.rb

Файл chef-server.rb, расположенный в каталоге /etc/opscode/ описывает топологию конфигурации с тиering. На сервере бэкенда создайте файл с именем chef-server.rb и сохраните его в каталоге /etc/opscode/.

Добавьте следующие настройки в файл chef-server.rb:

  1. Определите тип топологии:

    topology "tier"
    
  2. Определите сервер бэкенда:

    server "FQDN",
      :ipaddress => "IP_ADDRESS",
      :role => "backend",
      :bootstrap => true
    

    Замените FQDN на FQDN сервера и IP_ADDRESS на IP-адрес сервера. Роль сервера бэкенда — "backend".

  3. Определите виртуальный IP-адрес бэкенда:

    backend_vip "FQDN",
      :ipaddress => "IP_ADDRESS",
      :device => "eth0"
    

    Замените FQDN на FQDN сервера. Замените IP_ADDRESS на виртуальный IP-адрес сервера. Параметр :device должен соответствовать интерфейсу Ethernet, к которому будет привязан виртуальный IP-адрес. Обычно это внешний интерфейс сервера. В типичном развертывании с тиering в этой конфигурации также могут быть указаны основной FQDN и IP-адрес, которые уже настроены для бэкенда. Запуск chef-server-ctl reconfigure не привяжет backend_vip адрес к интерфейсу, это необходимо сделать при запуске машины.

  4. Определите каждый сервер фронтенда:

    server "FQDN",
      :ipaddress => "IP_ADDRESS",
      :role => "frontend"
    

    Замените FQDN на FQDN сервера фронтенда. Замените IP_ADDRESS на IP-адрес сервера фронтенда. Установите :role в "frontend".

    Добавьте отдельные записи в файл chef-server.rb для каждого сервера фронтенда.

  5. Определите FQDN API:

    api_fqdn "FQDN"
    

    Замените FQDN на FQDN виртуального IP-адреса с балансировкой нагрузки, который должен быть равен FQDN URI службы, используемой сервером Chef Infra.

  6. Переконфигурируйте сервер Chef Infra и консоль управления Chef (автономные и серверы фронтенда в группе, участвующие в установке High Availability):

chef-server-ctl reconfigure

Фронтенд

Для каждого сервера фронтенда выполните следующие шаги для настройки сервера Chef Infra:

  1. Установите пакет сервера Chef Infra. Для Red Hat и CentOS 6:

    rpm -Uvh /tmp/chef-server-core-<version>.rpm
    

    Для Ubuntu:

    dpkg -i /tmp/chef-server-core-<version>.deb
    

    Через несколько минут сервер Chef Infra будет установлен.

  2. Создайте каталог /etc/opscode/ и скопируйте содержимое каталога /etc/opscode с основного сервера бэкенда, включая все сертификаты и файл chef-server.rb.

  3. Переконфигурируйте сервер Chef Infra и консоль управления Chef (автономные и серверы фронтенда в группе, участвующие в установке High Availability):

chef-server-ctl reconfigure
  1. Запустите сервер Chef Infra:

    chef-server-ctl start
    

На одном сервере фронтенда создайте администратора и организацию:

  1. Выполните следующую команду для создания администратора:
sudo chef-server-ctl user-create USER_NAME FIRST_NAME LAST_NAME EMAIL 'PASSWORD' --filename FILE_NAME

Автоматически генерируется закрытый ключ RSA. Это закрытый ключ пользователя, и его следует сохранить в безопасном месте. Опция --filename сохранит закрытый ключ RSA в указанный абсолютный путь.

Например:

sudo chef-server-ctl user-create janedoe Jane Doe janed@example.com 'abc123' --filename /path/to/janedoe.pem
  1. Выполните следующую команду для создания организации:
sudo chef-server-ctl org-create short_name 'full_organization_name' --association_user user_name --filename ORGANIZATION-validator.pem

Например:

sudo chef-server-ctl org-create 4thcoffee 'Fourth Coffee, Inc.' --association_user janedoe --filename /path/to/4thcoffee-validator.pem

Имя должно начинаться с прописной буквы или цифры, содержать только прописные буквы, цифры, дефисы и символы подчеркивания, и должно быть от 1 до 255 символов. Например: 4thcoffee.

Полное имя должно начинаться с символа, отличного от пробела, и должно содержать от 1 до 1023 символов. Например: 'Fourth Coffee, Inc.'.

Опция --association_user свяжет user_name с группой безопасности admins на сервере Chef Infra.

Автоматически генерируется закрытый ключ RSA. Это ключ chef-validator, и его следует сохранить в безопасном месте. Опция --filename сохранит закрытый ключ RSA в указанный абсолютный путь.

Включение функций

Включите дополнительные функции сервера Chef Infra! Пакеты могут быть загружены непосредственно в процессе установки, или их можно сначала загрузить в локальную директорию, а затем установить.

Использование загрузок

Команда install по умолчанию загружает пакеты с https://packages.chef.io/. Для систем, не защищенных брандмауэром (и имеющих подключение к https://packages.chef.io/), пакет консоли управления Chef можно установить, как описано ниже:

Chef Manage

Используйте консоль управления Chef для управления пакетами данных, атрибутами, списками выполнения, ролями, средами и куками с помощью веб-интерфейса.

На каждом сервере фронтенда в конфигурации сервера Chef Infra выполните:

chef-server-ctl install chef-manage

затем:

chef-server-ctl reconfigure

и затем:

chef-manage-ctl reconfigure

Для принятия Chef MLSA:

sudo chef-manage-ctl reconfigure --accept-license

Это обновляет сервер Chef Infra и создает файл /etc/opscode-manage/secrets.rb. При запуске консоли управления Chef 1.11 (или выше) скопируйте файл secrets.rb в каталог /etc/opscode-manage на одном из серверов фронтенда в тот же каталог на каждом из других серверов фронтенда, а затем снова выполните chef-manage-ctl reconfigure, чтобы скопированный файл /etc/opscode-manage/secrets.rb был правильно использован.

Использование локальных пакетов

Используйте команду install с опцией --path для установки плагинов Chef Manage (chef-manage) и Push Jobs (opscode-push-jobs-server) для сервера Chef Infra.

sudo chef-server-ctl install PACKAGE_NAME --path /path/to/package/directory

Например:

sudo chef-server-ctl install chef-manage --path /root/packages

Команда chef-server-ctl установит первый пакет chef-manage, найденный в каталоге /root/packages.

Справочная информация

В следующих разделах показан пример файла chef-server.rb и список портов, необходимых для сервера Chef Infra Server.

chef-server.rb

Полный файл конфигурации chef-server.rb для четырёхуровневой конфигурации сервера Chef Infra Server, состоящий из:

FQDN Реальный IP-адрес Роль
be1.example.com 192.0.2.0 backend
fe1.example.com 192.168.4.2 frontend
fe2.example.com 192.168.4.3 frontend
fe3.example.com 192.168.4.4 frontend
chef.example.com VIP балансированного frontend
be.example.com 192.168.4.7 VIP балансированного backend

Выглядит так:

topology "tier"

server "be1.example.com",
  :ipaddress => "192.0.2.0",
  :role => "backend",
  :bootstrap => true

backend_vip "be.example.com",
  :ipaddress => "192.168.4.7",
  :device => "eth0"

server "fe1.example.com",
  :ipaddress => "192.168.4.2",
  :role => "frontend"

server "fe2.example.com",
  :ipaddress => "192.168.4.3",
  :role => "frontend"

server "fe3.example.com",
  :ipaddress => "192.168.4.4",
  :role => "frontend"

api_fqdn "chef.example.com"

Брандмауэры

Все порты, используемые сервером Chef Infra Server, являются портами TCP. Обратитесь к руководству по операционной системе или системным администраторам для получения инструкций по включению изменений портов, если это необходимо.

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

telnet HOST_NAME PORT

Должен быть настроен единственный интерфейс обратной связи с использованием адреса 127.0.0.1. Это гарантирует, что все службы будут доступны серверу Chef Infra Server в случае, если сервер Chef Infra Server попытается связаться с собой из машины frontend или backend. Все порты должны быть доступны через интерфейс обратной связи соответствующих хостов.

Backend

Для серверов backend в установке сервера Chef Infra Server с несколькими уровнями убедитесь, что порты, отмеченные как внешние (отмеченные как yes в столбце Внешний), открыты и доступны через все используемые брандмауэры:

Порт Имя службы, описание Внешний

80, 443, 9683

nginx

Служба nginx используется для управления трафиком сервера Chef Infra Server, включая виртуальные хосты для маршрутизации запросов/ответов внутренних и внешних API, маршрутизации внешних запросов плагинов и маршрутизации между компонентами frontend и backend.

Примечание

Порт 9683 используется для внутренней балансировки нагрузки службы oc_bifrost.

да

9463

oc_bifrost

Служба oc_bifrost обеспечивает авторизацию каждого запроса на просмотр или управление объектами, хранящимися на сервере Chef Infra Server.

9200

elasticsearch

Служба elasticsearch используется для создания индексов поиска, используемых для поиска объектов, таких как узлы, пакеты данных и кулинарные книги. (Эта служба обеспечивает своевременные результаты поиска через API сервера Chef Infra Server; данные, используемые платформой Chef, хранятся в PostgreSQL.)

5432

postgresql

Служба postgresql используется для хранения данных о узлах, объектах и пользователях.

16379

redis_lb

Хранилище значений ключей, используемое совместно с Nginx для маршрутизации запросов и заполнения данных запросов, используемых сервером Chef Infra Server.

4321

bookshelf

Служба bookshelf — это служба, совместимая с Amazon Simple Storage Service (S3), которая используется для хранения кулинарных книг, включая все файлы — рецепты, шаблоны и т. д. — связанные с каждой кулинарной книгой.

8000

opscode-erchef

Служба opscode-erchef — служба на основе Erlang, используемая для обработки запросов API сервера Chef Infra Server к следующим областям внутри сервера Chef Infra Server:

  • Кулинарные книги
  • Пакеты данных
  • Окружения
  • Узлы
  • Роли
  • Песочницы
  • Поиск

Frontend

Для серверов frontend убедитесь, что порты, отмеченные как внешние (отмеченные как yes в столбце Внешний), открыты и доступны через все используемые брандмауэры:

Порт Имя службы, описание Внешний

80, 443, 9683

nginx

Служба nginx используется для управления трафиком сервера Chef Infra Server, включая виртуальные хосты для маршрутизации запросов/ответов внутренних и внешних API, маршрутизации внешних запросов плагинов и маршрутизации между компонентами frontend и backend.

Примечание

Порт 9683 используется для внутренней балансировки нагрузки службы oc_bifrost.

да

9463

oc_bifrost

Служба oc_bifrost обеспечивает авторизацию каждого запроса на просмотр или управление объектами, хранящимися на сервере Chef Infra Server.

9090

oc-id

Служба oc-id позволяет использовать аутентификацию OAuth 2.0 на сервере Chef Infra Server внешними приложениями, включая Chef Supermarket. OAuth 2.0 использует аутентификацию на основе токенов, где внешние приложения используют токены, выпущенные поставщиком oc-id. Внешнее приложение не хранит специальные учётные данные — webui_priv.pem или привилегированные ключи.

8000

opscode-erchef

Служба opscode-erchef — служба на основе Erlang, используемая для обработки запросов API сервера Chef Infra Server к следующим областям внутри сервера Chef Infra Server:

  • Кулинарные книги
  • Пакеты данных
  • Окружения
  • Узлы
  • Роли
  • Песочницы
  • Поиск

© Chef Software, Inc.
Licensed under the Creative Commons Attribution 3.0 Unported License.
The Chef™ Mark and Chef Logo are either registered trademarks/service marks or trademarks/servicemarks of Chef, in the United States and other countries and are used with Chef Inc's permission.
We are not affiliated with, endorsed or sponsored by Chef Inc.
https://docs.chef.io/install_server_tiered/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API