Spec-Zone.ru › Chef 16

Предварительные требования к Chef Infra Server

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

Ниже приведено подробное описание предварительных условий для каждой установки сервера Chef Infra. См. Установить сервер Chef Infra </install_server.html> для инструкций по установке.

Платформы

В следующей таблице перечислены коммерчески поддерживаемые платформы и версии для сервера Chef Infra:

Платформа Архитектура Версия
CentOS x86_64 6.x, 7.x, 8.x
Oracle Enterprise Linux x86_64 6.x, 7.x, 8.x
Red Hat Enterprise Linux x86_64 6.x, 7.x, 8.x
SUSE Enterprise Linux Server x86_64 12, 15
Ubuntu x86_64 16.04, 18.04

Непроверенные платформы

Следующие платформы не тестируются компанией Chef Software:

  • Любая дистрибуция Linux или UNIX, не указанная как фундаментальная платформа.
  • Microsoft Windows
  • 32-битные архитектуры

Планирование емкости

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

Требования к оборудованию

Все машины в развертывании Chef Infra Server имеют следующие требования к оборудованию. Объем дискового пространства для автономных и бэкенд-серверов должен увеличиваться вместе с количеством узлов, которые они управляют. Хорошим правилом является выделение 2 МБ на узел. Указанные ниже значения дискового пространства являются хорошими значениями по умолчанию, которые вам необходимо изменить позже, если/когда количество узлов увеличится. Предпочтителен быстрый и избыточный накопитель (SSD/RAID-решение, как локальное, так и в облачной среде).

Все развертывания

  • 64-битная архитектура

Развертывания автономных серверов

  • 4 общих ядра (физических или виртуальных)
  • 8 ГБ ОЗУ или более
  • 5 ГБ свободного дискового пространства в /opt
  • 10 ГБ свободного дискового пространства в /var

Примечание

Требование к ОЗУ можно снизить до минимума 4 ГБ ОЗУ, если количество запусков Chef Infra Client (CCR) в минуту невелико (т. е. меньше 33 CCR/мин). См. Планирование емкости для получения дополнительной информации о том, как этот параметр влияет на масштабируемость.

Для высокодоступного развертывания:

Общие требования

  • Три бэкенд-сервера; столько же фронтенд-серверов, сколько требуется
  • 1 x интерфейс сетевой карты GigE (если локально)

Требования к фронтенд-серверам

  • 4 ядра (физических или виртуальных)
  • 4 ГБ ОЗУ
  • 20 ГБ свободного дискового пространства (SSD, если локально, Премиум-хранилище в Microsoft Azure, EBS-оптимизированный GP2 в AWS)

Требования к бэкенд-серверам

  • 2 ядра (физических или виртуальных)
  • 8 ГБ ОЗУ
  • 50 ГБ на бэкенд-сервер (SSD, если локально, Премиум-хранилище в Microsoft Azure, EBS-оптимизированный GP2 в AWS)

Предупреждение

Сервер Chef Infra НИКОГДА не должен использовать файловую систему сети любого типа — виртуальную или физическую — для хранения бэкенд-данных. База данных сервера Chef Infra работает быстро. Поведение операций, таких как запись файлов журналов, будет непредсказуемым при работе через файловую систему сети.

Требования к программному обеспечению

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

  • Имя хоста — Убедитесь, что у всех систем правильно настроены имена хостов. Имя хоста сервера Chef Infra должно быть полным доменным именем (FQDN), иметь менее 64 символов, включая суффикс домена, быть в нижнем регистре и разрешаемым. См. Имена хостов, полные доменные имена (FQDN) для получения дополнительной информации.
  • Полные доменные имена (FQDN) — Убедитесь, что у всех систем есть разрешаемое полное доменное имя (FQDN).
  • NTP — Убедитесь, что каждый сервер подключен к NTP; сервер Chef Infra чувствителен к дрейфу часов.
  • Пересылка почты — Сервер Chef Infra использует электронную почту для отправки уведомлений о различных событиях; на сервере Chef должен быть установлен и доступен локальный агент передачи почты.
  • cron — Периодические задачи технического обслуживания выполняются с помощью cron.
  • git — git должен быть установлен, чтобы различные внутренние службы могли подтвердить ревизии.
  • libfreetype и libpng — Эти библиотеки необходимы.
  • Apache Qpid — Этот демон должен быть отключен на системах CentOS и Red Hat.
  • Необходимые пользователи — Если в среде, в которой будет работать сервер Chef Infra, существуют ограничения на создание локальных учетных записей пользователей и групп, убедитесь, что соответствующие пользователи и группы существуют до переконфигурации.
  • Брандмауэры и порты — Если используются брандмауэры на основе хоста (iptables, ufw и т. д.), убедитесь, что порты 80 и 443 открыты. Эти порты используются службой nginx.

