Spec-Zone.ru › Chef 18

Настройка рабочей станции Chef

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

Это руководство проведет вас через четыре этапа настройки рабочей станции Chef на вашем компьютере.

  • Настройка среды Ruby
  • Настройка репозитория chef для хранения ваших кулинарных книг
  • Настройка учетных данных Chef
  • Проверка связи клиент-сервер

Предварительные требования

  1. Загрузка и установка рабочей станции Chef
  2. Запущенный экземпляр сервера Chef Infra или хостинг-сервера Chef.
  3. Если вы не используете Chef Manage или хостинг-сервер, файл CLIENT.PEM, предоставленный вашим администратором Chef.

Настройка среды Ruby

Для многих пользователей Ruby используется в основном для разработки политики Chef (например, кулинарных книг, файлов политики и профилей Chef InSpec). Если это относится и к вам, то мы рекомендуем использовать Ruby рабочей станции Chef в качестве вашего стандартного системного Ruby. Если вы используете Ruby для разработки программного обеспечения, пропустите этот шаг.

Примечание

Данные инструкции предназначены для пользователей macOS и Linux. В Windows рабочая станция Chef включает ярлык рабочего стола для командной строки PowerShell, уже настроенной для использования.
  1. Определите вашу стандартную оболочку, выполнив:

    echo $SHELL
    

    Это даст вам путь к вашей стандартной оболочке, например /bin/zsh для оболочки Zsh.

  2. Добавьте контент инициализации рабочей станции в соответствующий файл rc оболочки:

    Для оболочек Bash выполните:

    echo 'eval "$(chef shell-init bash)"' >> ~/.bashrc
    

    Для оболочек Zsh выполните:

    echo 'eval "$(chef shell-init zsh)"' >> ~/.zshrc
    

    Для оболочек Fish выполните:

    echo 'eval (chef shell-init fish)' >> ~/.config/fish/config.fish
    
  3. Откройте новое окно оболочки и выполните:

    which ruby
    

    Команда должна вернуть /opt/chef-workstation/embedded/bin/ruby.

Настройка вашего репозитория Chef

Если вы настраиваете Chef впервые в вашей организации, вам понадобится репозиторий Chef Infra для сохранения ваших кулинарных книг и другой работы.

Репозиторий chef — это каталог на вашей рабочей станции, который хранит все необходимое для определения вашей инфраструктуры с помощью Chef Infra:

  • Кулинарные книги (включая рецепты, атрибуты, пользовательские ресурсы, библиотеки и шаблоны)
  • Системы хранения данных
  • Файлы политики

Каталог chef-repo должен быть синхронизирован с системой контроля версий, например, git. Все данные в chef-repo должны обрабатываться как исходный код.

Вы будете использовать команды chef и knife для загрузки данных в сервер Chef Infra из каталога chef-repo. После загрузки Chef Infra Client использует эти данные для управления узлами, зарегистрированными в сервере Chef Infra, и для обеспечения применения правильных кулинарных книг, файлов политики и настроек к правильным узлам в правильном порядке.

Используйте команду chef generate repo, чтобы создать свой репозиторий Chef Infra. Например, чтобы создать репозиторий под названием chef-repo, выполните:

chef generate repo chef-repo

Настройка учетных данных Chef

При первом запуске приложения Chef Workstation он создает каталог .chef в вашем пользовательском каталоге. Каталог .chef — это место, где вы будете хранить конфигурацию Chef Workstation и ключи клиента.

Если вы настраиваете Chef Workstation как администратор сервера Chef Infra, вам нужно будет управлять пользователями с помощью CLI сервера Chef Infra или пользовательского интерфейса управления. При создании нового пользователя будет сгенерирован уникальный ключ клиента RSA, который вам необходимо безопасно передать этому пользователю.

Если вы настраиваете Chef Workstation как пользователь Chef, вам потребуется настроить свой уникальный закрытый ключ клиента, соответствующий клиенту на сервере Chef Infra, созданном для вас администратором сервера. Закрытый ключ клиента — это закрытый ключ RSA в формате .pem.

