Spec-Zone.ru › Chef 17

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

[редактировать на GitHub]

Ниже приведён подробный обзор предварительных требований для каждой установки сервера Chef Infra Server. Инструкции по установке см. в разделе Установка сервера Chef Infra Server.

Платформы

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

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

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

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

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

Планирование ресурсов

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

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

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

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

  • 64-разрядная архитектура процессора
  • Поддержка процессора расширений SSE4.2 (процессоры Xeon с 2007 года и Opteron с 2012 года)

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

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

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

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

  • Три сервера бэкэнда; столько же серверов фронтэнда, сколько необходимо
  • 1 интерфейс сетевого адаптера GigE (если локальный)

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

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

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

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

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

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

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

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

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

Кроме того:

  • Браузер — 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 Server требует использования как минимум двух идентификаторов пользователей и групп (UID и GID). Они используются для создания пользователей opscode и opscode-pgsql и их групп по умолчанию.

Примечание

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

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

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

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

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

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

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

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

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. Текущие используемые диапазоны идентификаторов UID и GID можно найти в /etc/passwd и /etc/group соответственно.

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

Брандмауэры

iptables

Для разрешения доступа к вашему серверу Chef Infra Server на портах 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 Server, выполните следующую команду с правами root, чтобы открыть порты 80 и 443:

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

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

SELinux

В системах CentOS и Red Hat Enterprise Linux SELinux включён в режиме принудительного выполнения по умолчанию. Для работы сервера Chef Infra Server нет профиля, доступного для работы в режиме SELinux. Для работы сервера Chef Infra Server 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 путем удаления или комментирования всех ссылок на IP-адреса 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"

В этой ситуации синхронизируйте системные часы с сервером Network Time Protocol (NTP), а затем запустите клиент Chef Infra.

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

По умолчанию учетные записи, необходимые для сервера 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/server/install_server_pre/

Spec-Zone.ru

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