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.
--pg-options-
Используется для указания и передачи дополнительных параметров PostgreSQL во время резервного копирования. Для получения дополнительной информации см. документацию PostgreSQL.
-
-c,--config-only -
Резервное копирование конфигурации сервера Chef Infra без резервного копирования данных.
-
-t,--timeout -
Устанавливает максимальное время в секундах ожидания команд оболочки (по умолчанию 600). Этот параметр следует установить значением больше 600 для резервных копий, занимающих более 10 минут.
-
-h,--help -
Отобразить сообщение справки.
Синтаксис
Эта подкоманда имеет следующий синтаксис:
chef-server-ctl backup
восстановление
Подкоманда restore используется для восстановления данных сервера Chef Infra из резервной копии, созданной подкомандой backup. Эта подкоманда также может быть использована для добавления данных сервера Chef Infra на вновь установленный сервер. Не запускайте эту команду в конфигурации сервера Chef Infra, использующей внешнюю базу данных PostgreSQL; используйте knife ec backup вместо этого. Эта подкоманда:
- Требует установку rsync на сервере Chef Infra перед выполнением команды
- Требует
chef-server-ctl reconfigureперед выполнением команды
В идеале, сервер восстановления будет иметь тот же FQDN, что и сервер, с которого вы создавали резервную копию. Если сервер восстановления имеет другой FQDN, то:
- Замените FQDN в
/etc/opscode/chef-server.rb. - Замените FQDN в
/etc/opscode/chef-server-running.json. - Удалите старый сертификат SSL, ключ и файл
-ssl.confиз/var/opt/opscode/nginx/ca. - Если вы используете сертификат, выданный центром сертификации, вместо самозаверенного сертификата, скопируйте сертификат и ключ CA в
/var/opt/opscode/nginx/ca. - Обновите файл
/etc/chef/client.rbна каждом клиенте, чтобы указать новый FQDN сервера. - Запустите
chef-server-ctl reconfigure. - Запустите ``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 больше не работает в версиях 12.5 (и более ранних) сервера Chef Infra из-за изменения способа загрузки пакетов с 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), эти пакеты можно установить, как описано ниже.
-
Установка дополнений
Установите Chef Manage с:
sudo chef-server-ctl install chef-manage -
Переконфигурация сервера
sudo chef-server-ctl reconfigure -
Переконфигурация дополнений
Переконфигурируйте 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
Существуют различные способы передачи секрета этой команде:
-
в качестве третьего аргумента:
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 Infra 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.
Установить пароль Actions
Подкоманда set-actions-password позволяет сохранить пароль RabbitMQ Actions.
Синтаксис
Эта подкоманда имеет следующий синтаксис:
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 на каждом сервере для завершения процесса вращения.
Примечание
Синтаксис
Эта подкоманда имеет следующий синтаксис:
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 используется для создания организации. (Ключ проверки для организации возвращается 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
Примечание
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
Элис является членом команды IT, чьи обязанности включают ежедневное администрирование сервера 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-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 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
admin.pem. Это ключ, используемый для загрузки данных 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 для Chef Infra 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 -
Удаляет пользователя, который находится в одной или нескольких группах «администратор», если этот пользователь не является единственным членом группы «администратор».
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.
Предупреждение
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/ctl_chef_server/