Spec-Zone.ru › Chef 18

chef-server-ctl (выполняемый файл)

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

Сервер Chef Infra включает утилиту командной строки с именем chef-server-ctl. Этот инструмент командной строки используется для запуска и остановки отдельных служб, переконфигурации сервера Chef Infra, запуска chef-pedant и просмотра логов сервера Chef Infra.

Резервное копирование/восстановление

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

backup

Подкоманда backup используется для резервного копирования всех данных сервера Chef Infra. Эта подкоманда:

  • Требует наличия rsync на сервере Chef Infra перед выполнением команды
  • Требует chef-server-ctl reconfigure перед выполнением команды
  • Не должна использоваться в конфигурации сервера Chef Infra с внешней базой данных PostgreSQL; используйте knife ec backup вместо этого
  • Сохраняет начальную резервную копию в каталоге /var/opt/chef-backup в формате tar.gz; переместите эту резервную копию в новое место для сохранности

Параметры

Эта подкоманда имеет следующие параметры:

-y, --yes

Используется для указания, может ли сервер Chef Infra выйти из строя во время резервного копирования в формате tar.gz.

--pg-options

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

-c, --config-only

Резервное копирование конфигурации сервера Chef Infra без резервного копирования данных.

-t, --timeout

Устанавливает максимальное время в секундах ожидания команд оболочки (по умолчанию 600). Этот параметр следует установить больше чем 600 для резервных копий, занимающих более 10 минут.

-h, --help

Показать сообщение справки.

Синтаксис

Эта подкоманда имеет следующий синтаксис:

chef-server-ctl backup

restore

Подкоманда restore используется для восстановления данных сервера Chef Infra из резервной копии, созданной подкомандой backup. Эта подкоманда также может использоваться для добавления данных сервера Chef Infra на новый сервер. Не выполняйте эту команду в конфигурации сервера Chef Infra, использующей внешнюю базу данных PostgreSQL; используйте knife ec backup вместо этого. Эта подкоманда:

  • Требует наличия rsync на сервере Chef Infra перед выполнением команды
  • Требует chef-server-ctl reconfigure перед выполнением команды

В идеале, сервер восстановления будет иметь тот же FQDN, что и сервер, с которого вы создали резервную копию. Если сервер восстановления имеет другой FQDN, то:

  1. Замените FQDN в /etc/opscode/chef-server.rb.
  2. Замените FQDN в /etc/opscode/chef-server-running.json.
  3. Удалите старый сертификат SSL, ключ и файл -ssl.conf из /var/opt/opscode/nginx/ca.
  4. Если вы используете выпущенный сертификат CA вместо самоподписанного сертификата, скопируйте сертификат CA и ключ в /var/opt/opscode/nginx/ca.
  5. Обновите файл /etc/chef/client.rb на каждом клиенте, указав новый FQDN сервера.
  6. Выполните chef-server-ctl reconfigure.
  7. Выполните ``chef-server-ctl restore`.

Параметры

Эта подкоманда имеет следующие параметры:

-c, --cleanse

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

-d DIRECTORY, --staging-dir DIRECTORY

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

--pg-options

:   Use to specify and pass additional options PostgreSQL during backups. See the [PostgreSQL documentation](https://www.postgresql.org/docs/13/runtime-config.html) for more information.

`-t`, `--timeout`

:   Set the maximum amount of time in seconds to wait for shell commands. Set to greater than 600 for backups that take longer than 10 minutes. Default: 600.

`-h`, `--help`

:   Show help message.


**Syntax**

This subcommand has the following syntax:

```bash
chef-server-ctl restore PATH_TO_BACKUP (options)

Примеры

chef-server-ctl restore /path/to/tar/archive.tar.gz

очистка

Подкоманда cleanse используется для сброса сервера Chef Infra до состояния, в котором он находился до первого запуска подкоманды reconfigure. Эта команда уничтожит все данные, конфигурационные файлы и журналы. Программное обеспечение, установленное на диске в ходе установки пакета, останется; запустите chef-server-ctl reconfigure повторно, чтобы воссоздать стандартные данные и конфигурационные файлы.

Параметры

Эта подкоманда имеет следующие параметры:

--with-external

Используется для указания на то, что данные сервера Chef Infra в внешней базе данных PostgreSQL должны быть удалены.

Синтаксис

Эта подкоманда имеет следующий синтаксис:

chef-server-ctl cleanse

сбор журналов

Подкоманда gather-logs используется для сбора логов сервера Chef Infra в архив tar, содержащий все важные журналы и системную информацию.

Эта подкоманда имеет следующий синтаксис:

chef-server-ctl gather-logs

справка

Подкоманда help используется для вывода списка всех доступных команд chef-server-ctl.

Эта подкоманда имеет следующий синтаксис:

chef-server-ctl help

установка

Подкоманда install используется для установки премиум-функций сервера Chef Infra: консоль управления Chef, отчеты о работе клиента Chef Infra, конфигурации высокой доступности и репликация сервера Chef Infra.

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

Команда chef-server-ctl install больше не работает в версиях сервера Chef Infra 12.5 (и более ранних) из-за изменения способа загрузки пакетов с Chef.

Синтаксис

Эта подкоманда имеет следующий синтаксис:

chef-server-ctl install name_of_addon (options)

где name_of_addon представляет собой значение командной строки, связанное с добавком или премиум-функцией.

Параметры

Эта подкоманда имеет следующие параметры:

--path PATH

Используется для указания местоположения пакета. Этот параметр не требуется, когда пакеты загружаются с https://packages.chef.io/.

Использование загрузок

