Spec-Zone.ru › Chef 18

Руководство по установке

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

Перед началом установки ознакомьтесь с Системными требованиями для Chef Automate.

См. Установку в изолированной сети для установки Chef Automate на хост без входящего или исходящего интернет-трафика.

Загрузка утилиты командной строки Chef Automate

Загрузите и распакуйте утилиту командной строки Chef Automate:

curl https://packages.chef.io/files/current/latest/chef-automate-cli/chef-automate_linux_amd64.zip | gunzip - > chef-automate && chmod +x chef-automate

Создание конфигурации по умолчанию

Создайте файл config.toml с значениями по умолчанию для вашей установки Chef Automate:

sudo ./chef-automate init-config

Вы можете настроить FQDN, имя пользователя и другие значения, изменив соответствующие значения в файле config.toml в вашем редакторе.

Если у вас есть требования к размеру данных и/или избыточности, см. Настройка внешних хранилищ данных для получения информации о настройке Chef Automate для использования внешнего кластера базы данных PostgreSQL и/или кластера Elasticsearch. Если у вас есть требования к высокодоступной установке Chef Automate, обратитесь к представителю службы поддержки клиентов или службы профессиональных услуг за помощью.

См. Настройка Chef Automate для получения дополнительной информации о параметрах конфигурации.

Развертывание Chef Automate

sudo ./chef-automate deploy config.toml

Развертывание займет несколько минут. Первый шаг — принятие условий обслуживания в командной строке, после чего установщик выполнит серию проверок перед запуском; информация о решении проблем или пропуске проверки содержится при неудачных проверках. После устранения любых проблем с проверками перед запуском выполните команду развертывания снова.

В конце процесса развертывания вы увидите:

Deploy complete

Процесс развертывания записывает учетные данные для входа в файл automate-credentials.toml в вашей текущей рабочей директории.

Открытие Chef Automate

Перейдите по ссылке https://automate.example.com в браузере и войдите в Chef Automate с учетными данными, указанными в файле automate-credentials.toml. После входа в систему Chef Automate запросит лицензию.

Если у вашего экземпляра Chef Automate есть доступ к интернету, вы можете получить 60-дневную пробную лицензию там. В качестве альтернативы, можно применить лицензию, полученную другими способами.

Настройка сбора данных

Для отправки данных с вашего сервера Chef Infra или клиентов Chef Infra в Chef Automate 2 процесс такой же, как и в Chef Automate 1. См. “Настройка сбора данных” для получения дополнительной информации.

Обновления

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

Каналы релизов

Процесс обновления Chef Automate использует каналы релизов, чтобы обеспечить больший контроль над применяемыми автоматическими обновлениями вашей системы. Chef Automate всегда будет брать последнюю версию в рамках указанного канала релизов. Изначально мы предоставляем канал по умолчанию current, но в будущем будут доступны дополнительные каналы.

Чтобы изменить канал релизов, используемый для обновлений, измените параметр channel в вашем файле config.toml:

channel = "current"

Отключение автоматических обновлений

Вы можете отключить автоматические обновления, изменив параметр upgrade_strategy в вашем файле config.toml:

upgrade_strategy = "none"

Чтобы вручную инициировать обновление, выполните

chef-automate upgrade run

Эта команда обновит Chef Automate до последней версии, доступной из вашего канала релизов.

Общие проблемы

Если вы не можете открыть Chef Automate, проверьте, что config.toml содержит общедоступный DNS в качестве FQDN.

# 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 = "<_Public DNS_name>"

После исправления и сохранения FQDN выполните

sudo chef-automate config patch config.toml

и повторите попытку открыть Chef Automate в вашем браузере.

Настройка внешних хранилищ данных

Вы можете настроить Chef Automate для использования кластеров PostgreSQL и Elasticsearch, которые не развертываются самим Chef Automate. Приведенные ниже инструкции предназначены только для использования при первоначальном развертывании Chef Automate.

Настройка внешнего Elasticsearch

Примечание

Chef Automate поддерживает официальную службу Elasticsearch от Elastic. Chef Automate не тестирует и не поддерживает альтернативные службы, такие как Amazon Elasticsearch Service (Amazon ES).

Добавьте следующее в ваш config.toml:

[global.v1.external.elasticsearch]
  enable = true
  nodes = ["http://elastic1.example:9200", "http://elastic2.example:9200", "..." ]