Кроме того:

  • Браузер — Firefox, Google Chrome, Safari или Internet Explorer (версии 9 или выше).
  • Связь клиента Chef Infra Client с сервером Chef Infra Server Сервер Chef Infra Server должен иметь возможность общаться со всеми узлами, которые будут настраиваться с помощью Chef Infra Client, и со всеми рабочими станциями, которые будут загружать данные на сервер Chef Infra.

UID и GID

Процесс установки сервера Chef Infra требует использования как минимум двух идентификаторов пользователей и групп (UID и GID). Они используются для создания пользователей opscode и opscode-pgsql и их групп по умолчанию.

Примечание

Создание необходимых идентификаторов пользователей и групп выполняется автоматически во время процесса установки сервера Chef Infra; однако следующие учетные записи пользователей и групп могут быть созданы до установки сервера Chef Infra, если желательны конкретные UID и GID. Пользователь и группа должны создаваться как пара для удовлетворения требований переконфигурации.

  • Локальная учетная запись пользователя с именем opscode для запуска служб
  • Локальная учетная запись пользователя с именем opscode-pgsql, используемая PostgreSQL
  • Группа учетных записей для каждой учетной записи пользователя, одна с именем opscode и другая с именем opscode-pgsql для запуска служб

Предупреждение

Если UID и GID opscode и opscode-pgsql не совпадают на обоих машинах бэкенд-сервера Chef Infra, конфигурация высокой доступности не будет работать правильно.

Встроенные кулинарные книги сервера Chef Infra могут обрабатывать два случая:

  • Пользователь и группа opscode и opscode-pgsql не найдены на новом сервере
  • Пользователь и группа opscode и opscode-pgsql найдены на новом сервере

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

Для определения текущего диапазона идентификаторов выполните следующую команду:

grep -E '(UID|GID)' /etc/login.defs

Значения по умолчанию для систем CentOS и Red Hat Enterprise Linux выглядят следующим образом:

UID_MIN             500
UID_MAX           60000
GID_MIN             500
GID_MAX           60000

Если значения по умолчанию были изменены по какой-либо причине, и это изменение приведет к тому, что программа useradd получит менее 2 UID/GID, отредактируйте /etc/login.defs, внеся изменения для обеспечения наличия как минимум 2 дополнительных UID и GID. Текущие используемые диапазоны ID для UID и GID можно найти в /etc/passwd и /etc/group, соответственно.

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

Брандмауэры

iptables

Чтобы разрешить доступ к вашему серверу Chef Infra по портам 80 и 443 через брандмауэр iptables, выполните следующую команду с правами root:

iptables -A INPUT -p tcp -m multiport --destination-ports 80,443 -j ACCEPT

Обратите внимание, что вам потребуется использовать инструмент, такой как iptables-persistent, для восстановления правил iptables при перезагрузке.

FirewallD

В версиях RHEL и CentOS 7 и выше брандмауэр FirewallD включен по умолчанию. Выполните следующую команду с правами root, чтобы открыть порты 80 и 443:

firewall-cmd --permanent --zone public --add-service http && firewall-cmd --permanent --zone public --add-service https && firewall-cmd --reload

UFW

Хотя UFW установлен на Ubuntu, он не включен по умолчанию. Однако, если вы хотите использовать брандмауэр на основе UFW на вашем сервере Chef Infra, выполните следующую команду с правами root, чтобы открыть порты 80 и 443:

ufw allow proto tcp from any to any port 80,443

Модули безопасности

SELinux

На системах CentOS и Red Hat Enterprise Linux SELinux включен в режиме принудительного действия по умолчанию. Для работы сервера Chef Infra нет профиля SELinux. Для запуска сервера Chef Infra SELinux должен быть отключен или установлен в режим Permissive.

Для определения, установлен ли SELinux, выполните следующую команду:

getenforce

Если в ответ возвращается значение, отличное от "Disabled" или "Permissive", SELinux необходимо отключить.

Чтобы установить SELinux в режим Permissive , выполните:

setenforce Permissive

а затем проверьте статус:

getenforce

AppArmor

На системах Ubuntu AppArmor включен в режиме принудительного действия по умолчанию. Для работы продуктов Chef нет профиля AppArmor. Для работы продуктов Chef AppArmor должен быть установлен в режим Complaining или отключен.