Подкоманда install по умолчанию загружает пакеты с https://packages.chef.io. Для систем, не находящихся за брандмауэром (и имеющих доступ к https://packages.chef.io), эти пакеты могут быть установлены, как описано ниже.

  1. Установка аддонов

    Установите Chef Manage с:

    sudo chef-server-ctl install chef-manage
    
  2. Переконфигурация сервера

    sudo chef-server-ctl reconfigure
    
  3. Переконфигурация аддонов

    Переконфигурируйте Chef Manage с:

    sudo chef-manage-ctl reconfigure
    

Наконец, примите лицензию Chef:

sudo chef-manage-ctl reconfigure --accept-license

Использование локальных пакетов

Используйте подкоманду install с параметром --path для установки аддона Chef Manage (chef-manage) для сервера Chef Infra.

sudo chef-server-ctl install PACKAGE_NAME --path /path/to/package/directory

Например:

sudo chef-server-ctl install chef-manage --path /root/packages

Команда chef-server-ctl установит первый пакет chef-manage, найденный в каталоге /root/packages.

Вращение ключей

Используйте следующие команды для управления вращением открытых и закрытых ключей для пользователей и клиентов.

добавить-ключ-клиента

Используйте подкоманду add-client-key для добавления ключа клиента.

Синтаксис

Эта подкоманда имеет следующий синтаксис:

chef-server-ctl add-client-key ORG_NAME CLIENT_NAME [--public-key-path PATH] [--expiration-date DATE] [--key-name NAME]

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

Все параметры этой подкоманды должны следовать всем аргументам.

Параметры

Эта подкоманда имеет следующие параметры:

CLIENT_NAME

Имя клиента, для которого вы хотите добавить ключ.

-e DATE --expiration-date DATE

Строка в формате ISO 8601: YYYY-MM-DDTHH:MM:SSZ. Например: 2013-12-24T21:00:00Z. Если не указано, срок действия будет равен бесконечности.

-k NAME --key-name NAME

Строка, определяющая имя нового ключа для этого клиента. Если не указано, по умолчанию будет использоваться отпечаток открытого ключа.

ORG_NAME

Короткое имя организации, к которой принадлежит клиент.

-p PATH --public-key-path PATH

Путь к файлу, содержащему действительный открытый ключ PKCS#1 для добавления. Если не указано, сервер сгенерирует новый и вернёт закрытый ключ в стандартный вывод.

добавить-ключ-пользователя

Используйте подкоманду add-user-key для добавления ключа пользователя.

Синтаксис

Эта подкоманда имеет следующий синтаксис:

chef-server-ctl add-user-key USER_NAME [--public-key-path PATH] [--expiration-date DATE] [--key-name NAME]

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

Все параметры этой подкоманды должны следовать всем аргументам.

Параметры

Эта подкоманда имеет следующие параметры:

-e DATE --expiration-date DATE

Строка в формате ISO 8601: YYYY-MM-DDTHH:MM:SSZ. Например: 2013-12-24T21:00:00Z. Если не указано, срок действия будет равен бесконечности.

-k NAME --key-name NAME

Строка, определяющая имя нового ключа для этого пользователя. Если не указано, по умолчанию будет использоваться отпечаток открытого ключа.

-p PATH --public-key-path PATH

Путь к файлу, содержащему действительный открытый ключ PKCS#1 для добавления. Если не указано, сервер сгенерирует новый и вернёт закрытый ключ в стандартный вывод.

USER_NAME

Имя пользователя, для которого добавляется ключ.

удалить-ключ-клиента

Используйте подкоманду delete-client-key для удаления ключа клиента.

Синтаксис

Эта подкоманда имеет следующий синтаксис:

chef-server-ctl delete-client-key ORG_NAME CLIENT_NAME KEY_NAME

Параметры

Эта подкоманда имеет следующие аргументы:

ORG_NAME

Короткое имя организации, к которой принадлежит клиент.

CLIENT_NAME

Имя клиента.

KEY_NAME

Уникальное имя, которое должно быть присвоено ключу, который вы хотите удалить.

Удалить ключ пользователя

Используйте подкоманду delete-user-key для удаления ключа пользователя.

Синтаксис

Эта подкоманда имеет следующий синтаксис:

chef-server-ctl delete-user-key USER_NAME KEY_NAME

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

Параметры для этой подкоманды должны быть в указанном выше порядке.

Параметры

Эта подкоманда имеет следующие аргументы:

USER_NAME

Имя пользователя.

KEY_NAME

Уникальное имя, которое должно быть присвоено ключу, который вы хотите удалить.

Список ключей клиента

Используйте подкоманду list-client-keys для отображения ключей клиента.

Синтаксис

Эта подкоманда имеет следующий синтаксис:

chef-server-ctl list-client-keys ORG_NAME CLIENT_NAME [--verbose]

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

Все параметры для этой подкоманды должны следовать за всеми аргументами.

Параметры

Эта подкоманда имеет следующие параметры:

CLIENT_NAME

Имя клиента.

ORG_NAME

Короткое имя организации, к которой принадлежит клиент.

--verbose

Использовать для отображения полных строк открытых ключей в выводе команды.

Список ключей пользователя

Используйте подкоманду list-user-keys для отображения ключей клиента.

Синтаксис

Эта подкоманда имеет следующий синтаксис:

chef-server-ctl list-user-keys USER_NAME [--verbose]

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

Все параметры для этой подкоманды должны следовать за всеми аргументами.

Параметры

Эта подкоманда имеет следующие параметры:

USER_NAME

Имя пользователя, для которого вы хотите отобразить ключи.

--verbose

Использовать для отображения полных строк открытых ключей в выводе команды.

