Настройка
Командная строка chef-automate предоставляет команды для работы с вашей текущей конфигурацией Chef Automate:
-
chef-automate config showотображает текущую конфигурацию, не включая значения по умолчанию -
chef-automate config patch </path/to/partial-config.toml>обновляет существующую конфигурацию Chef Automate, объединяя содержимое</path/to/partial-config.toml>с текущей конфигурацией Chef Automate и применяя изменения. Эта команда достаточна в большинстве случаев -
chef-automate config set </path/to/full-config.toml>заменяет текущую конфигурацию Chef Automate предоставленной конфигурацией и применяет изменения. Используйте эту команду для замены конфигурации Chef Automate
Обновите конфигурацию Chef Automate, сгенерировав раздел конфигурации и применив его с помощью chef-automate config patch. Остальная часть этого документа описывает, как внести распространённые изменения в конфигурацию.
Примеры использования
Минимальная конфигурация
Команда chef-automate init-config генерирует аннотированный файл конфигурации Chef Automate с базовыми настройками для развертывания Chef Automate. Этот раздел описывает эти настройки и как их изменить в существующей установке Chef Automate.
FQDN Chef Automate
Чтобы изменить полное доменное имя (FQDN) вашей установки Chef Automate, создайте файл TOML, содержащий частичную конфигурацию:
[global.v1]
fqdn = "automate.example.com"
Затем выполните chef-automate config patch </path/to/your-file.toml> для развертывания изменений.
Канал установки
Chef Automate состоит из пакетов Habitat, установленных из канала релизов. По умолчанию используется канал current.
Стратегия обновления
Стратегия обновления определяет, когда установка Chef Automate будет обновляться. Настройки стратегии обновления включают:
-
at-once(по умолчанию) обновляет установку после обнаружения новых пакетов в канале установки -
noneзамораживает установку с текущим набором пакетов
Изменение стратегии обновления с none на at-once установит последние пакеты из канала установки.
Чтобы изменить стратегию обновления вашей установки Chef Automate, создайте файл TOML, содержащий частичную конфигурацию:
[deployment.v1.svc]
upgrade_strategy = "at-once"
Затем выполните chef-automate config patch </path/to/your-file.toml> для развертывания изменений.
Чтобы обновить установку Chef Automate с upgrade_strategy, установленным в значение none, выполните команду:
chef-automate upgrade run
Эта команда обновит Chef Automate до последней версии из вашего канала установки.
Тип развертывания
Не изменяйте deployment_type. Поддерживаемый тип deployment_type — local.
Настройки
Вы не можете изменить имя, имя пользователя и пароль администратора, установленные во время первоначального развертывания.
Чтобы изменить пароль администратора после развертывания, используйте интерфейс Chef Automate. Войдите как администратор, перейдите на страницу Пользователи в разделе Настройки. Выберите «Локальный администратор», чтобы отобразить страницу Подробные сведения о пользователе администратора. Перейдите к вкладке Сброс пароля. Введите предыдущий пароль, а затем введите и подтвердите новый пароль в интерфейсе. Нажмите кнопку Сбросить пароль, чтобы сохранить изменения.
Чтобы изменить пароль администратора из командной строки, сначала получите запись пользователя администратора, скопируйте идентификатор пользователя, а затем используйте:
export TOKEN=`chef-automate iam token create admin-token-1 --admin`
curl -X PUT -H "api-token: $TOKEN" -H "Content-Type: application/json" -d '{"name":"Local Administrator", "id": "<admin user ID>", "password":"<password>"}' https://automate.example.com/api/v0/auth/users/admin?pretty
Сертификат и закрытый ключ балансировщика нагрузки
Чтобы изменить сертификат и закрытый ключ балансировщика нагрузки вашей установки Chef Automate, создайте файл TOML, содержащий частичную конфигурацию:
[[global.v1.frontend_tls]]
# The TLS certificate for the load balancer frontend.
cert = """-----BEGIN CERTIFICATE-----
<your certificate>
-----END CERTIFICATE-----
"""
# The TLS RSA key for the load balancer frontend.
key = """-----BEGIN RSA PRIVATE KEY-----
<your private key>
-----END RSA PRIVATE KEY-----
"""
Затем выполните chef-automate config patch </path/to/your-file.toml> для развертывания изменений.
Ключ лицензии
Вы можете применить лицензию Chef Automate с помощью команды chef-automate license apply двумя способами:
chef-automate license apply </path/to/license-file.jwt>chef-automate license apply <content-of-license>
После первоначального развертывания лицензию нельзя применить, внеся изменения в файл конфигурации.
Настройки прокси
Вы можете настроить Chef Automate для использования прокси, либо установив переменные среды, либо указав параметры конфигурации.
Команда chef-automate deploy без файла конфигурации будет учитывать переменные среды прокси:
-
HTTPS_PROXY/https_proxy -
HTTP_PROXY/http_proxy -
NO_PROXY/no_proxy(См. Необходимые сайты и домены.)
Установка этих переменных среды перед начальным развертыванием Chef Automate добавляет их в конфигурацию, генерируемую Chef Automate.
Если вы предоставляете файл конфигурации во время развертывания (chef-automate deploy /path/to/config.toml), вы должны указать настройки прокси в этом файле.
[global.v1.proxy]
host = "<your proxy host>"
port = <your proxy port>
no_proxy = ["0.0.0.0", "127.0.0.1"]
# user = "<your proxy user>"
# password = "<your proxy password>"
Для изменения настроек прокси создайте файл TOML, содержащий раздел [global.v1.proxy] и настройки. Затем выполните chef-automate config patch </path/to/your-file.toml> для развертывания изменений.
Необходимые сайты и домены
Chef Automate должен иметь доступ к следующим ресурсам:
packages.chef.iolicensing.chef.ioraw.githubusercontent.comapi.bintray.combldr.habitat.shakamai.bintray.comdl.bintray.combintray.comlocalhost127.0.0.10.0.0.0
Уровень глобального ведения журнала
Настройте уровень ведения журнала для всех служб Chef Automate, создав файл TOML. По умолчанию каждая служба инициализируется на уровне info, но доступны следующие настройки: debug, info, warning, panic, или fatal.
[global.v1.log]
level = "debug"
Затем выполните chef-automate config patch </path/to/your-file.toml> для развертывания изменений.
Пример конфигурации
# This is a default Chef Automate configuration file. You can run
# 'chef-automate deploy' with this config file and it should
# successfully create a new Chef Automate instance with default settings.
[global.v1]
# The external fully qualified domain name.
# When the application is deployed you should be able to access 'https://<fqdn>/'
# to login.
fqdn = "chef-automate.test"
# The following TLS certificate and RSA public key were
# automatically generated. The certificate is a self-signed
# certificate and will likely produce security warnings when you
# visit Chef Automate in your web browser. We recommend using a
# certificate signed by a certificate authority you trust.
[[global.v1.frontend_tls]]
# The TLS certificate for the load balancer frontend.
cert = """-----BEGIN CERTIFICATE-----
<the load balancer's certificate>
-----END CERTIFICATE-----
"""
# The TLS RSA key for the load balancer frontend.
key = """-----BEGIN RSA PRIVATE KEY-----
<the load balancer's TLS RSA key>
-----END RSA PRIVATE KEY-----
"""
# Deployment service configuration.
[deployment.v1]
[deployment.v1.svc]
# Habitat channel to install hartifact from.
# Can be 'dev', 'current', or 'acceptance'
channel = "current"
upgrade_strategy = "at-once"
deployment_type = "local"
Дополнительная конфигурация
Общая конфигурация Elasticsearch
Чтобы настроить Elasticsearch для вашей установки Chef Automate, создайте файл TOML, содержащий частичную конфигурацию ниже. Разкомментируйте и измените настройки по мере необходимости, а затем выполните chef-automate config patch </path/to/your-file.toml> для развертывания изменений.
[elasticsearch.v1.sys.proxy]
# NOTE: The elasticsearch proxy settings are derived from the global proxy settings.
# host = "<proxy host>"
# port = <proxy port>
# user = "<proxy username>"
# password = "<proxy password>"
# no_proxy = <["0.0.0.0", "127.0.0.1"]>
[elasticsearch.v1.sys.cluster]
# name = "chef-insights"
[elasticsearch.v1.sys.cluster.routing.allocation]
# node_concurrent_recoveries = 2
# node_initial_primaries_recoveries = 4
# same_shard_host = false
[elasticsearch.v1.sys.node]
# max_local_storage_nodes = 1
# master = true
# data = true
[elasticsearch.v1.sys.path]
# logs = "logs"
[elasticsearch.v1.sys.indices.recovery]
# max_bytes_per_sec = "20mb"
[elasticsearch.v1.sys.indices.breaker]
# total_limit = "70%"
# fielddata_limit = "60%"
# fielddata_overhead = "1.03"
# request_limit = "40%"
# request_overhead = "1"
[elasticsearch.v1.sys.bootstrap]
# memory_lock = false
[elasticsearch.v1.sys.network]
# host = "0.0.0.0"
# port = 10141
[elasticsearch.v1.sys.transport]
# port = "10142"
[elasticsearch.v1.sys.discovery]
# ping_unicast_hosts = "[]"
# minimum_master_nodes = 1
# zen_fd_ping_timeout = "30s"
[elasticsearch.v1.sys.gateway]
# expected_nodes = 0
# expected_master_nodes = 0
# expected_data_nodes = 0
[elasticsearch.v1.sys.action]
# destructive_requires_name = true
[elasticsearch.v1.sys.logger]
# level = "info"
[elasticsearch.v1.sys.runtime]
# max_locked_memory = "unlimited"
# es_java_opts = ""
# NOTE: see https://www.elastic.co/guide/en/elasticsearch/guide/current/heap-sizing.html
# for important guidance regarding the configuration of the heap size setting
# heapsize = "4g"
Настройка кучи Elasticsearch
Размер кучи Elasticsearch можно и в большинстве случаев следует установить на 50% от доступной оперативной памяти. Однако вы должны изучить и учесть важные замечания, описанные в документации по размеру кучи Elasticsearch.
Например, система с 32 ГБ оперативной памяти может иметь размер кучи Elasticsearch, установленный на 16g; для этого сначала необходимо создать файл TOML, содержащий частичную конфигурацию ниже, а затем выполнить chef-automate config patch </path/to/your-file.toml> для развертывания изменения.
[elasticsearch.v1.sys.runtime]
heapsize = "16g"
PostgreSQL
Чтобы настроить PostgreSQL для вашей установки Chef Automate, создайте файл TOML, содержащий частичную конфигурацию ниже. Разкомментируйте и измените настройки по мере необходимости, с учетом следующих замечаний:
- Эти настройки конфигурации влияют только на базу данных PostgreSQL, развернутую Chef Automate. Они не влияют на внешнюю базу данных PostgreSQL.
- Chef Automate использует взаимную аутентификацию TLS для связи с базой данных PostgreSQL.
Затем выполните chef-automate config patch </path/to/your-file.toml> для развертывания изменений.
[postgresql.v1.sys.service]
# host = "0.0.0.0"
# port = 5432
[postgresql.v1.sys.pg]
# md5_auth_cidr_addresses = ["0.0.0.0/0", "::0/0"]
# max_wal_size = "1GB"
# min_wal_size = "80MB"
# wal_keep_segments = 32
# checkpoint_timeout = "5min"
# checkpoint_completion_target = 0.5
# max_connections = 100
# max_locks_per_transaction = 64
[postgresql.v1.sys.logger]
# level = "ERROR"
[postgresql.v1.sys.superuser]
# name = "automate"
Балансировщик нагрузки
Чтобы настроить балансировщик нагрузки вашей установки Chef Automate, создайте файл TOML, содержащий частичную конфигурацию ниже. Разкомментируйте и измените настройки по мере необходимости, а затем выполните chef-automate config patch </path/to/your-file.toml> для развертывания изменений.
[load_balancer.v1.sys.service]
# https_port = 443
# http_port = 80
# NOTE: the external_fqdn setting is derived from the global settings and
# should be configured via the `[global.v1]` setting.
# external_fqdn = "<your Chef Automate fqdn>"
[load_balancer.v1.sys.log]
# level = "info"
[load_balancer.v1.sys.ngx.main]
# worker_processes = 4
# error_log = "/dev/stderr"
[load_balancer.v1.sys.ngx.events]
# worker_connections = 1024
# worker_processor_method = "epoll"
# multi_accept = "on"
[load_balancer.v1.sys.ngx.http]
# access_log = "/dev/stdout"
# client_max_body_size = "250m"
# default_type = "application/octet-stream"
# keepalive_timeout = 60
# keepalive_requests = 10000
# gzip = "on"
# gzip_comp_level = "2"
# gzip_disable = "MSIE [1-6]\\."
# gzip_http_version = "1.0"
# gzip_min_length = 10240
# gzip_proxied = "expired no-cache no-store private auth"
# gzip_types = "text/plain text/css text/xml text/javascript application/x-javascript application/xml"
# gzip_vary = "on"
# large_client_header_buffers_size = "8k"
# large_client_header_buffers_number = 4
# sendfile = "on"
# ssl_ciphers = "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:!aNULL:!eNULL:!EXPORT:AES256-GCM-SHA384"
# ssl_protocols = "TLSv1.2"
# tcp_nodelay = "on"
# tcp_nopush = "on"
[load_balancer.v1.sys.proxy]
# NOTE: The load_balancer proxy settings are derived from the global proxy settings.
# host = "<proxy host>"
# port = <proxy port>
# user = "<proxy username>"
# password = "<proxy password>"
# no_proxy = <["0.0.0.0", "127.0.0.1"]>
[[load_balancer.v1.sys.frontend_tls]]
# NOTE: the load_balancer TLS certificate settings are derived from global
# settings and should be configured via `[[global.v1.frontend_tls]]` settings
# server_name = "<your Chef Automate server name>"
# cert = "-----BEGIN CERTIFICATE-----\n<your load balancer cert>\n-----END CERTIFICATE-----\n"
# key = "-----BEGIN RSA PRIVATE KEY-----\n<your load balancer private key>\n-----END RSA PRIVATE KEY-----\n"
Размер буфера
Настройте размер буфера для приема сообщений:
[compliance.v1.sys.service]
message_buffer_size = 200
[ingest.v1.sys.service]
message_buffer_size = 200
Конфигурация соответствия
Чтобы настроить сканирование агентов InSpec соответствия для вашей установки Chef Automate, создайте файл TOML, содержащий частичную конфигурацию ниже. Разкомментируйте и измените настройки по мере необходимости, а затем выполните chef-automate config patch </path/to/your-file.toml> для развертывания изменений.
[compliance.v1.sys.agent]
## Max number of inspec workers to run in parallel for detect and scan jobs. Default: 10
# workers = 20
## Max number of detect and scan jobs that can be accepted in the jobs workers queue. Default: 1000
# buffer_size = 2000
## Option to specify the version of inspec to use for remote(e.g. AWS SSM) scan jobs
# remote_inspec_version = "4.3.2"
## A control result message that exceeds this character limit will be truncated. Default: 10000
# result_message_limit = 20000
## The array of results per control will be truncated at this limit to avoid large reports that cannot be processed. Default: 50
# control_results_limit = 100
## Control results that have a `run_time` (in seconds) below this limit will be stripped of the `start_time` and `run_time` fields. Default: 1.0
# run_time_limit = 0.5
Настройка максимального числа запросов Inflight Data Collector
Вы можете указать максимальное количество запросов Inflight Data Collector. Значение по умолчанию составляет шестьдесят раз больше числа доступных процессоров машины.
[gateway.v1.sys.data_collector.limiter]
# Setting disable to true will allow an unbounded number of
# data collector requests to remain inflight concurrently.
disable = false
# max_inflight_requests will set the maximum number of
# concurrent inflight data collector requests. By default,
# this value is 60 * runtime.CpuCount()
max_inflight_requests = 100
Выход при закрытии браузера
Конфигурация для выхода пользователей из Chef Automate при закрытии браузера.
[session.v1.sys.service]
# Setting persistent to false will disable persistent sessions.
# Users will be signed out when their browser closes.
persistent = false
Устранение неполадок
Общие синтаксические ошибки могут привести к проблемам в файлах конфигурации:
- Ключи: имена используют символы подчёркивания, а не дефисы.
- Порты: используйте правильный тип. Одно число — целое число, и оно не требует кавычек. Диапазоны — строки и требуют кавычек.
- Пробелы: как табуляции, так и пробелы являются пробелами.
- Массивы: используйте квадратные скобки с запятыми, разделяющими элементы одного типа.
См. TOML README для получения дополнительной информации.
© 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/automate/configuration/