Spec-Zone.ru › Chef 17

Обзор конфигурации

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

Команда 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 настраиваемо. Нет максимальной длины для FQDN, но длина доменного имени верхнего уровня ограничена 25 символами.

Для справки, это части URL:

https://automate.4thcafe.com
<scheme>://<subdomain>.<second-level domain>.<top-level domain>

Чтобы изменить 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.io
  • licensing.chef.io
  • raw.githubusercontent.com
  • api.bintray.com
  • bldr.habitat.sh
  • akamai.bintray.com
  • dl.bintray.com
  • bintray.com
  • localhost
  • 127.0.0.1
  • 0.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"
# enable_csp_header = false
[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

Вы можете указать максимальное количество входящих запросов сборщика данных. Значение по умолчанию составляет шестьдесят раз больше числа доступных ЦП машины.

[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

Баннер раскрытия информации

Настройка для отображения пользовательского баннера на каждой странице Chef Automate, включая страницу входа. По умолчанию: false.

[global.v1]
  [global.v1.banner]
    show = true # Set 'show' to 'true' to enable the banner. Set to 'false' to disable the banner. Default: false.

    message = "Lorem ipsum dolor sit amet" # Add the Message for the banner
    background_color = "3864f2" # Set the background color using the Hex Color Code (Do not add # to the code)
    text_color = "FFF" # Set the color of the text using the Hex Color Code (Do not add # to the code)

    # Find valid HEX codes at https://htmlcolorcodes.com/

Панель раскрытия информации

Настройка для отображения панели раскрытия на странице входа. Требуется сообщение .txt или .html, хранящееся в месте, доступном для Chef Automate. По умолчанию: false.

[global.v1]
  [global.v1.disclosure]
    show = true # Set 'show' to 'true' to enable the disclosure panel on the sign in page. Set to 'false' to disable the disclosure panel. Default: false.

    message_file_path = "/src/dev/disclosure-panel-message.txt" # The location of the file containing the disclosure panel message.

    # Validate your HTML at https://validator.w3.org/

Заголовок политики безопасности контента

Content-Security-Policy — это имя HTTP-заголовка ответа, используемого современными браузерами для повышения безопасности документа (или веб-страницы). Заголовок Content-Security-Policy позволяет ограничить, как браузер загружает ресурсы, такие как JavaScript, CSS, или практически все, что загружает браузер.

Ссылка: https://owasp.org/www-community/controls/Content_Security_Policy

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

[load_balancer.v1.sys.ngx.http]
  enable_csp_header = true

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

Включение заголовка CSP может нарушить вход SAML. Это может произойти, если страница входа IDP содержит встроенные сценарии JavaScript, которые заголовок CSP по умолчанию не позволяет оценивать.

Поиск и устранение неполадок

Общие синтаксические ошибки могут вызвать проблемы в конфигурационных файлах:

  • Ключи: Имена используют символы нижнего подчеркивания, а не дефисы.
  • Порты: Используйте правильный тип. Одиночные числа — целые числа и не нуждаются в кавычках. Диапазоны — строки и требуют кавычек.
  • Пробелы: Табуляции и пробелы являются пробелами.
  • Массивы: Используйте квадратные скобки с разделителями запятыми элементов одного типа.

См. 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/

Spec-Zone.ru

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