Пример

Для просмотра списка ключей пользователей (включая вывод открытых ключей):

chef-server-ctl list-user-keys applejack --verbose

Возвращает:

2 total key(s) found for user applejack

key_name: test-key
expires_at: Infinity
public_key:
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4q9Dh+bwJSjhU/VI4Y8s
9WsbIPfpmBpoZoZVPL7V6JDfIaPUkdcSdZpynhRLhQwv9ScTFh65JwxC7wNhVspB
4bKZeW6vugNGwCyBIemMfxMlpKZQDOc5dnBiRMMOgXSIimeiFtL+NmMXnGBBHDaE
b+XXI8oCZRx5MTnzEs90mkaCRSIUlWxOUFzZvnv4jBrhWsd/yBM/h7YmVfmwVAjL
VST0QG4MnbCjNtbzToMj55NAGwSdKHCzvvpWYkd62ZOquY9f2UZKxYCX0bFPNVQM
EvBQGdNG39XYSEeF4LneYQKPHEZDdqe7TZdVE8ooU/syxlZgADtvkqEoc4zp1Im3
2wIDAQAB
-----END PUBLIC KEY-----

key_name: default
expires_at: Infinity
public_key:
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4q9Dh+bwJSjhU/VI4Y8s
9WsbIPfpmBpoZoZVPL7V6JDfIaPUkdcSdZpynhRLhQwv9ScTFh65JwxC7wNhVspB
4bKZeW6vugNGwCyBIemMfxMlpKZQDOc5dnBiRMMOgXSIimeiFtL+NmMXnGBBHDaE
b+XXI8oCZRx5MTnzEs90mkaCRSIUlWxOUFzZvnv4jBrhWsd/yBM/h7YmVfmwVAjL
VST0QG4MnbCjNtbzToMj55NAGwSdKHCzvvpWYkd62ZOquY9f2UZKxYCX0bFPNVQM
EvBQGdNG39XYSEeF4LneYQKPHEZDdqe7TZdVE8ooU/syxlZgADtvkqEoc4zp1Im3
2wIDAQAB
-----END PUBLIC KEY-----

Управление секретами

Используйте следующие команды для управления и вращения общих секретов и учетных данных служб. Файл секретов, используемый для хранения этих данных, находится по адресу /etc/opscode/private-chef-secrets.json на вашем сервере Chef Infra. Он должен принадлежать и быть доступен только для root.

Установить секрет

Подкоманда set-secret позволяет хранить общие секреты и учетные данные служб. В хранилище могут храниться только секреты, известные серверу Chef Infra.

Синтаксис

Эта подкоманда имеет следующий синтаксис:

chef-server-ctl set-secret GROUP NAME

Существует несколько способов передачи секрета этой команде:

  1. в качестве третьего аргумента:

    chef-server-ctl set-secret ldap bind_password secretpassword
    
  2. через переменную окружения:

    export LDAP.BIND_PASSWORD="secretpassword"
    chef-server-ctl set-secret ldap bind_password
    
  3. через интерактивное приглашение:

    chef-server-ctl set-secret ldap bind_password
    Enter ldap bind_password:    (no terminal output)
    Re-enter ldap bind_password: (no terminal output)
    

Параметры

Эта подкоманда имеет следующие параметры:

--with-restart

Если какие-либо службы зависят от изменения секрета, попытайтесь перезапустить их после изменения секрета. Добавлен в Chef Infra Server 12.16.2.

Удалить секрет

Подкоманда remove-secret позволяет удалить сохраненный общий секрет и учетные данные службы.

Синтаксис

Эта подкоманда имеет следующий синтаксис:

chef-server-ctl remove-secret GROUP NAME

Пример

chef-server-ctl remove-secret ldap bind_password

Показать секрет

Подкоманда show-secret позволяет просмотреть сохраненный общий секрет и учетные данные службы.

Синтаксис

Эта подкоманда имеет следующий синтаксис:

chef-server-ctl show-secret GROUP NAME

Установить пароль суперпользователя базы данных

Подкоманда set-db-superuser-password позволяет хранить пароль суперпользователя базы данных.

Синтаксис

Эта подкоманда имеет следующий синтаксис:

chef-server-ctl set-db-superuser-password

Аналогично set-secret, пароль суперпользователя также может быть передан через переменную окружения DB_PASSWORD.

Установить пароль действий

Подкоманда set-actions-password позволяет хранить пароль действий RabbitMQ.

Синтаксис

Эта подкоманда имеет следующий синтаксис:

chef-server-ctl set-actions-password

Аналогично set-secret, пароль действий также может быть передан через переменную окружения ACTIONS_PASSWORD.

oc-id-show-app

Подкоманда oc-id-show-app позволяет получить идентификатор клиента и секрет клиента для приложений, известных oc-id. Обратите внимание, что с insecure_addon_compat отключённым, эти данные больше не будут записываться в /etc/opscode/oc-id-applications/APP.json.

Синтаксис

Эта подкоманда имеет следующий синтаксис:

chef-server-ctl oc-id-show-app APP

Пример

chef-server-ctl oc-id-show-app supermarket
{
  "name": "supermarket",
  "uid": "0bad0f2eb04e935718e081fb71asdfec3681c81acb9968a8e1e32451d08b",
  "secret": "17cf1141cc971a10ce307611beda7ffadstr4f1bc98d9f9ca76b9b127879",
  "redirect_uri": "https://supermarket.mycompany.com/auth/chef_oauth2/callback"
}

Требовать ротацию учетных данных

