chef-server-ctl (исполняемый файл)
Сервер 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.
Синтаксис
У этой подкоманды следующий синтаксис:
chef-server-ctl backup
restore
Подкоманда restore используется для восстановления данных сервера Chef Infra из резервной копии, созданной подкомандой backup. Эта подкоманда также может быть использована для добавления данных сервера Chef Infra на новый сервер. Эта подкоманда:
- Требует установку rsync на сервере Chef Infra перед выполнением команды
- Требует
chef-server-ctl reconfigureперед выполнением команды - Не должна использоваться в конфигурации сервера Chef Infra с внешней базой данных PostgreSQL; используйте knife ec backup вместо этого
Параметры
У этой подкоманды есть следующие параметры:
-
-c,--cleanse Используется для удаления всех существующих данных на сервере Chef Infra; они будут заменены данными из резервной копии.
-
-d DIRECTORY,--staging-dir DIRECTORY Используется для указания пути к пустому каталогу, который будет использован во время процесса восстановления. Этот каталог должен иметь достаточно места на диске, чтобы разместить все данные из резервной копии.
Синтаксис
У этой подкоманды следующий синтаксис:
chef-server-ctl restore PATH_TO_BACKUP (options)
Примеры
chef-server-ctl restore /path/to/tar/archive.tar.gz
cleanse
Подкоманда cleanse используется для сброса сервера Chef Infra до состояния, в котором он был до первого выполнения подкоманды reconfigure. Эта команда удалит все данные, конфигурационные файлы и логи. Программное обеспечение, установленное на диск при установке пакета, останется; запустите chef-server-ctl reconfigure, чтобы воссоздать стандартные данные и конфигурационные файлы.
Параметры
У этой подкоманды есть следующие параметры:
--with-externalИспользуется для указания того, что данные сервера Chef Infra во внешней базе данных PostgreSQL должны быть удалены.
Синтаксис
У этой подкоманды следующий синтаксис:
chef-server-ctl cleanse
gather-logs
Подкоманда gather-logs используется для сбора логов сервера Chef Infra в архив tar, содержащий все важные логи и системную информацию.
У этой подкоманды следующий синтаксис:
chef-server-ctl gather-logs
help
Подкоманда help используется для вывода списка всех доступных команд chef-server-ctl.
У этой подкоманды следующий синтаксис:
chef-server-ctl help
install
Подкоманда install используется для установки премиум-функций сервера Chef Infra: консоль управления Chef, отчеты о работе клиента Chef Infra, конфигурации высокой доступности, задания Chef Push и репликация сервера 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://downloads.chef.io. Для систем, не находящихся за брандмауэром (и имеющих доступ к https://downloads.chef.io), эти пакеты можно установить, как описано ниже.
-
Установка плагинов
Установите Chef Manage с помощью:
sudo chef-server-ctl install chef-manageУстановите Push Jobs с помощью:
sudo chef-server-ctl install opscode-push-jobs-server-ctl -
Переконфигурация сервера
sudo chef-server-ctl reconfigure -
Переконфигурация плагинов
Переконфигурируйте Chef Manage с помощью:
sudo chef-manage-ctl reconfigureПереконфигурируйте Push Jobs с помощью:
sudo opscode-push-jobs-server reconfigure
Наконец, примите Лицензию Chef:
sudo chef-manage-ctl reconfigure --accept-license
Использование локальных пакетов
Используйте подкоманду install с опцией --path для установки плагинов Chef Manage (chef-manage) и Push Jobs (opscode-push-jobs-server) для Chef Infra Server.
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
Используйте подкоманду 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
Используйте подкоманду 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
Используйте подкоманду delete-client-key для удаления ключа клиента.
Синтаксис
Эта подкоманда имеет следующий синтаксис:
chef-server-ctl delete-client-key ORG_NAME CLIENT_NAME KEY_NAME
Опции
Эта подкоманда имеет следующие аргументы:
ORG_NAMEКороткое имя организации, к которой принадлежит клиент.
CLIENT_NAMEИмя клиента.
KEY_NAMEУникальное имя, которое будет присвоено ключу, который требуется удалить.
delete-user-key
Используйте подкоманду delete-user-key для удаления ключа пользователя.
Синтаксис
Эта подкоманда имеет следующий синтаксис:
chef-server-ctl delete-user-key USER_NAME KEY_NAME
Предупреждение
Опции
Эта подкоманда имеет следующие аргументы:
USER_NAMEИмя пользователя.
KEY_NAMEУникальное имя, которое будет присвоено ключу, который требуется удалить.
list-client-keys
Используйте подкоманду list-client-keys для вывода ключей клиента.
Синтаксис
Эта подкоманда имеет следующий синтаксис:
chef-server-ctl list-client-keys ORG_NAME CLIENT_NAME [--verbose]
Предупреждение
Параметры
Эта подкоманда имеет следующие параметры:
CLIENT_NAMEИмя клиента.
ORG_NAMEКороткое имя организации, к которой принадлежит клиент.
--verboseИспользуйте для отображения полных строк открытых ключей в выводе команды.
list-user-keys
Используйте подкоманду 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
Подкоманда set-secret позволяет хранить общие секреты и учетные данные сервисов. Храниться могут только секреты, известные серверу Chef Infra.
Новое в Chef Server 12.14
Синтаксис
Эта подкоманда имеет следующий синтаксис:
chef-server-ctl set-secret GROUP NAME
Существуют различные способы передачи секрета в эту команду:
-
в качестве третьего аргумента:
chef-server-ctl set-secret ldap bind_password secretpassword -
через переменную среды:
export LDAP.BIND_PASSWORD="secretpassword" chef-server-ctl set-secret ldap bind_password -
через интерактивный запрос:
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 Server 12.16.2.
remove-secret
Подкоманда remove-secret позволяет удалить сохранённый общий секрет и учетные данные сервиса.
Новое в Chef Server 12.14
Синтаксис
Эта подкоманда имеет следующий синтаксис:
chef-server-ctl remove-secret GROUP NAME
Пример
chef-server-ctl remove-secret ldap bind_password
show-secret
Подкоманда show-secret позволяет просмотреть сохранённый общий секрет и учетные данные сервиса.
Новое в Chef Server 12.14
Синтаксис
Эта подкоманда имеет следующий синтаксис:
chef-server-ctl show-secret GROUP NAME
set-db-superuser-password
Подкоманда set-db-superuser-password позволяет сохранить пароль суперпользователя базы данных.
Новое в Chef Server 12.14
Синтаксис
Эта подкоманда имеет следующий синтаксис:
chef-server-ctl set-db-superuser-password
Аналогично set-secret, пароль суперпользователя также можно указать через переменную среды DB_PASSWORD.
set-actions-password
Подкоманда set-actions-password позволяет сохранить пароль RabbitMQ Actions.
Новое в Chef Server 12.14
Синтаксис
Эта подкоманда имеет следующий синтаксис:
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 12.14
Синтаксис
Эта подкоманда имеет следующий синтаксис:
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 Server из работы и требует полной смены учётных данных службы перед повторным запуском серверов Chef в вашем кластере. Запустите rotate-shared-secrets для создания нового общего секрета, соли и генерации новых учётных данных службы. Затем скопируйте файл секретов на каждый сервер Chef Infra Server и запустите sudo chef-server-ctl reconfigure на каждом сервере, чтобы завершить процесс смены.
Примечание
Новое в Chef Server 12.7
Синтаксис
Эта подкоманда имеет следующий синтаксис:
chef-server-ctl require-credential-rotation (options)
Параметры
Эта подкоманда имеет следующие параметры:
-y, --yesПропустить запрос в терминале и согласиться на отключение сервера Chef Infra Server и необходимость смены учётных данных.
rotate-all-credentials
Подкоманда rotate-all-credentials генерирует новые значения учётных данных для всех учётных данных службы, увеличивая номер версии учётных данных и создавая новое значение хеша. Вы можете выбрать, копировать ли обновлённый файл секретов на каждый узел в кластере и переконфигурировать их, или запустить эту подкоманду на всех узлах.
Новое в Chef Server 12.7
Синтаксис
Эта подкоманда имеет следующий синтаксис:
chef-server-ctl rotate-all-credentials
rotate-credentials
Подкоманда rotate-credentials генерирует новые значения учётных данных для всех учётных данных заданной службы, увеличивая значение и создавая новое значение хеша. Вы можете выбрать, копировать ли обновлённый файл секретов на каждый узел в кластере и переконфигурировать их, или запустить эту подкоманду для конкретной службы на всех узлах.
Новое в Chef Server 12.7
Синтаксис
Эта подкоманда имеет следующий синтаксис:
chef-server-ctl rotate-credentials SERVICE_NAME
rotate-shared-secrets
Подкоманда rotate-shared-secrets создаёт новый общий секрет и соль, а также генерирует новые учётные данные службы. Она также сбрасывает номер credential_version для служб до 0. После запуска этой подкоманды новый общий секрет был создан, поэтому вы должны скопировать файл секретов на каждый сервер Chef Infra Server и запустить sudo chef-server-ctl reconfigure на них, чтобы завершить процесс смены.
Новое в Chef Server 12.7
Синтаксис
Эта подкоманда имеет следующий синтаксис:
chef-server-ctl rotate-shared-secrets
show-service-credentials
Подкоманда show-service-credentials отображает все учётные данные службы для служб, работающих на локальном сервере Chef Infra Server.
Новое в Chef Server 12.7
Синтаксис
Эта подкоманда имеет следующий синтаксис:
chef-server-ctl show-service-credentials
cleanup-bifrost
Подкоманда cleanup-bifrost удаляет неиспользуемые объекты авторизации из базы данных авторизации (называемой bifrost). Эти неиспользуемые объекты могут накапливаться на серверах Chef с длительным сроком работы в результате неудачных запросов на создание объектов. Для большинства пользователей неиспользуемые объекты авторизации не существенно влияют на производительность сервера Chef Infra Server; однако в определённых ситуациях их удаление может быть полезным. Эта команда предназначена в основном для использования службой поддержки Chef.
Новое в Chef Server 12.16.9
Синтаксис
Эта подкоманда имеет следующий синтаксис:
chef-server-ctl cleanup-bifrost OPTIONS
Параметры
Эта подкоманда имеет следующие параметры:
--estimate-onlyПредоставляет оценку количества неиспользуемых объектов, которые будут удалены, без удаления чего-либо.
--wait-time SECONDSКоличество секунд ожидания завершения запросов в процессе. Уменьшайте это значение только в том случае, если вы запускаете команду, когда сервер Chef Infra Server не принимает запросы.
--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
- Автоматически обрабатывает аутентификацию
Синтаксис
Эта подкоманда имеет следующий синтаксис:
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 используется для перезагрузки данных сервера Chef Infra Server из PostgreSQL в Elasticsearch.
Эта подкоманда имеет следующий синтаксис:
chef-server-ctl reindex
Параметры
Эта подкоманда имеет следующие параметры:
-
-a,--all-orgs Используется для переиндексации всех организаций на сервере Chef Infra Server. Этот параметр переопределит любую указанную организацию в рамках команды, т.е.
chef-server-ctl reindex ORG_NAME -aпереиндексирует все организации, а не только указанную.-
-d,--disable-api Используется для отключения API сервера Chef Infra Server, чтобы предотвратить записи во время переиндексации.
-
-t,--with-timing Используется для вывода временной информации о процессах переиндексации.
-
-w,--wait Используется для ожидания очистки очереди переиндексации перед завершением. Этот параметр работает только при запуске на автономном сервере Chef Infra Server или на первичном бэкенд-сервере Chef в рамках устаревшего уровня.
Администраторы сервера
Группа server-admins — это глобальная группа, которая предоставляет своим членам разрешения на создание, чтение, обновление и удаление учетных записей пользователей, за исключением суперпользователей. Группа server-admins полезна для пользователей, ответственных за ежедневное администрирование сервера Chef Infra Server, особенно для управления пользователями через подкоманду knife user. Перед добавлением членов в группу server-admins у них должна быть учетная запись пользователя на сервере Chef Infra Server.
Сценарий
На сервере Chef Infra Server существуют следующие учетные записи пользователей: pivotal (суперпользователь), alice, bob, carol и dan. Выполните следующую команду для просмотра списка пользователей на сервере Chef Infra Server:
chef-server-ctl user-list
и она возвращает тот же список пользователей:
pivotal
alice
bob
carol
dan
Алиса — член команды IT, чьи обязанности включают ежедневное администрирование сервера Chef Infra Server, в частности, управление учетными записями пользователей на сервере Chef Infra Server, которые используются остальной организацией. Из рабочей станции Алиса выполняет следующую команду:
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. Давайте добавим Алису в группу server-admins.
chef-server-ctl grant-server-admin-permissions alice
и она возвращает следующий ответ:
User alice was added to server-admins.
Теперь Алиса может создавать, читать, обновлять и удалять учетные записи пользователей на сервере Chef Infra Server, даже для организаций, членами которых она не является. Из рабочей станции Алиса повторно выполняет следующую команду:
knife user list -c ~/.chef/alice.rb
которая теперь возвращает:
pivotal
alice
bob
carol
dan
Теперь Алиса является администратором сервера и может использовать следующие подкоманды knife для управления пользователями на сервере Chef Infra Server:
knife user-createknife user-deleteknife user-editknife user-listknife 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-permissionschef-server-ctl list-server-adminschef-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 Server 11. Значение по умолчанию: временная директория.
-
-e DIRECTORY,--chef12-data-dir DIRECTORY Директория, в которой расположены данные Chef 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-клиента
admin.pemChef Server 11. Этот ключ используется для загрузки данных Chef 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 для Chef Server версии 11. Значение по умолчанию:
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».
Новая функция в Chef Server 12.9.
Редактирование пользователя
Подкоманда 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 используется для просмотра списка пользователей.
Синтаксис
Эта подкоманда имеет следующий синтаксис:
chef-server-ctl user-list (options)
Параметры
Эта подкоманда имеет следующие параметры:
-
-w,--with-uri Показать соответствующие URI.
Просмотр пользователя
Подкоманда 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.
Предупреждение
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
Подкоманда restart используется для перезапуска всех служб, включённых в Chef Infra Server, или для перезапуска отдельной службы, указав её имя в команде.
Предупреждение
При запуске Chef Infra Server в конфигурации высокой доступности перезапуск всех служб может вызвать сбой переключения.
У этого подкоманды следующий синтаксис:
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 Server. Эту команду также можно выполнить для отдельной службы, указав имя службы в команде.
У этого подкоманды следующий синтаксис:
chef-server-ctl start SERVICE_NAME
где SERVICE_NAME представляет имя любой службы, которая перечислена после выполнения подкоманды service-list. Когда служба успешно запускается, вывод должен быть похожим на:
ok: run: service_name: (pid 12345) 1s
Супервизор для Chef Infra Server настроен на ожидание семь секунд, пока служба ответит на команду от супервизора. Если вы видите вывод, который ссылается на таймаут, это означает, что процесс получил сигнал, но ещё не выполнил его. В общем случае, процессы, которые истекли по таймауту, не являются серьёзной проблемой, если они вообще не отвечают на сигналы. Если процесс не отвечает, используйте команду, такую как подкоманда kill, чтобы остановить процесс, исследовать причину (при необходимости), а затем используйте подкоманду start, чтобы снова включить её.
Статус
Подкоманда status используется для отображения статуса всех служб, доступных для Chef Infra Server. Результаты будут различаться в зависимости от конфигурации конкретного сервера. У этой подкоманды следующий синтаксис:
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 Server, похожа на следующую:
run: name_of_service: (pid 1486) 7819s; run: log: (pid 1485) 7819s
где:
-
runописывает состояние, в котором супервизор пытается поддерживать процессы. Это состояние либоrun, либоdown. Если служба находится в состоянииdown, её следует остановить -
name_of_service— имя службы, например:opscode-erchef -
(pid 1486) 7819s;— идентификатор процесса, за которым следует количество времени (в секундах), в течение которого служба работает -
run: log: (pid 1485) 7819s— процесс журнала. Обычно процесс журнала работает дольше, чем служба; это потому, что супервизору не нужно перезапускать процесс журнала, чтобы подключиться к контролируемому процессу
Если служба остановлена, строка статуса будет похожа на следующую:
down: opscode-erchef: 3s, normally up; run: log: (pid 1485) 8526s
где
-
downуказывает, что служба в состоянии остановки -
3s, normally up;указывает, что служба обычно находится в состоянии выполнения, и что супервизор попытается перезапустить её после перезагрузки
Остановка
Подкоманда stop используется для остановки всех включённых служб на Chef Infra Server. Эту команду также можно выполнить для отдельной службы, указав имя службы в команде.
У этой подкоманды следующий синтаксис:
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
Подкоманда tail используется для слежения за всеми логами сервера Chef Infra для всех сервисов. Эту команду также можно выполнить для отдельного сервиса, указав имя сервиса в команде.
Эта подкоманда имеет следующий синтаксис:
chef-server-ctl tail SERVICE_NAME
где SERVICE_NAME представляет имя любого сервиса, который перечислен после выполнения подкоманды service-list.
term
Подкоманда 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/ctl_chef_server/