Spec-Zone.ru › Chef 16

Настройки chef-server.rb

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

Файл /etc/opscode/chef-server.rb содержит все настройки конфигурации Chef Infra Server, отличные от стандартных. Стандартные настройки встроены в конфигурацию Chef Infra Server, и для применения нестандартных значений их необходимо добавить только в файл chef-server.rb. Эти настройки конфигурации обрабатываются при выполнении команды chef-server-ctl reconfigure. Файл chef-server.rb является файлом на языке Ruby, что означает возможность использования условных операторов в нём.

Использование условий

Используйте оператор case для применения различных значений в зависимости от того, находится ли сервер на стороне клиента или сервера. Добавьте код в файл конфигурации сервера, подобный следующему:

role_name = ChefServer['servers'][node['fqdn']]['role']
case role_name
when 'backend'
  # backend-specific configuration here
when 'frontend'
  # frontend-specific configuration here
end

Рекомендуемые настройки

Следующие настройки обычно добавляются в файл конфигурации сервера (для установки значения знак равенства не требуется):

api_fqdn

Полное доменное имя (FQDN) сервера Chef Infra Server. Эта настройка по умолчанию не включена в файл конфигурации сервера. При добавлении её значение должно соответствовать полному доменному имени (FQDN) URI службы, используемой сервером Chef Infra Server. Например: api_fqdn "chef.example.com".

bootstrap

Значение по умолчанию: true.

ip_version

Используется для установки версии IP: "ipv4" или "ipv6". При установке значения "ipv6", API прослушивает IPv6, а службы клиента и сервера обмениваются данными через IPv6 при использовании конфигурации высокой доступности. При настройке IPv6 в конфигурации высокой доступности убедитесь, что маска сети установлена в атрибуте IPv6 backend_vip. Значение по умолчанию: "ipv4".

notification_email

Значение по умолчанию: info@example.com.

Протоколы SSL NGINX

Следующие настройки часто изменяются от значений по умолчанию в рамках настройки службы nginx и для конфигурации сервера Chef Infra Server для использования сертификатов SSL:

nginx['ssl_certificate']

Сертификат SSL, используемый для проверки связи по протоколу HTTPS. Значение по умолчанию: nil.

nginx['ssl_certificate_key']

Ключ сертификата, используемый для связи по протоколу SSL. Значение по умолчанию: nil.

nginx['ssl_ciphers']

Список поддерживаемых наборов шифров, используемых для установления защищённого соединения. Для предпочтения AES256 с ECDHE forward security удалите префикс RC4-SHA:RC4-MD5:RC4:RSA. Например:

nginx['ssl_ciphers'] =  "HIGH:MEDIUM:!LOW:!kEDH: \
                         !aNULL:!ADH:!eNULL:!EXP: \
                         !SSLv2:!SEED:!CAMELLIA: \
                         !PSK"
nginx['ssl_protocols']

Включённые версии протоколов SSL. SSL 3.0 поддерживается сервером Chef Infra Server; однако, SSL 3.0 является устаревшим и небезопасным протоколом. Протокол Transport Layer Security (TLS)—TLS 1.0, TLS 1.1 и TLS 1.2—эффективно заменил SSL 3.0, обеспечивая проверку версии между Chef Infra Client и Chef Infra Server, что гарантирует использование последней версии протокола TLS. Для максимальной безопасности рекомендуется отключить SSL 3.0 и разрешить все версии протокола TLS. Например:

nginx['ssl_protocols'] = 'TLSv1 TLSv1.1 TLSv1.2'

Примечание

Дополнительная информация о значениях, используемых с настройками nginx['ssl_ciphers'] и nginx['ssl_protocols'], доступна на https://www.openssl.org/docs/man1.0.2/man1/ciphers.html.

Например, после копирования файлов сертификатов SSL на сервер Chef Infra Server, обновите настройки nginx['ssl_certificate'] и nginx['ssl_certificate_key'] для указания путей к этим файлам, а затем (необязательно) обновите настройки nginx['ssl_ciphers'] и nginx['ssl_protocols'] для отражения желаемого уровня безопасности сервера Chef Infra Server:

nginx['ssl_certificate'] = '/etc/pki/tls/private/name.of.pem'
nginx['ssl_certificate_key'] = '/etc/pki/tls/private/name.of.key'
nginx['ssl_ciphers'] = 'HIGH:MEDIUM:!LOW:!kEDH:!aNULL:!ADH:!eNULL:!EXP:!SSLv2:!SEED:!CAMELLIA:!PSK'
nginx['ssl_protocols'] = 'TLSv1 TLSv1.1 TLSv1.2'