Подкоманда require-credential-rotation выводит сервер Chef Infra из работы и требует полной ротации учетных данных службы, прежде чем серверы Chef Infra в вашем кластере смогут снова перезапуститься. Запустите rotate-shared-secrets для создания нового общего секрета, соли и генерации новых учетных данных службы. Затем скопируйте файл секретов на каждый сервер Chef Infra и запустите sudo chef-server-ctl reconfigure на каждом сервере, чтобы завершить процесс ротации.

Примечание

Ротация учетных данных не вращает ключи pivot, пользователя или клиента, а также не удаляет какие-либо политики или кулинарные книги сервера Chef Infra, которые были загружены.

Синтаксис

Эта подкоманда имеет следующий синтаксис:

chef-server-ctl require-credential-rotation (options)

Параметры

Эта подкоманда имеет следующие параметры:

-y, --yes

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

Вращение всех учетных данных

Подкоманда rotate-all-credentials генерирует новые значения учетных данных для всех учетных данных службы, увеличивая номер версии учетных данных и создавая новое значение хэша. Вы можете выбрать, скопировать ли обновленный файл секретов на каждый узел кластера и переконфигурировать или запустить эту подкоманду на всех узлах.

Синтаксис

Эта подкоманда имеет следующий синтаксис:

chef-server-ctl rotate-all-credentials

Вращение учетных данных

Подкоманда rotate-credentials генерирует новые значения учетных данных для всех учетных данных данной службы, увеличивая значение и создавая новое значение хэша. Вы можете выбрать, скопировать ли обновленный файл секретов на каждый узел кластера и переконфигурировать или запустить эту подкоманду для данной службы на всех узлах.

Синтаксис

Эта подкоманда имеет следующий синтаксис:

chef-server-ctl rotate-credentials SERVICE_NAME

Вращение общих секретов

Подкоманда rotate-shared-secrets создает новый общий секрет и соль, а также генерирует новые учетные данные службы. Она также сбрасывает номер credential_version для служб до 0. После выполнения этой подкоманды был создан новый общий секрет, поэтому вы должны скопировать файл секретов на каждый сервер Chef Infra и запустить sudo chef-server-ctl reconfigure на них, чтобы завершить процесс вращения.

Синтаксис

Эта подкоманда имеет следующий синтаксис:

chef-server-ctl rotate-shared-secrets

Показать учетные данные службы

Подкоманда show-service-credentials отображает все учетные данные службы для служб, работающих на локальном сервере Chef Infra.

Синтаксис

Эта подкоманда имеет следующий синтаксис:

chef-server-ctl show-service-credentials

Очистка Bifrost

Подкоманда cleanup-bifrost удаляет неиспользуемые объекты авторизации из базы данных авторизации (называемой bifrost). Эти неиспользуемые объекты могут накапливаться на серверах Chef Infra с длительным сроком работы в результате неудачных запросов на создание объектов. Для большинства пользователей неиспользуемые объекты авторизации не существенно влияют на производительность сервера Chef Infra, однако в некоторых ситуациях их очистка может быть полезной. Эта команда предназначена в основном для использования командой поддержки Chef.

Синтаксис

Эта подкоманда имеет следующий синтаксис:

chef-server-ctl cleanup-bifrost OPTIONS

Параметры

Эта подкоманда имеет следующие параметры:

--estimate-only

Предоставляет оценку количества неиспользуемых объектов, которые будут удалены, без удаления чего-либо.

--wait-time SECONDS

Количество секунд ожидания завершения запросов в работе. Уменьшайте это значение только в том случае, если вы выполняете команду, когда сервер Chef Infra не принимает запросы.

--force-cleanup

Удаляет внутренние таблицы отслеживания, используемые во время процесса очистки. Ручная очистка этих таблиц требуется только в том случае, если команда очистки была прервана неожиданно.

--batch-size

Количество удаляемых за раз отставших агентов авторизации.

Управление организациями

Используйте команды org-create, org-delete, org-list, org-show, org-user-add и org-user-remove для управления организациями.

org-create

Подкоманда org-create используется для создания организации. (Ключ проверки для организации возвращается STDOUT при создании организации с помощью этой команды.)

Синтаксис

Эта подкоманда имеет следующий синтаксис:

chef-server-ctl org-create ORG_NAME "ORG_FULL_NAME" (options)

где:

  • Имя должно начинаться с строчной буквы или цифры, содержать только строчные буквы, цифры, дефисы и нижние подчеркивания, и быть длиной от 1 до 255 символов. Например: chef.
  • Полное имя должно начинаться с символа, отличного от пробела, и быть длиной от 1 до 1023 символов. Например: "Chef Software, Inc.".

Параметры

Эта подкоманда имеет следующие параметры:

-a USER_NAME, --association_user USER_NAME

Связывает пользователя с организацией и добавляет его в группы безопасности admins и billing_admins.

-f FILE_NAME, --filename FILE_NAME

Записывает ORGANIZATION-validator.pem в FILE_NAME вместо вывода его в STDOUT.

Примеры

chef-server-ctl org-create prod Production
chef-server-ctl org-create staging Staging -a chef-admin
chef-server-ctl org-create dev Development -f /tmp/id-dev.key
chef-server-ctl org-create dev Development --association_user grantmc

org-delete

Подкоманда org-delete используется для удаления организации.

Синтаксис

Эта подкоманда имеет следующий синтаксис:

chef-server-ctl org-delete ORG_NAME

Примеры

chef-server-ctl org-delete infra-testing-20140909
chef-server-ctl org-delete pedant-testing-org

org-list

Подкоманда org-list используется для вывода списка всех организаций, присутствующих на сервере Chef Infra.

Синтаксис

