Spec-Zone.ru › Chef 17

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

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

Ниже приводится подробное описание необходимых условий для каждой установки сервера Chef Infra. См. Инструкции по установке сервера Chef Infra для получения инструкций по установке.

Платформы

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

Платформа Архитектура Версия
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.

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

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

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

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

Автономные развертывания

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

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

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

  • Три бэкенд-сервера; столько фронтенд-серверов, сколько нужно
  • 1 x интерфейс сетевой карты 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 НЕ должен использовать сетевую файловую систему любого типа — виртуальную или физическую — для хранения бэкенда. База данных сервера Chef Infra работает быстро. Поведение операций, таких как запись файлов журнала, будет непредсказуемым при работе через сетевую файловую систему.

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

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

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

Кроме того:

  • Браузер — Firefox, Google Chrome, Safari или Internet Explorer (версии 9 или выше).
  • Связь клиента Chef Infra Client с сервером Chef Infra Сервер Chef Infra должен иметь возможность взаимодействовать с каждым узлом, который будет настроен клиентом 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

Если значения по умолчанию были изменены по какой-либо причине, и если такое изменение приведет к наличию менее 2 UID/GID для программы useradd, отредактируйте /etc/login.defs, чтобы сделать доступными по крайней мере 2 дополнительных UID и GID. Текущие используемые диапазоны идентификаторов 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 путем удаления или комментирования всех ссылок на 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/install_server_pre.html

Spec-Zone.ru

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