Дополнительные настройки

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

Примечание

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

chef-server-ctl reconfigure

Примечание

Просмотрите полный список дополнительных настроек, которые можно добавить в файл chef-server.rb. Многие из этих дополнительных настроек не следует добавлять без предварительной консультации с поддержкой Chef.

bookshelf

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

bookshelf['vip']

Виртуальный IP-адрес. Значение по умолчанию: node['fqdn'].

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

Для настройки сервера для внешнего хранения кулинарных книг вносятся изменения в настройки как службы bookshelf, так и службы opscode-erchef.

opscode-account

Следующая настройка часто изменяется от значения по умолчанию в рамках настройки службы opscode-account:

opscode_account['worker_processes']

Количество разрешённых рабочих процессов. Это значение следует увеличить, если запросы к службе opscode-account завершаются с ошибкой, но только если на машинах клиента доступны процессор и оперативная память. Значение по умолчанию: 4.

opscode-erchef

Следующие настройки часто изменяются от значения по умолчанию в рамках настройки службы opscode-erchef:

opscode_erchef['db_pool_size']

Количество открытых соединений с PostgreSQL, поддерживаемых службой. Если сбои указывают на то, что служба opscode-erchef исчерпала соединения, попробуйте увеличить настройку postgresql['max_connections']. Если сбои сохраняются, увеличьте это значение (небольшими шагами) и также увеличьте значение для postgresql['max_connections']. Значение по умолчанию: 20.

opscode_erchef['s3_url_ttl']

Время (в секундах) до истечения срока действия соединений с сервером. Если выполнение Chef Infra Client завершается с ошибкой, увеличьте эту настройку до 3600, а затем скорректируйте её, если необходимо. Значение по умолчанию: 900.

opscode_erchef['strict_search_result_acls']

Используется для указания того, что результаты поиска возвращают только те объекты, к которым актёр (пользователь, клиент и т. д.) имеет доступ для чтения, как определено настройками ACL. Это влияет на все поиски. При установке true, производительность консоли управления Chef может увеличиться, так как она позволяет консоли управления Chef пропустить ненужные проверки ACL. Для обеспечения корректной настройки консоли управления Chef после применения этой настройки с помощью chef-server-ctl reconfigure выполните chef-manage-ctl reconfigure, чтобы консоль управления Chef также получила настройку. Значение по умолчанию: false.

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

Когда true, opscode_erchef['strict_search_result_acls'] влияет на все результаты поиска, и любой актёр (пользователь, клиент и т. д.), у которого нет прав на чтение результата поиска, не сможет его увидеть. Например, это может повлиять на результаты поиска, возвращаемые во время выполнения Chef Infra Client, если у Chef Infra Client нет разрешения на чтение информации.

Сборщик данных

Следующие настройки часто изменяются от значений по умолчанию в рамках настройки приложения data_collector opscode-erchef:

data_collector['http_max_count']

Максимальное количество рабочих процессов для пула подключений HTTP, используемого сборщиком данных. Если сбои указывают на то, что приложение opscode-erchef исчерпало подключения HTTP для data_collector, увеличьте это значение. Значение по умолчанию: 100.

postgresql

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

postgresql['max_connections']

Максимальное количество разрешённых одновременных подключений. Это значение следует настраивать только при изменении значения opscode_erchef['db_pool_size'], используемого службой opscode-erchef. Значение по умолчанию: 350. Если в кластере более двух машин клиента, значение postgresql['max_connections'] следует увеличить. Увеличенное значение зависит от количества машин клиента, а также от количества служб, работающих на каждой из этих машин.

  • Каждая машина клиента всегда выполняет службы oc_bifrost и opscode-erchef.
  • Дополнение Reporting добавляет службу reporting.
  • Служба Chef Push Jobs добавляет службу push_jobs.

Каждая из этих служб требует 25 подключений сверх значения по умолчанию.

Используйте следующую формулу для определения того, какое значение следует увеличить:

new_value = current_value + [
            (# of front end machines - 2) * (25 * # of services)
         ]

Например, если текущее значение составляет 350, в кластере четыре машины клиента и установлены все дополнения, то формула выглядит следующим образом:

550 = 350 + [(4 - 2) * (25 * 4)]
postgresql['sslmode']

Режим шифрования SSL между сервером Chef Infra и PostgreSQL. Допустимые значения: 'disable' и 'require'. Значение по умолчанию: 'disable'.

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

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

Файл /etc/opscode/chef-server.rb содержит все параметры конфигурации, отличные от значений по умолчанию, используемые сервером Chef Infra Server. Значения по умолчанию встроены в конфигурацию сервера Chef Infra Server, и их следует добавлять в файл chef-server.rb только для применения отличных от значений по умолчанию. Эти параметры конфигурации обрабатываются при запуске команды chef-server-ctl reconfigure. Файл chef-server.rb — это Ruby-файл, что означает, что в нём можно использовать условные операторы.

Использование условий

Используйте оператор case для применения различных значений в зависимости от того, на серверах front-end или back-end установлено данное свойство. Добавьте код в файл конфигурации сервера, аналогичный следующему:

role_name = ChefServer['servers'][node['fqdn']]['role']
case role_name
when 'backend'
  # backend-specific configuration here
when 'frontend'
  # frontend-specific configuration here
end

Рекомендуемые настройки

Следующие настройки обычно добавляются в файл конфигурации сервера (для установки значения знак равенства не требуется):

api_fqdn

FQDN для сервера Chef Infra Server. Эта настройка по умолчанию не содержится в файле конфигурации сервера. При добавлении её значение должно быть равно FQDN для URI службы, используемой сервером Chef Infra Server. Например: api_fqdn "chef.example.com".

bootstrap

Значение по умолчанию: true.

ip_version

Используется для установки версии IP: "ipv4" или "ipv6". При установке значения "ipv6", API прослушивает IPv6, и службы front-end и back-end обмениваются данными по IPv6 при использовании конфигурации высокой доступности. При настройке IPv6 в конфигурации высокой доступности убедитесь, что маска сети установлена для атрибута IPv6 backend_vip. Значение по умолчанию: "ipv4".

notification_email

Значение по умолчанию: info@example.com.

Протоколы NGINX SSL

Следующие настройки часто изменяются от значений по умолчанию в рамках процесса настройки службы nginx и для настройки сервера Chef Infra Server для использования SSL-сертификатов:

nginx['ssl_certificate']

SSL-сертификат, используемый для проверки связи по протоколу HTTPS. Значение по умолчанию: nil.

nginx['ssl_certificate_key']

Ключ сертификата, используемый для SSL-связи. Значение по умолчанию: nil.

nginx['ssl_ciphers']

Список поддерживаемых наборов шифров, используемых для установления защищённого соединения. Чтобы использовать AES256 с ECDHE forward security, удалите префикс RC4-SHA:RC4-MD5:RC4:RSA. Например:

nginx['ssl_ciphers'] =  "HIGH:MEDIUM:!LOW:!kEDH: \
                         !aNULL:!ADH:!eNULL:!EXP: \
                         !SSLv2:!SEED:!CAMELLIA: \
                         !PSK"
nginx['ssl_protocols']

Версии SSL-протоколов, которые включены. SSL 3.0 поддерживается сервером Chef Infra Server; однако SSL 3.0 является устаревшим и небезопасным протоколом. Протокол Transport Layer Security (TLS) — TLS 1.0, TLS 1.1 и TLS 1.2 — фактически заменил SSL 3.0, который обеспечивает проверку версии между клиентом Chef Infra Client и сервером Chef Infra Server, гарантируя, что используется последняя версия протокола TLS. Для максимальной безопасности рекомендуется отключить SSL 3.0 и разрешить все версии протокола TLS. Например:

nginx['ssl_protocols'] = 'TLSv1 TLSv1.1 TLSv1.2'

Примечание

Дополнительную информацию о значениях, используемых с параметрами nginx['ssl_ciphers'] и nginx['ssl_protocols'], можно найти по адресу https://www.openssl.org/docs/man1.0.2/man1/ciphers.html.

Например, после копирования файлов SSL-сертификатов на сервер Chef Infra Server, обновите параметры nginx['ssl_certificate'] и nginx['ssl_certificate_key'] для указания путей к этим файлам, а затем (необязательно) обновите параметры nginx['ssl_ciphers'] и nginx['ssl_protocols'] для отражения желаемого уровня защиты сервера Chef Infra Server:

nginx['ssl_certificate'] = '/etc/pki/tls/private/name.of.pem'
nginx['ssl_certificate_key'] = '/etc/pki/tls/private/name.of.key'
nginx['ssl_ciphers'] = 'HIGH:MEDIUM:!LOW:!kEDH:!aNULL:!ADH:!eNULL:!EXP:!SSLv2:!SEED:!CAMELLIA:!PSK'
nginx['ssl_protocols'] = 'TLSv1 TLSv1.1 TLSv1.2'

Дополнительные настройки

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

Примечание

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

chef-server-ctl reconfigure

Примечание

Просмотрите полный список дополнительных настроек, которые можно добавить в файл chef-server.rb. Многие из этих дополнительных настроек не следует добавлять без предварительной консультации с поддержкой Chef.

bookshelf

Следующая настройка часто изменяется от значения по умолчанию в рамках процесса настройки службы bookshelf:

bookshelf['vip']

Виртуальный IP-адрес. Значение по умолчанию: node['fqdn'].

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

Для настройки сервера для внешнего хранения кулинарных книг необходимо внести изменения в настройки как для службы bookshelf, так и для службы opscode-erchef.

opscode-account

Следующая настройка часто изменяется от значения по умолчанию в рамках процесса настройки службы opscode-account:

opscode_account['worker_processes']

Количество разрешённых процессов-работников. Это значение следует увеличить, если запросы к службе opscode-account завершаются с ошибкой из-за таймаута, но только если на машинах front-end доступны ЦП и оперативная память. Значение по умолчанию: 4.

opscode-erchef

Следующие настройки часто изменяются от значения по умолчанию в рамках процесса настройки службы opscode-erchef:

opscode_erchef['db_pool_size']

Количество открытых подключений к PostgreSQL, поддерживаемых службой. Если ошибки указывают на то, что служба opscode-erchef исчерпала количество подключений, попробуйте увеличить настройку postgresql['max_connections']. Если ошибки сохраняются, увеличьте это значение (небольшими шагами) и также увеличьте значение для postgresql['max_connections']. Значение по умолчанию: 20.

opscode_erchef['s3_url_ttl']

Время (в секундах) до истечения срока действия подключений к серверу. Если выполнение задач Chef Infra Client завершается с ошибкой из-за таймаута, увеличьте эту настройку до 3600, а затем отрегулируйте её при необходимости. Значение по умолчанию: 900.

opscode_erchef['strict_search_result_acls']

Используется для указания того, что результаты поиска возвращают только объекты, к которым у исполнителя (пользователь, клиент и т. д.) есть доступ для чтения, как определено параметрами ACL. Это влияет на все поиски. Когда true, производительность консоли управления Chef может повыситься, поскольку она позволяет консоли управления Chef пропускать избыточные проверки ACL. Чтобы убедиться, что консоль управления Chef настроена правильно, после применения этой настройки с помощью chef-server-ctl reconfigure выполните chef-manage-ctl reconfigure, чтобы убедиться, что консоль управления Chef также забирает эту настройку. Значение по умолчанию: false.

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

При true, opscode_erchef['strict_search_result_acls'] влияет на все результаты поиска, и любой исполнитель (пользователь, клиент и т. д.), у которого нет доступа для чтения к результату поиска, не сможет его просмотреть. Например, это может повлиять на результаты поиска, возвращаемые во время выполнения задач Chef Infra Client, если у Chef Infra Client нет разрешения на чтение этой информации.

Сборщик данных

Следующие настройки часто изменяются от значений по умолчанию в рамках процесса настройки приложения data_collector opscode-erchef:

data_collector['http_max_count']

Максимальное количество процессов-работников для пула подключений HTTP, используемого сборщиком данных. Если ошибки указывают на то, что приложение opscode-erchef закончило HTTP-подключения для data_collector, увеличьте это значение. Значение по умолчанию: 100.

opscode-expander

Следующая настройка часто изменяется от значения по умолчанию в рамках процесса настройки службы opscode-expander:

opscode_expander['nodes']

Количество разрешённых процессов-работников. Служба opscode-expander работает на back-end и передаёт данные службе opscode-solr, которая создаёт и поддерживает данные поиска, используемые сервером Chef Infra Server. Дополнительная память может потребоваться для этих процессов-работников в зависимости от частоты и объёма задач Chef Infra Client в организации, но только если на машинах back-end доступны ЦП и оперативная память. Значение по умолчанию: 2.

opscode-solr4

Следующие разделы описывают способы настройки службы opscode-solr4 для повышения производительности при больших размерах узлов, доступной памяти и частоте обновлений.

Доступная память

Используйте следующую настройку конфигурации, чтобы обеспечить, что Apache Solr не исчерпает память:

opscode_solr4['heap_size']

Объем памяти (в МБ), доступной для Apache Solr. Если доступной памяти недостаточно, запросы поиска, отправленные узлами в Apache Solr, могут завершиться ошибкой. Количество необходимой памяти также зависит от количества узлов в организации, частоты запросов поиска и других характеристик, уникальных для каждой организации. В общем случае, по мере увеличения числа узлов увеличивается и количество необходимой памяти.

Если Apache Solr исчерпывает память, в файле журнала /var/log/opscode/opscode-solr4/current будет сообщение, подобное:

SEVERE: java.lang.OutOfMemoryError: Java heap space

Значение по умолчанию для opscode_solr4['heap_size'] должно подходить для многих организаций, особенно для тех, у которых меньше 25 узлов. Для организаций с более чем 25 узлами установите это значение в 25% от объёма оперативной памяти или 1024, что меньше. Для очень больших конфигураций увеличьте это значение до 25% от объёма оперативной памяти или 4096, что меньше. Это значение не должно превышать 8192.

Большие размеры узлов

Максимальная длина поля для Apache Solr должна быть больше, чем ожидаемый размер файла объекта узла, чтобы успешно добавить его в индекс поиска. Если размер файла объекта узла превышает максимальную длину поля, объект узла будет индексироваться до максимума, но часть файла за пределами этого ограничения не будет индексирована. В этом случае может показаться, что узлы исчезают из индекса поиска. Чтобы гарантировать правильную индексацию больших файлов объектов узлов, проверьте следующие настройки:

nginx['client_max_body_size']

Максимальный принимаемый размер тела запроса клиента, как указано в заголовке запроса Content-Length. Когда максимальный принимаемый размер тела запроса превышает это значение, возвращается ошибка 413 Request Entity Too Large. Значение по умолчанию: 250m.

и

opscode_erchef['max_request_size']

Когда размер тела запроса превышает это значение, возвращается ошибка 413 Request Entity Too Large. Значение по умолчанию: 2000000.

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

opscode_solr4['max_field_length']

Максимальная длина поля (в количестве токенов/терминов). Если длина поля превысит это значение, Apache Solr может не справиться с построением индекса. Значение по умолчанию: 100000 (увеличено по сравнению со значением по умолчанию Apache Solr 10000).

Используйте команду wc для получения количества байтов большого файла объекта узла. Например:

wc -c NODE_NAME.json

а затем убедитесь, что есть буфер сверх этого значения. Например, проверьте размер самого большого файла объекта узла:

wc -c nodebsp2016.json

который возвращает 154516. Обновите значение opscode_solr4['max_field_length'] так, чтобы оно было больше возвращаемого значения. Например: 180000.

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

ohai | wc -c

Частота обновлений

В конце каждого выполнения Chef Infra Client объект узла сохраняется на Chef Infra Server. С Chef Infra Server каждый объект узла затем добавляется в индекс поиска SOLR. Этот процесс асинхронный. По умолчанию объекты узлов добавляются в индекс поиска каждые 60 секунд или каждые 1000 объектов узлов, в зависимости от того, что произойдет раньше.

Когда данные добавляются в индекс Apache Solr, все входящие обновления блокируются. Если интервал между обновлениями слишком короткий, скорость, с которой запрашиваются обновления, может превышать скорость, с которой объекты могут быть фактически добавлены.

Используйте следующую конфигурационную настройку, чтобы улучшить производительность индексации объектов узлов:

opscode_solr4['commit_interval']

Частота (в секундах) добавления объектов узлов в индекс поиска Apache Solr. Значение по умолчанию: 60000 (каждые 60 секунд).

opscode_solr4['max_commit_docs']

Частота (в документах) добавления объектов узлов в индекс поиска Apache Solr. Значение по умолчанию: 1000 (каждые 1000 документов).

postgresql

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

postgresql['max_connections']

Максимальное количество разрешенных одновременных подключений. Это значение следует настраивать только при изменении значения opscode_erchef['db_pool_size'] используемого службой opscode-erchef. Значение по умолчанию: 350. Если в кластере более двух машин переднего плана, следует увеличить значение postgresql['max_connections']. Увеличенное значение зависит от количества машин переднего плана, а также от количества служб, работающих на каждой из этих машин.

  • Каждая машина переднего плана всегда запускает службы oc_bifrost и opscode-erchef.
  • Дополнение Reporting добавляет службу reporting.
  • Служба Chef Push Jobs добавляет службу push_jobs.

Каждая из этих служб требует 25 подключений сверх значения по умолчанию.

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

new_value = current_value + [
            (# of front end machines - 2) * (25 * # of services)
         ]

Например, если текущее значение составляет 350, есть четыре машины переднего плана и установлены все дополнения, то формула выглядит так:

550 = 350 + [(4 - 2) * (25 * 4)]
postgresql['sslmode']

Режим шифрования SSL между Chef Infra Server и PostgreSQL. Допустимые значения — 'disable' и 'require' Значение по умолчанию: 'disable'.

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

Spec-Zone.ru

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