Эта подкоманда имеет следующий синтаксис:

chef-server-ctl org-list (options)

Параметры

Эта подкоманда имеет следующие параметры:

-a, --all-orgs

Показать все организации.

-w, --with-uri

Показать соответствующие URI.

org-show

Подкоманда org-show используется для отображения подробной информации об организации.

Синтаксис

Эта подкоманда имеет следующий синтаксис:

chef-server-ctl org-show ORG_NAME

org-user-add

Подкоманда org-user-add используется для добавления пользователя к организации.

Синтаксис

Эта подкоманда имеет следующий синтаксис:

chef-server-ctl org-user-add ORG_NAME USER_NAME (options)

Параметры

Эта подкоманда имеет следующие параметры:

--admin

Добавить пользователя в группу admins.

Примеры

chef-server-ctl org-user-add prod john_smith
chef-server-ctl org-user-add preprod testmaster
chef-server-ctl org-user-add dev grantmc --admin

org-user-remove

Подкоманда org-user-remove используется для удаления пользователя из организации.

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

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

EDITOR=vi knife edit /groups/admins.json

внесите необходимые изменения и сохраните файл.

Синтаксис

Эта подкоманда имеет следующий синтаксис:

chef-server-ctl org-user-remove ORG_NAME USER_NAME (options)

Параметры

Эта подкоманда имеет следующие параметры:

--force

Принудительно удалить пользователя из групп admins и billing-admins организации.

Примеры

chef-server-ctl org-user-remove prod john_smith
chef-server-ctl org-user-remove prod testmaster
chef-server-ctl org-user-remove grantmc --force

password

Подкоманда password используется для смены пароля пользователя. При включенном Active Directory или LDAP эта команда включает (или отключает) пароль для восстановления системы для этого пользователя. Например:

Эта подкоманда имеет следующий синтаксис:

chef-server-ctl password USERNAME

Эта подкоманда имеет следующие параметры:

--disable

Используйте этот параметр для отключения пароля для восстановления системы пользователя.

Примеры

Например, чтобы изменить пароль пользователя, введите:

chef-server-ctl password adamjacobs

а затем введите пароль и подтвердите его:

Enter the new password:  ******
Enter the new password again:  ******

что вернет:

Password for adamjacobs successfully set.

Чтобы отключить пароль для восстановления системы:

chef-server-ctl password adamjacobs --disable

что вернет:

Password for adamjacobs successfully disabled for System Recovery.

psql

Подкоманда psql используется для входа в базу данных PostgreSQL, связанную с указанной службой. Эта подкоманда:

  • Использует psql (интерактивную оболочку для PostgreSQL)
  • Имеет только для чтения доступ по умолчанию
  • Рекомендуется для взаимодействия с любой базой данных PostgreSQL, которая является частью сервера Chef Infra
  • Автоматически обрабатывает аутентификацию

Синтаксис

Эта подкоманда имеет следующий синтаксис:

chef-server-ctl psql SERVICE_NAME (options)

Параметры

Эта подкоманда имеет следующие параметры:

--write

Используется для включения записи в базу данных PostgreSQL.

reconfigure

Подкоманда reconfigure используется, когда вносятся изменения в файл chef-server.rb для переконфигурации сервера. Изменения в файле chef-server.rb не будут применены к конфигурации сервера Chef Infra до тех пор, пока не будет выполнена эта команда. Эта подкоманда также перезапустит любые службы, для которых параметр service_name['enabled'] установлен в значение true.

Эта подкоманда имеет следующий синтаксис:

chef-server-ctl reconfigure

reindex

Подкоманда reindex используется для перезагрузки данных сервера Chef Infra из PostgreSQL в Elasticsearch.

Эта подкоманда имеет следующий синтаксис:

chef-server-ctl reindex

Примечание

Версии сервера Chef Infra, более ранние, чем 14.5, сконфигурированные с nginx['enable_non_ssl'] = false и fips = true требуют export CSC_LB_URL=https://127.0.0.1 для выполнения команды chef-server-ctl reindex <options>

Параметры

Эта подкоманда имеет следующие параметры:

-a, --all-orgs

Используется для переиндексации всех организаций на сервере Chef Infra. Этот параметр переопределит любую организацию, указанную в команде, т.е. chef-server-ctl reindex ORG_NAME -a переиндексирует все организации, а не только указанную.

-d, --disable-api

Используется для отключения API сервера Chef Infra, чтобы предотвратить запись во время переиндексации.

-t, --with-timing

Используется для вывода информации о времени выполнения процессов переиндексации.

-w, --wait

Используется для ожидания завершения очереди переиндексации перед завершением. Этот параметр работает только при запуске на автономном сервере Chef Infra или на первичном бэкенд-сервере Chef в рамках устаревшего уровня.

Администраторы сервера

Группа server-admins — это глобальная группа, которая предоставляет своим членам разрешение на создание, чтение, обновление и удаление учетных записей пользователей, за исключением суперпользователей. Группа server-admins полезна для пользователей, ответственных за повседневное администрирование сервера Chef Infra, особенно за управление пользователями с помощью подкоманды knife user. Прежде чем члены смогут быть добавлены в группу server-admins, у них должна быть учетная запись пользователя на сервере Chef Infra.

Пример

На сервере Chef Infra существуют следующие учетные записи пользователей: pivotal (суперпользователь), alice, bob, carol, и dan. Выполните следующую команду для просмотра списка пользователей на сервере Chef Infra:

chef-server-ctl user-list

и она возвращает тот же список пользователей:

pivotal
alice
bob
carol
dan