Чтобы определить, установлен ли AppArmor, выполните следующую команду:

sudo apparmor_status

Для установки AppArmor выполните следующую команду:

sudo apt-get install apparmor-utils -yes

Если возвращается ответ, отличный от "0 processes are in enforce mode" или "0 profiles are in enforce mode.", AppArmor необходимо установить в режим Complaining или отключить.

Чтобы установить AppArmor в режим Complaining, выполните:

sudo aa-complain /etc/apparmor.d/*

Или, чтобы полностью отключить AppArmor, выполните:

sudo invoke-rc.d apparmor kill
sudo update-rc.d -f apparmor remove

а затем проверьте статус:

sudo apparmor_status

Apache Qpid

На системах CentOS и Red Hat Enterprise Linux по умолчанию установлен демон Apache Qpid.

Чтобы определить, установлен ли Apache Qpid, выполните следующую команду:

rpm -qa | grep qpid

Если Apache Qpid установлен, отображается ответ, похожий на следующий:

qpid-cpp-server-0.12-6.el6.x86_64

Чтобы отключить Apache Qpid, выполните:

service qpidd stop

и затем:

chkconfig --del qpidd

cron

Периодические задачи обслуживания выполняются на серверах Chef Infra Server с помощью cron и каталога /etc/cron.d. В некоторых конфигурациях CentOS 6 требуется дополнительный шаг для установки crontab:

yum install crontabs

Обновления Enterprise Linux

Сервер Chef Infra Server требует архитектуры x86_64. При установке сервера Chef Infra Server на Red Hat Enterprise Linux или CentOS выполните yum update перед установкой сервера Chef Infra Server. Это гарантирует полную совместимость этих платформ с этим требованием.

IP-адреса

Если вы не планируете использовать сервер Chef Infra Server в режиме IPv6, отключите ipv6 в файле конфигурации системы /etc/hosts путем комментирования или удаления всех ссылок на IPv6-адреса, таких как «::1» или «fe80:db8:85a3:8d3:1319:8a2e:370:7348».

Без этих изменений установка сервера Chef Infra Server, предназначенная для работы в режиме ipv4, ошибочно запустит только службу postgres по IPv6-адресу обратной связи «::1», а не по IPv4-адресу обратной связи 127.0.0.1. Это сделает невозможным дальнейший прогресс при первоначальной переконфигурации.

Имена хостов

Имя хоста сервера Chef Infra Server может быть указано с помощью FQDN или IP-адреса. Это имя хоста должно быть разрешимым, иметь длину не более 64 символов и быть в нижнем регистре. Например, сервер Chef Infra Server в рабочей среде с разрешимым FQDN именем хоста может быть добавлен в систему DNS. Но при развертывании сервера Chef Infra Server в тестовой среде добавление имени хоста в файл /etc/hosts достаточно для обеспечения разрешимости имени хоста.

  • FQDN имена хостов При использовании FQDN в качестве имени хоста сервера Chef Infra Server обязательно укажите суффикс домена. Например, что-то вроде mychefserver.example.com (а не что-то вроде mychefserver).

  • Имена хостов по IP-адресу При работе сервера Chef Infra Server в режиме IPv6 имя хоста, заданное с помощью IP-адреса, также должно быть заключено в скобки ([ ]) или сервер Chef Infra Server не сможет распознать его как IPv6-адрес. Например:

    bookshelf['url'] "https://[2001:db8:85a3:8d3:1319:8a2e:370:7348]"
    

Настройка api_fqdn может быть добавлена в файл private-chef.rb (по умолчанию её нет). При добавлении её значение должно быть равно FQDN или IP-адресу URI службы, используемой сервером Chef Infra Server. Затем необходимо настроить то же значение для параметра bookshelf['vip'] перед установкой сервера Chef Infra Server. Например: api_fqdn "chef.example.com" или api_fqdn 123.45.67.890.

Настройка имён хостов

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

Проверка, является ли имя хоста FQDN

Для проверки, является ли имя хоста FQDN, выполните следующую команду:

hostname

Если имя хоста является FQDN, оно вернёт что-то вроде:

mychefserver.example.com

Если имя хоста не является FQDN, его необходимо настроить соответствующим образом.

Проверка, что FQDN состоит только из символов в нижнем регистре

Для проверки, состоят ли буквенные части FQDN только из символов в нижнем регистре, выполните следующую команду:

hostname -f | grep -E '^([[:digit:]]|[[:lower:]]|\.|-|_)+$' && echo yes

Если имя хоста состоит только из символов в нижнем регистре, оно вернёт что-то вроде:

mychefserver.example.com
yes

Если буквенные части имени хоста не состоят только из символов в нижнем регистре, их необходимо настроить соответствующим образом.

Проверка разрешимости имени хоста

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

hostname -f

Если имя хоста разрешимо, оно вернёт что-то вроде:

mychefserver.example.com

Изменение имени хоста

В некоторых случаях необходимо обновить имя хоста сервера Chef Infra Server. Процесс обновления имени хоста зависит от платформы, на которой будет работать сервер Chef Infra Server. Обратитесь к руководству для конкретной платформы или к местному системному администратору для получения конкретных рекомендаций для определённой платформы. Следующий пример показывает, как можно изменить имя хоста при работе с Red Hat или CentOS:

sudo hostname 'mychefserver.example.com'

и затем:

echo "mychefserver.example.com" | sudo tee /etc/hostname

Добавление имени хоста в /etc/hosts

Если имя хоста не разрешимо, обратитесь к местному системному администратору за рекомендациями по добавлению имени хоста в систему DNS. Если сервер Chef Infra Server развёртывается в тестовой среде, просто добавьте имя хоста в /etc/hosts. Следующий пример демонстрирует, как добавить имя хоста в /etc/hosts при работе с Red Hat или CentOS:

echo -e "127.0.0.2 `hostname` `hostname -s`" | sudo tee -a /etc/hosts

Предупреждение

FQDN сервера Chef Infra Server должен быть разрешимым, состоять из символов в нижнем регистре и не превышать 64 символа при использовании OpenSSL, так как OpenSSL требует, чтобы CN в сертификате имело длину не более 64 символов.

Почтовый ретранслятор

Сервер Chef Infra Server использует электронную почту для отправки уведомлений о различных событиях:

  • Сброс пароля
  • Приглашения пользователей
  • Уведомления о резервном копировании
  • Уведомления о неудачных заданиях

Настройте локальный агент пересылки почты на сервере Chef Infra Server, используя шаги, соответствующие платформе, на которой работает сервер Chef Infra Server.

NTP

Сервер Chef Infra Server требует, чтобы системы, на которых он работает, были подключены к протоколу Network Time Protocol (NTP), так как сервер Chef Infra Server особенно чувствителен к сбою часов. Для Red Hat и CentOS 6:

yum install ntp

или:

chkconfig ntpd on

или:

service ntpd start

Для Ubuntu:

apt-get install ntp

Клиент Chef Infra

Сервер Chef Infra Server требует, чтобы каждый узел, находящийся под управлением Chef, также имел точные часы, синхронизированные очень близко с часами сервера Chef Infra Server. Если часы не синхронизированы достаточно точно, процесс аутентификации может завершиться неудачей, если часы отличаются более чем на 15 минут. Ошибка вызовет ответ 401 Unauthorized, похожий на:

[Tue, 01 Nov 2011 16:55:23 -0700] INFO: *** Chef 11.X.X ***
[Tue, 01 Nov 2011 16:55:23 -0700] INFO: Client key /etc/chef/client.pem is not present - registering
[Tue, 01 Nov 2011 16:55:24 -0700] INFO: HTTP Request Returned 401 Unauthorized:
    Failed to authenticate as ORGANIZATION-validator. Synchronize the clock on your host.
[Tue, 01 Nov 2011 16:55:24 -0700] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
[Tue, 01 Nov 2011 16:55:24 -0700] FATAL: Net::HTTPClientException: 401 "Unauthorized"

В этой ситуации необходимо повторно синхронизировать системные часы с сервером NTP, а затем запустить Chef Infra Client.

Необходимые учётные записи

По умолчанию учётные записи, необходимые для сервера Chef Infra Server, создаются во время установки. Если в вашей среде есть ограничения на создание локальных пользовательских и групповых учётных записей, которые помешают автоматическому созданию этих учётных записей во время установки, вам необходимо создать эти учётные записи.

Примечание

Функция Chef Push Jobs сервера Chef Infra Server использует те же пользовательские и групповые учётные записи, что и сам сервер Chef Infra Server.

Групповые учётные записи

Требуются следующие групповые учётные записи:

Групповая учётная запись Описание
opscode Имя группы, под которой будут работать службы.

Пользовательские учётные записи

Требуются следующие пользовательские учётные записи:

Пользовательская учётная запись Описание
opscode Имя пользователя, под которым будут работать службы.
opscode-pgsql Имя пользователя для PostgreSQL. (Это необходимо только на серверах бэкенда в конфигурации с высокой доступностью.)

© 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_pre/

Spec-Zone.ru

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