Я использую Jenkins на Windows Server 2012 R2. Я хотел бы запустить работу, которая строит, и при принудительной рекламе он должен сказать удаленному серверу шеф-повара, что рецепт был изменен или обновлен, а затем запустите chef-client на удаленных узлах.Как настроить Jenkins для использования Knife в сценарии Powershell
Я установил Chef подключаемого модуля идентификации, продвигаемых-строит плагин, плагин MSBuild, TFS-4.0.0 плагин и Deploy плагин
До сих пор строительные работы и повышений работы. Я настроил на принудительное продвижение, чтобы запустить два сценария Powershell. Первый работает отлично, это просто базовое управление данными и именование файлов.
Но второй говорит, что это был провал, но продвижение по-прежнему проходит, и нет никаких доказательств, которые будут работать вообще.
Я явно использовал путь к ножу, потому что, когда я не использую его, Дженкинс дает ошибку:
WARNING: No knife configuration file found
ERROR: Could not find cookbook MyFirstCookingLesson in your cookbook path, skipping it
ERROR: ArgumentError: Cannot sign the request without a client name, check that :node_name is assigned
Если добавить флаг -V и запустить скрипт щелкнув правой кнопкой мыши его и запуская его с Powershell в Дженкинс рабочем пространстве Я получаю эту информацию:
ps1 файл содержит (назовём его 'Шеф-client.ps1'):
C:\opscode\chefdk\bin\knife cookbook upload MyFirstCookingLesson
C:\opscode\chefdk\bin\knife job start 'chef-client' WIN-COMPNAME
Шеф-client.ps1 вызывается с помощью Execute Batch для Windows Command:
cd C:\chef-source\cookbooks
PowerShell.exe -File C:\chef-source\cookbooks\Chef-client.ps1
Я также установить личность Chef в полномочиях Дженкинс следующим образом:
Identity name: geoff
user.pem key : <a whole bunch of secret stuffs and gibberish>
knife.rb :
log_level :info
log_location STDOUT
node_name 'geoff'
client_key 'C:/Users/user123/.chef/geoff.pem'
validation_client_name 'geoff.pem'
validation_key 'C:/Users/user123/.chef/secretName-validator.pem'
chef_server_url 'https://secretLocation.268lab.local/organizations/secretName/'
syntax_check_cache_path 'C:/Users/user123/.chef/syntax_check_cache'
cookbook_path [ 'c:/chef-source/cookbooks/' ]
http_proxy 'http://22.151.32.85:3128'
https_proxy 'http://22.151.32.85:3128'
no_proxy 'secretLocation.268lab.local'
knife[:editor] = '"C:\Program Files (x86)\Notepad++\notepad++.exe"';
Так Я также обнаружил, что Дженкинс, похоже, работает в своем собственном Userprofile, который у меня есть чувство, может отбросить все.
Я прочитал так много настроенных блогов, но ничего, что действительно подсказывает мне, как установить это явно. В блогах либо просто предполагается, что это уже сделано, либо используется другой инструмент.
Я также разместил копии папки .chef как в рабочем пространстве Jenkins, так и в «надежном» пространстве пользовательского профайла в надежде, что он сработает.
Возможно, кто-нибудь поможет мне?
Извините. Я переместил сообщение об ошибке для лучшего чтения. Я полагаю, что -vv не является (double u) и его предполагается быть -V? если я использую -vv, это преуспевает, и если я использую -W, это говорит о том, что он не является допустимым параметром. –
Удвоение V приводит к тому, что нож более подробный, я хочу сказать, что вы указали нам ошибку, которую, как вы говорите, исправили, что не поможет вам помочь – Tensibai
Прошу прощения за путаницу. Это сообщение об ошибке является тем, которое я получаю от второго скрипта, который я запускаю. Он жалуется, что нет файла конфигурации ножей. –