Элис — член команды ИТ, чьи обязанности включают ежедневное администрирование сервера Chef Infra, в частности, управление учетными записями пользователей на сервере Chef Infra, которые используются остальной организацией. С рабочего стола Элис выполняет следующую команду:

knife user list -c ~/.chef/alice.rb

и она возвращает следующую ошибку:

ERROR: You authenticated successfully to <chef_server_url> as alice
       but you are not authorized for this action
Response: Missing read permission

Элис не является суперпользователем и не имеет разрешений на других пользователей, так как учетные записи пользователей глобальны для организаций в сервере Chef Infra. Давайте добавим Элис в группу server-admins:

chef-server-ctl grant-server-admin-permissions alice

и она возвращает следующий ответ:

User alice was added to server-admins.

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

knife user list -c ~/.chef/alice.rb

что теперь возвращает:

pivotal
alice
bob
carol
dan

Теперь Элис является администратором сервера и может использовать следующие подкоманды knife для управления пользователями на сервере Chef Infra:

  • knife user-create
  • knife user-delete
  • knife user-edit
  • knife user-list
  • knife user-show

Например, Элис выполняет следующую команду:

knife user edit carol -c ~/.chef/alice.rb

и $EDITOR открывается для внесения Элис изменений и их сохранения.

Учетные записи суперпользователей

Учетные записи суперпользователей не могут быть управляемы пользователями, принадлежащими к группе server-admins. Например, Элис пытается удалить учетную запись суперпользователя pivotal:

knife user delete pivotal -c ~/.chef/alice.rb

и возвращается следующая ошибка:

ERROR: You authenticated successfully to <chef_server_url> as user1
       but you are not authorized for this action
Response: Missing read permission

Действие Элис не авторизовано даже с членством в группе server-admins.

Управление группой server-admins

Членство в группе server-admins управляется набором подкоманд chef-server-ctl:

  • chef-server-ctl grant-server-admin-permissions
  • chef-server-ctl list-server-admins
  • chef-server-ctl remove-server-admin-permissions

Добавление членов

Подкоманда grant-server-admin-permissions используется для добавления пользователя в группу server-admins. Выполняйте команду один раз для каждого добавляемого пользователя.

Данная подкоманда имеет следующий синтаксис:

chef-server-ctl grant-server-admin-permissions USER_NAME

где USER_NAME — это пользователь, который должен быть добавлен в список администраторов сервера.

Например:

chef-server-ctl grant-server-admin-permissions bob

возвращает:

User bob was added to server-admins. This user can now list,
read, and create users (even for orgs they are not members of)
for this Chef Infra Server.

Удаление участников

Подкоманда remove-server-admin-permissions используется для удаления пользователя из группы server-admins. Выполняйте команду один раз для каждого удаляемого пользователя.

Данная подкоманда имеет следующий синтаксис:

chef-server-ctl remove-server-admin-permissions USER_NAME

где USER_NAME — это пользователь, который должен быть удален из списка администраторов сервера.

Например:

chef-server-ctl remove-server-admin-permissions bob

возвращает:

User bob was removed from server-admins. This user can no longer
list, read, and create users for this Chef Infra Server except for where
they have default permissions (such as within an org).

Список участников

Подкоманда list-server-admins используется для возвращения списка пользователей, которые являются участниками группы server-admins.

Данная подкоманда имеет следующий синтаксис:

chef-server-ctl list-server-admins

и вернёт список пользователей, похожий на:

pivotal
alice
bob
carol
dan

show-config

Подкоманда show-config используется для просмотра конфигурации, которая будет сгенерирована подкомандой reconfigure. Эта команда наиболее полезна на ранних этапах развертывания для обеспечения правильности построения перед установкой.

Данная подкоманда имеет следующий синтаксис:

chef-server-ctl show-config

uninstall

Подкоманда uninstall используется для удаления приложения Chef Infra Server, но без удаления данных. Данная подкоманда остановит все службы (включая процесс runit).

Данная подкоманда имеет следующий синтаксис:

chef-server-ctl uninstall

Примечание

Для отмены действия подкоманды uninstall, выполните подкоманду reconfigure (поскольку подкоманда start отключена командой uninstall).

upgrade

Подкоманда upgrade используется для обновления Chef Infra Server.

Синтаксис

Данная подкоманда имеет следующий синтаксис:

chef-server-ctl upgrade (options)

Параметры

Данная подкоманда имеет следующие параметры:

-d DIRECTORY, --chef11-data-dir DIRECTORY

Директория, в которой расположены данные Chef Infra Server 11. Значение по умолчанию: временная директория.

-e DIRECTORY, --chef12-data-dir DIRECTORY

Директория, в которой расположены данные Chef Infra Server 12. Значение по умолчанию: временная директория.

-f FULL_NAME, --full-org-name FULL_NAME

Полное имя организации Chef Infra Server. Полное имя должно начинаться с не пробельного символа и содержать от 1 до 1023 символов. Например: Chef Software, Inc.. Если этот параметр не указан, команда upgrade запросит его.

-h, --help

Используется для отображения справки по подкоманде chef-server-ctl upgrade.

-k KEY_PATH, --key KEY_PATH

Ключ API Chef Infra Server 11 для клиента. Этот ключ используется для загрузки данных Chef Infra Server 11. Значение по умолчанию: /etc/chef-server/admin.pem.

-o ORG_NAME, --org-name ORG_NAME

Имя организации Chef Infra Server. Имя должно начинаться с маленькой буквы или цифры, может содержать только строчные буквы, цифры, дефисы и подчёркивания и иметь длину от 1 до 255 символов. Например: chef. Если этот параметр не указан, команда upgrade запросит его.