Настройка файла учетных данных пользователя

Ваш каталог .chef содержит файл credentials, используемый для связи с сервером Chef Infra. Вы можете сгенерировать этот файл, выполнив knife configure и следуя инструкциям.

Команда knife configure требует следующих значений:

  • Chef Server URL: полная ссылка на ваш сервер Chef Infra, включая организацию
  • Client Name: имя клиента, созданное для вас администратором сервера

Ваш администратор Chef должен предоставить эту информацию. Для хостинг-сервера Chef или Chef Manage вы можете найти эту информацию в файле Starter Kit. Скачайте файл на сайте Manage, перейдя на вкладку «Администрирование» и выбрав «Starter Kit». (Manage > Администрирование > Starter Kit > Скачать Starter Kit)

Найдите файл .chef/config.rb в Starter Kit. Он должен выглядеть так:

current_dir = File.dirname(__FILE__)
log_level                :info
log_location             STDOUT
node_name                "hshefu"
client_key               "#{current_dir}/hshefu.pem"
chef_server_url          "https://api.chef.io/organizations/4thcafe-web-team"
cookbook_path            ["#{current_dir}/../cookbooks"]

Используйте значения chef_server_url и node_name из этого файла при выполнении knife configure.

Настройка вашего закрытого ключа клиента

Вся связь между Chef Workstation и сервером Chef Infra аутентифицируется с помощью пары открытого и закрытого ключей RSA. Эта пара генерируется на сервере Chef Infra, а закрытый ключ должен быть скопирован на вашу локальную установку Chef Workstation для корректной работы связи.

Шаги по загрузке или генерации этих файлов зависят от того, как вы взаимодействуете с сервером Chef Infra. Выберите вариант, наиболее соответствующий вашему взаимодействию с сервером:

  • Сервер Chef Infra / Automate
  • Hosted Chef / Manage

Ваш администратор Chef предоставит вам файл client.pem. Скопируйте этот файл в каталог ~/.chef.

На системах macOS и Linux это выглядит примерно так:

cp ~/Downloads/MY_NAME.pem ~/.chef/

На системах Windows это будет выглядеть примерно так:

Copy-Item -Path C:\Users\MY_NAME\Downloads\MY_NAME.pem -Destination C:\Users\MY_NAME\.chef\

Файл ключа клиента находится в Starter Kit в .chef/MY_NAME.pem. Скопируйте файл .pem в каталог ~/.chef.

На системах macOS и Linux это выглядит примерно так:

cp ~/Downloads/chef-repo/.chef/MY_NAME.pem ~/.chef/

На системах Windows это будет выглядеть примерно так:

Copy-Item -Path C:\Users\MY_NAME\Downloads\chef-repo\.chef\MY_NAME.pem -Destination C:\Users\MY_NAME\.chef\

Проверка связи клиент-сервер

Чтобы проверить, что Chef Workstation может подключиться к серверу Chef Infra:

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

knife client list

Результат должен быть похожим на:

chef_machine
registered_node

Получение самоподписанных сертификатов

Если сервер Chef Infra, с которым вы настроены работать, имеет самоподписанный сертификат, вы будете использовать подкоманду knife ssl fetch для загрузки сертификата TLS/SSL сервера Chef Infra и сохранения его в .chef/trusted_certs.

Chef Infra проверяет безопасность всех запросов, отправленных на сервер из таких инструментов, как knife и Chef Infra Client. Сертификат, сгенерированный во время установки сервера Chef Infra, самоподписанный, то есть у него нет сертификата авторитетной подписи (CA). Кроме того, этот сертификат должен быть загружен на любой компьютер, с которого knife и/или Chef Infra Client будут отправлять запросы на сервер Chef Infra.

Используйте подкоманду knife ssl fetch для загрузки сертификата SSL с сервера Chef Infra:

knife ssl fetch

Дополнительную информацию о том, как knife и Chef Infra Client используют сертификаты SSL, сгенерированные сервером Chef Infra, см. в разделе Сертификаты SSL.

© 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/workstation/getting_started/

Spec-Zone.ru

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