Руководство по установке
Перед началом установки ознакомьтесь с требованиями к системе для 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. Обратитесь к представителю службы поддержки клиентов или службы успешного сотрудничества для получения помощи при миграции с автономной установки Chef Automate на установку, использующую внешние хранилища данных.
Настройка внешнего Elasticsearch
Добавьте следующее в ваш 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 в локальную файловую систему
Для настройки резервного копирования локальной файловой системы данных Chef Automate, хранящихся во внешнем кластере Elasticsearch:
- Убедитесь, что файловые системы, которые вы планируете использовать для резервного копирования, смонтированы по одному пути на всех узлах Elasticsearch master и data.
- Настройте параметр
path.repoElasticsearch на каждом узле, как описано в документации Elasticsearch. - Добавьте следующее в ваш
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:
Установите
repository-s3плагин на всех узлах вашего кластера Elasticsearch.Если вы хотите использовать аутентификацию IAM для предоставления узлам Elasticsearch доступа к ведру S3, вы должны применить соответствующую политику IAM к каждой системе хоста в кластере.
Настройте каждый узел Elasticsearch с конфигурацией клиента S3, содержащей правильный конечный пункт S3, учетные данные и другие параметры, как описано в документации Elasticsearch.
-
Включите резервное копирование в 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:
Установите
repository-gcsплагин на всех узлах вашего кластера Elasticsearch.Создайте хранилище и настройте учетную запись службы для доступа к нему, следуя инструкциям, описанным в документации Elasticsearch.
Настройте каждый узел Elasticsearch с конфигурацией клиента GCS, содержащей правильные параметры GCS, как описано в документации Elasticsearch.
-
Включите резервное копирование в 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
© 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/