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 (CCR) в минуту низкое (т.е. менее 33 CCR/мин). См. Планирование ресурсов для получения дополнительной информации о том, как этот показатель влияет на масштабируемость.

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

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

  • Три сервера бэкэнда; столько серверов фронтенда, сколько необходимо
  • 1 интерфейс NIC 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 использует электронную почту для отправки уведомлений о различных событиях; должен быть установлен и доступен локальный агент передачи почты
  • 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 с сервером 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 Server могут обрабатывать два случая:

  • Пользователь и группа 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 для ассоциации. Текущие используемые диапазоны идентификаторов 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 Updates

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

IP Addresses

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

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

Hostnames

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

  • FQDN Имена хостов Если имя хоста для Chef Infra Server является FQDN, обязательно укажите суффикс домена. Например, что-то вроде 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 символа.

Mail Relay

Сервер 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 Client

Сервер 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 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.html

Spec-Zone.ru

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