# Uncomment and fill out if using external elasticsearch with SSL and/or basic auth
# [global.v1.external.elasticsearch.auth]
#   scheme = "basic_auth"
# [global.v1.external.elasticsearch.auth.basic_auth]
## Create this elasticsearch user before starting the Automate deployment;
## Automate assumes it exists.
#   username = "<admin username>"
#   password = "<admin password>"
# [global.v1.external.elasticsearch.ssl]
#  Specify either a root_cert or a root_cert_file
#  root_cert = """$(cat </path/to/cert_file.crt>)"""
#  server_name = "<elasticsearch server name>"

# Uncomment and fill out if using external elasticsearch that uses hostname-based routing/load balancing
# [esgateway.v1.sys.ngx.http]
#  proxy_set_header_host = "<your external es hostname>:1234"

# Uncomment and add to change the ssl_verify_depth for the root cert bundle
#  ssl_verify_depth = "2"

Поскольку внешние узлы Elasticsearch не будут иметь доступа к встроенным службам резервного копирования Chef Automate, вы должны настроить параметры резервного копирования Elasticsearch отдельно от основных параметров резервного копирования Chef Automate. Вы можете настроить резервные копии для использования локальной файловой системы или S3.

Добавление разрешителей для Elasticsearch

В случае, если вы хотите динамически разрешить IP-адреса узлов Elasticsearch с помощью DNS-серверов, вы можете добавить разрешители/DNS-серверы в конфигурацию.

Серверы имен можно добавить двумя способами:

  1. Добавление IP-адресов серверов имен: Добавьте серверы имен в ваш файл config.toml для разрешения узлов Elasticsearch.

    [esgateway.v1.sys.ngx.main.resolvers]
      # Multiple resolvers can be specified by adding the resolvers in the list.
      nameservers = ["192.0.2.0:24", "198.51.100.0:24"]
    
  2. Указание записей DNS системы: Чтобы использовать существующие записи DNS-серверов системы из /etc/resolv.conf, добавьте следующий параметр в config.toml:

    [esgateway.v1.sys.ngx.main.resolvers]
      enable_system_nameservers = true
    

Если оба параметра установлены, IP-адреса серверов имен имеют приоритет над записями DNS-серверов системы.

Примените изменения:

sudo chef-automate config patch config.toml

Если вы хотите сбросить конфигурацию до значения по умолчанию или изменить конфигурацию:

  1. Выполните chef-automate config show config.toml.
  2. Отредактируйте config.toml и удалите раздел конфигурации esgateway.v1.sys.ngx.main.resolvers или измените значения.
  3. Выполните chef-automate config set config.toml для применения изменений.
Резервное копирование внешнего Elasticsearch в локальную файловую систему

Чтобы настроить резервное копирование данных Chef Automate, хранящихся во внешнем кластере Elasticsearch, в локальной файловой системе:

  1. Убедитесь, что файловые системы, которые вы планируете использовать для резервных копий, смонтированы по одному пути на всех узлах-мастерах и узлах данных Elasticsearch.
  2. Настройте параметр Elasticsearch path.repo на каждом узле, как описано в документации Elasticsearch.
  3. Добавьте следующее в ваш config.toml:
[global.v1.external.elasticsearch.backup]
enable = true
location = "fs"

[global.v1.external.elasticsearch.backup.fs]
# The `path.repo` setting you've configured on your Elasticsearch nodes must be
# a parent directory of the setting you configure here:
path = "/var/opt/chef-automate/backups"
Резервное копирование внешнего Elasticsearch в AWS S3

Чтобы настроить резервные копии в AWS S3 данных Chef Automate, хранящихся во внешнем кластере Elasticsearch:

  1. Установите repository-s3 плагин на всех узлах вашего кластера Elasticsearch.

  2. Если вы хотите использовать аутентификацию IAM для предоставления узлам Elasticsearch доступа к ведру S3, вы должны применить соответствующую политику IAM к каждой системе-хосту в кластере.

  3. Настройте каждый узел Elasticsearch с конфигурацией клиента S3, содержащей правильный конечный пункт S3, учетные данные и другие параметры, как описано в документации Elasticsearch.

  4. Включите резервные копии S3, добавив следующие параметры в ваш config.toml:

    [global.v1.external.elasticsearch.backup]
    enable = true
    location = "s3"
    
    [global.v1.external.elasticsearch.backup.s3]
    
      # bucket (required): The name of the bucket
      bucket = "<bucket name>"
    
      # base_path (optional):  The path within the bucket where backups should be stored
      # If base_path is not set, backups will be stored at the root of the bucket.
      base_path = "<base path>"
    
      # name of an s3 client configuration you create in your elasticsearch.yml
      # see https://www.elastic.co/guide/en/elasticsearch/plugins/current/repository-s3-client.html
      # for full documentation on how to configure client settings on your
      # Elasticsearch nodes
      client = "<client name>"
    
    [global.v1.external.elasticsearch.backup.s3.settings]
    ## The meaning of these settings is documented in the S3 Repository Plugin
    ## documentation. See the following links:
    ## https://www.elastic.co/guide/en/elasticsearch/plugins/current/repository-s3-repository.html
    
    ## Backup repo settings
    # compress = false
    # server_side_encryption = false
    # buffer_size = "100mb"
    # canned_acl = "private"
    # storage_class = "standard"
    ## Snapshot settings
    # max_snapshot_bytes_per_sec = "40mb"
    # max_restore_bytes_per_sec = "40mb"
    # chunk_size = "null"
    ## S3 client settings
    # read_timeout = "50s"
    # max_retries = 3
    # use_throttle_retries = true
    # protocol = "https"
    