-s URL, --chef11-server-url URL

URL для версии 11 Chef Infra Server. Значение по умолчанию: https://localhost.

-t NUMBER, --upload-threads NUMBER

Количество потоков для миграции куков. Значение по умолчанию: 10.

-u USER, --user

Создать клиента как административного клиента. Это необходимо для доступа любого пользователя к Chef как администратору.

-x URL, --chef12-server-url URL

URL для Chef Infra Server версии 12. Значение по умолчанию: https://localhost.

-y, --yes

Пропустить запросы подтверждения во время процесса обновления.

Управление пользователями

Используйте подкоманды user-create, user-delete, user-edit, user-list и user-show для управления пользователями.

user-create

Подкоманда user-create используется для создания пользователя. (Ключ валидации для организации может быть возвращён STDOUT при создании пользователя с помощью этой команды.)

Синтаксис

Данная подкоманда имеет следующий синтаксис:

chef-server-ctl user-create USER_NAME FIRST_NAME [MIDDLE_NAME] LAST_NAME EMAIL 'PASSWORD' (options)

Параметры

Данная подкоманда имеет следующие параметры:

-f FILE_NAME, --filename FILE_NAME

Записать USER.pem в файл вместо STDOUT.

Примеры

chef-server-ctl user-create john_smith John Smith john_smith@example.com p@s5w0rD!
chef-server-ctl user-create jane_doe Jane Doe jane_doe@example.com p@s5w0rD! -f /tmp/jane_doe.key
chef-server-ctl user-create waldendude Henry David Thoreau waldendude@example.com excursions

user-delete

Подкоманда user-delete используется для удаления пользователя.

Синтаксис

Данная подкоманда имеет следующий синтаксис:

chef-server-ctl user-delete USER_NAME

Примеры

chef-server-ctl user-delete john_smith
chef-server-ctl user-delete jane_doe

Параметры

Данная подкоманда имеет следующие параметры:

-R, --remove-from-admin-groups

Удаляет пользователя, находящегося в одной или нескольких группах «admin», если этот пользователь не является единственным членом группы (групп) «admin».

user-edit

Подкоманда user-edit используется для изменения данных пользователя. Данные будут доступны в $EDITOR для редактирования.

Синтаксис

Данная подкоманда имеет следующий синтаксис:

chef-server-ctl user-edit USER_NAME

Примеры

chef-server-ctl user-edit john_smith
chef-server-ctl user-edit jane_doe

user-list

Подкоманда user-list используется для просмотра списка пользователей.

Синтаксис

Данная подкоманда имеет следующий синтаксис:

chef-server-ctl user-list (options)

Параметры

Данная подкоманда имеет следующие параметры:

-w, --with-uri

Показать соответствующие URI.

user-show

Подкоманда user-show используется для отображения данных пользователя.

Синтаксис

Данная подкоманда имеет следующий синтаксис:

chef-server-ctl user-show USER_NAME (options)

Параметры

Данная подкоманда имеет следующие параметры:

-l, --with-orgs

Показать все организации.

Подкоманды служб

В этой команде встроена служба управления процессами, которая гарантирует, что все необходимые службы находятся в нужном состоянии в любое время. Управляющая программа запускает по две задачи на каждую службу и предоставляет следующие подкоманды для управления службами: hup, int, kill, once, restart, service-list, start, status, stop, tail, и term.

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

Следующие команды отключены, когда для Chef Infra Server настроена внешняя база данных PostgreSQL: hup, int, kill, once, restart, start, stop, tail, и term.

hup

Подкоманда hup используется для отправки сигнала SIGHUP всем службам. Эту команду также можно запустить для отдельной службы, указав её имя в команде.

Данная подкоманда имеет следующий синтаксис:

chef-server-ctl hup SERVICE_NAME

где SERVICE_NAME представляет имя любой службы, которая отображается после запуска подкоманды service-list.

int

Подкоманда int используется для отправки сигнала SIGINT всем службам. Эту команду также можно запустить для отдельной службы, указав её имя в команде.

Данная подкоманда имеет следующий синтаксис:

chef-server-ctl int SERVICE_NAME

где SERVICE_NAME представляет имя любой службы, которая отображается после запуска подкоманды service-list.

kill

Подкоманда kill используется для отправки сигнала SIGKILL всем службам. Эту команду также можно запустить для отдельной службы, указав её имя в команде.

Данная подкоманда имеет следующий синтаксис:

chef-server-ctl kill SERVICE_NAME

где SERVICE_NAME представляет имя любой службы, которая отображается после запуска подкоманды service-list.

once

Настройщик Chef Infra Server настроен на перезапуск любой службы, которая завершается ошибкой, если служба не просила изменить своё состояние. Подкоманда once используется для указания настройщику не пытаться перезапускать службы, завершившиеся ошибкой.

Эта команда полезна при устранении неполадок в конфигурации, которые не позволяют службе запуститься. Выполните подкоманду once и затем подкоманду status для поиска служб в состоянии «остановлен» и/или для определения того, какие службы испытывают проблемы. Эту команду также можно запустить для отдельной службы, указав её имя в команде.

Данная подкоманда имеет следующий синтаксис:

chef-server-ctl once SERVICE_NAME

где SERVICE_NAME представляет имя любого сервиса, который отображается после выполнения подкоманды service-list.

перезапуск

Подкоманда restart используется для перезапуска всех сервисов, включённых в сервер Chef Infra, или для перезапуска отдельного сервиса, указав его имя в команде.

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

При запуске сервера Chef Infra в конфигурации высокой доступности перезапуск всех сервисов может вызвать сбой.

