Шеф — повар — роли и окружающая среда

#chef-infra

#шеф-повар-ниже

Вопрос:

Начинаю с шеф-повара и испытываю трудности с запуском настройки ролей / среды. Не могу понять, чего мне не хватает.

      Cookbooks: nginx_webserver
          recipes: default.rb, config_test, config_dev

     Roles: 
          webserver
     Environment:
          dev, qa 
  

Вот мой файл роли:

      chef_type:           role
     default_attributes:
     description:         Nginx webserver
     env_run_lists:
         dev: recipe[nginx_webserver::config_dev]
         qa:  recipe[nginx_webserver::config_qa]
         json_class:          Chef::Role
         name:                webserver
         override_attributes:
         run_list:            recipe[nginx_webserver]
  

Вот мой список приложений

         chef_type:           environment
        cookbook_versions:
           nginx_webserver: = 0.1.2
        default_attributes:
        description:         development environment
        json_class:          Chef::Environment
        name:                dev
        override_attributes:
              nginx:
        site_dir: dev.mysite.com # This value changes between envs
  

Вот мой node_list:

         {
          "name": "chef-node1",
          "chef_environment": "dev",
          "normal": {
            "tags": [

                 ]
          },
          "policy_name": null,
          "policy_group": null,
          "run_list": [
            "role[webserver]"
           ]

         }
  

Мой вывод / ошибка шеф-клиента:

         54.149.131.42 Recipe Compile Error
        54.149.131.42   

        ====================================================================
        54.149.131.42
        54.149.131.42 Chef::Exceptions::RecipeNotFound
        54.149.131.42 --------------------------------
        54.149.131.42 could not find recipe config_dev for cookbook    
        nginx_webserver
        54.149.131.42
  

Я не уверен, как разместить мои рецепты config_dev и config_qa на сервере chef. Я включил оба в свой рецепт default.rb, но я все еще продолжаю получать эту ошибку. Моя цель — вызвать confg_dev recipe, когда это среда разработки, и config_qa, когда это qa. Пожалуйста, любые указания

Редактировать: 1

Вывод из команды «Показать кулинарную книгу»

имя: nginx_webserver-0.1.2 поставщики: рецепты: контрольная сумма: 23978bdef70ea9a852e27d9489acdda1 имя: default.rb путь: рецепты/default.rb специфика: url по умолчанию: https://s3-external-1.amazonaws.com:443/opscode-platform-production-data/organization-0ffe55465085b0ed5ec6cc4dc383888e/checksum-23978bdef70ea9a852e27d9489acdda1?AWSAccessKeyId=AKIAIQKPG2CTSTRVDO4Qamp;Expires=1477168767amp;Signature=8EUWtT1RJq1S6/N0nF00XV879fg= ресурсы: root_files: контрольная сумма: d5324dd6a872900fd6ee12c9628d9595 имя: README.md путь: README.md специфика: URL по умолчанию: https://s3-external-1.amazonaws.com:443/opscode-platform-production-data/organization-0ffe55465085b0ed5ec6cc4dc383888e/checksum-d5324dd6a872900fd6ee12c9628d9595?AWSAccessKeyId=AKIAIQKPG2CTSTRVDO4Qamp;Expires=1477168767amp;Signature=KuzF07t3/Xnw3BA30PkcNbsnQf0=

контрольная сумма: d14d45c195dccbfe56b358b71d2a6a6b имя: chefignore путь: chefignore специфика: url по умолчанию: https://s3-external-1.amazonaws.com:443/opscode-platform-production-data/organization-0ffe55465085b0ed5ec6cc4dc383888e/checksum-d14d45c195dccbfe56b358b71d2a6a6b?AWSAccessKeyId=AKIAIQKPG2CTSTRVDO4Qamp;Expires=1477168767amp;Signature=8nlPR7LBWOQbn6C7CfCaNTieaqM=

контрольная сумма: 6528f8499102744b7616913a6cb225de имя: Berksfile путь: Специфика Berksfile: url по умолчанию: https://s3-external-1.amazonaws.com:443/opscode-platform-production-data/organization-0ffe55465085b0ed5ec6cc4dc383888e/checksum-6528f8499102744b7616913a6cb225de?AWSAccessKeyId=AKIAIQKPG2CTSTRVDO4Qamp;Истекает =1477168767amp;Подпись=0KRkWnrxasYQFhKaM0Kdqh79ltk=


РЕДАКТИРОВАТЬ — 2:

Кулинарная книга/default.rb

      include_recipe 'selinux::permissive'
     include_recipe 'nginx_webserver::config_dev'
     include_recipe 'nginx_webserver::config_qa'
  

Обновлены метаданные.rb до = 0.1.3

  knife cookbook upload nginx_webserver
 Uploading nginx_webserver [0.1.3]
 Uploaded 1 cookbook.
  

Получаю ту же ошибку. Кроме того, действительно ли мне нужно включать мои config_dev и config_qa в мой файл default.rb? Разве шеф-повар не должен автоматически подбирать эти рецепты на основе env_run_lists?

Комментарии:

1. Что knife cookbook show nginx_webserver 0.1.2 отображается для вас?

2. показывает много материала. В основном о моих двух рецептах — selinux и nginx. Есть ли что-то конкретное, что вы ищете

3. в идеале весь вывод, чтобы мы все здесь могли понять, что здесь происходит, минимально, если config_dev рецепт виден в этой версии

4. Я добавил некоторую часть. Но он не показывает никакой информации о моем рецепте config_dev

5. пожалуйста, добавьте четыре пробела слева от каждой строки кода, чтобы упростить форматирование кода

Ответ №1:

Ваша среда использует версию, в которой нет рецептов (учитывая, что вы загрузили их в 0.1.3 согласно вашему журналу):

     chef_type:           environment
    cookbook_versions:
       nginx_webserver: = 0.1.2
  

Пожалуйста, используйте knife environment edit , поместите 0.1.3 туда и попробуйте снова объединить узел.

Комментарии:

1. Я сделал, но все те же результаты. Нужно ли включать рецепты, отличные от стандартных, в рецепты по умолчанию. Еще одна вещь, которую я заметил, это то, что версия cookbook, показанная в Chef-server (UI — Attributes), все еще старая. Я загрузил cookbook, а также загрузил berks. Кроме того, пользовательский интерфейс показывает правильную среду и связанный рецепт.

2. @f-z-N пожалуйста, приложите скриншоты этого