Резервное копирование внешнего Elasticsearch в GCS

Чтобы настроить резервные копии в Google Cloud Storage Bucket (GCS) данных Chef Automate, хранящихся во внешнем кластере Elasticsearch:

  1. Установите repository-gcs плагин на всех узлах вашего кластера Elasticsearch.

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

  3. Настройте каждый узел Elasticsearch с конфигурацией клиента GCS, содержащей правильные параметры GCS, как описано в документации Elasticsearch.

  4. Включите резервные копии GCS, добавив следующие параметры в ваш config.toml:

    [global.v1.external.elasticsearch]
      enable = true
      nodes = ["https://my-es.cluster"]
      ## If multiple
      # nodes = ["https://my-es.node-1", "https://my-es.node-2", "etc..."]
    
    ## The following settings are required if you have Elasticsearch setup with basic auth
    #[global.v1.external.elasticsearch.auth]
    #  scheme = "basic_auth"
    #
    #[global.v1.external.elasticsearch.auth.basic_auth]
    #  username = "everyuser"
    #  password = "pass123"
    
    [global.v1.external.elasticsearch.backup]
      enable = true
      location = "gcs"
    
    [global.v1.external.elasticsearch.backup.gcs]
      bucket = "<bucket name>"
      # Client name is normally default, but can be set here if you have generated service
      # account credentials with a different client name
      client = "default"
    
    ## GCS Bucket Settings:
    # type = nearline
    # access control = uniform
    

Настройка внешней базы данных PostgreSQL

Добавьте следующие параметры в ваш config.toml:

[global.v1.external.postgresql]
enable = true
nodes = ["<pghostname1>:<port1>", "<pghostname2>:<port2>", "..."]

# To use postgres with SSL, uncomment and fill out the following:
# [global.v1.external.postgresql.ssl]
# enable = true
# root_cert = """$(cat </path/to/root/cert.pem>)"""

[global.v1.external.postgresql.auth]
scheme = "password"

# Create these postgres users before starting the Automate deployment;
# Automate assumes they already exist.
[global.v1.external.postgresql.auth.password.superuser]
username = "<admin username>"
password = "<admin password>"
[global.v1.external.postgresql.auth.password.dbuser]
username = "<dbuser username>"
password = "<dbuser password>"

[global.v1.external.postgresql.backup]
enable = true
Добавление разрешителей для базы данных PostgreSQL

В случае, если вы хотите динамически разрешить IP-адреса узлов кластера PostgreSQL с помощью DNS-серверов, вы можете добавить разрешители/DNS-серверы в конфигурацию.

Серверы имен можно добавить двумя способами:

  1. Добавление IP-адресов серверов имен: Если вам известны серверы имен, которые должны разрешать узлы PostgreSQL, серверы имен можно добавить в ваш файл config.toml.

    [pg_gateway.v1.sys.resolvers]
      # Multiple resolvers can be specified by adding the resolvers in the list.
      nameservers = ["127.0.0.53:53"]
    
  2. Указание записей DNS системы: Чтобы использовать существующие записи DNS-серверов системы из /etc/resolv.conf, добавьте следующий параметр в config.toml:

    [pg_gateway.v1.sys.resolvers]
      enable_system_nameservers = true
    

Если оба параметра установлены, IP-адреса серверов имен имеют приоритет над записями DNS-серверов системы.

Примените изменения:

sudo chef-automate config patch config.toml

Если вы хотите сбросить конфигурацию до значения по умолчанию или изменить конфигурацию:

  1. Выполните chef-automate config show config.toml.
  2. Отредактируйте config.toml для замены/редактирования раздела pg_gateway.v1.sys.resolvers значениями конфигурации.
  3. Выполните chef-automate config set config.toml для применения изменений.

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

Spec-Zone.ru

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