Эта подкоманда имеет следующий синтаксис:

chef-server-ctl restart SERVICE_NAME

где SERVICE_NAME представляет имя любого сервиса, который отображается после выполнения подкоманды service-list. Когда сервис успешно перезапускается, вывод должен быть похожим на:

ok: run: service_name: (pid 12345) 1s

список-сервисов

Подкоманда service-list используется для отображения списка всех доступных сервисов. Сервис, который включён, помечен звёздочкой (*).

Эта подкоманда имеет следующий синтаксис:

chef-server-ctl service-list

запуск

Подкоманда start используется для запуска всех сервисов, включённых в сервер Chef Infra. Эту команду также можно выполнить для отдельного сервиса, указав его имя в команде.

Эта подкоманда имеет следующий синтаксис:

chef-server-ctl start SERVICE_NAME

где SERVICE_NAME представляет имя любого сервиса, который отображается после выполнения подкоманды service-list. Когда сервис успешно запускается, вывод должен быть похожим на:

ok: run: service_name: (pid 12345) 1s

Supervisior сервера Chef Infra настроен на ожидание семь секунд для ответа сервиса на команду от supervisor. Если вы видите вывод, который ссылается на таймаут, это означает, что процесс получил сигнал, но сам процесс ещё не выполнил его. В общем случае, процессы с таймаутом не вызывают большой обеспокоенности, если они вообще не реагируют на сигналы. Если процесс не отвечает, используйте команду, такую как подкоманда kill для остановки процесса, исследуйте причину (при необходимости), а затем используйте подкоманду start для его повторного включения.

статус

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

chef-server-ctl status

и вернёт состояние всех сервисов. Статус можно получить для отдельных сервисов, указав имя сервиса как часть команды:

chef-server-ctl status SERVICE_NAME

где SERVICE_NAME представляет имя любого сервиса, который отображается после выполнения подкоманды service-list.

Когда запрашивается состояние сервиса, вывод должен быть похожим на:

run: service_name: (pid 12345) 12345s; run: log: (pid 1234) 67890s

где

  • run: — состояние сервиса (run: или down:)
  • service_name: — имя сервиса, для которого возвращается состояние
  • (pid 12345) — идентификатор процесса
  • 12345s — время активности сервиса в секундах

Например:

down: opscode-erchef: (pid 35546) 10s

По умолчанию, runit будет автоматически перезапускать сервисы, когда сервисы выходят из строя. Поэтому runit может отображать состояние сервиса как run:, даже если с этим сервисом есть проблема. При исследовании причин, по которым определённый сервис не работает должным образом, следует обратить внимание на сервисы с самым коротким временем активности. Например, список ниже указывает, что необходимо более подробно изучить opscode-erchef:

run: oc-id
run: opscode-chef: (pid 4327) 13671s; run: log: (pid 4326) 13671s
run: opscode-erchef: (pid 5383) 5s; run: log: (pid 4382) 13669s

Файлы логов

Типичная строка состояния сервиса, который выполняет любые сервисы переднего плана сервера Chef Infra, похожа на следующую:

run: name_of_service: (pid 1486) 7819s; run: log: (pid 1485) 7819s

где:

  • run описывает состояние, в котором supervisor пытается поддерживать процессы. Это состояние либо run, либо down. Если сервис находится в состоянии down, он должен быть остановлен
  • name_of_service — имя сервиса, например: opscode-erchef
  • (pid 1486) 7819s; — идентификатор процесса и время работы сервиса (в секундах)
  • run: log: (pid 1485) 7819s — процесс логов. Обычно процесс логов работает дольше, чем сам сервис, так как supervisor не нуждается в его перезапуске для соединения с контролируемым процессом

Если сервис не работает, строка состояния будет похожа на следующую:

down: opscode-erchef: 3s, normally up; run: log: (pid 1485) 8526s

где

  • down указывает, что сервис в состоянии остановки
  • 3s, normally up; указывает, что сервис обычно находится в рабочем состоянии и supervisor попытается перезапустить этот сервис после перезагрузки

остановка

Подкоманда stop используется для остановки всех включенных сервисов на сервере Chef Infra. Эту команду также можно выполнить для отдельного сервиса, указав его имя в команде.

Эта подкоманда имеет следующий синтаксис:

chef-server-ctl stop SERVICE_NAME

где SERVICE_NAME представляет имя любого сервиса, который отображается после выполнения подкоманды service-list. Когда сервис успешно останавливается, вывод должен быть похожим на:

ok: down: service_name: 0s, normally up

Например:

chef-server-ctl stop

вернет что-то подобное:

ok: down: nginx: 393s, normally up
ok: down: opscode-chef: 391s, normally up
ok: down: opscode-erchef: 391s, normally up
ok: down: opscode-solr4: 389s, normally up
ok: down: postgresql: 388s, normally up
ok: down: redis_lb: 387s, normally up

след

Подкоманда tail используется для слежения за всеми логами сервера Chef Infra для всех сервисов. Эту команду также можно выполнить для отдельного сервиса, указав его имя в команде.

Эта подкоманда имеет следующий синтаксис:

chef-server-ctl tail SERVICE_NAME

где SERVICE_NAME представляет имя любого сервиса, который отображается после выполнения подкоманды service-list.

терминал

Подкоманда term используется для отправки SIGTERM всем сервисам. Эту команду также можно выполнить для отдельного сервиса, указав его имя в команде.

Эта подкоманда имеет следующий синтаксис:

chef-server-ctl term SERVICE_NAME

где SERVICE_NAME представляет имя любого сервиса, который отображается после выполнения подкоманды service-list.

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

Spec-Zone.ru

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