我使用Chef在Amazon EC2上啓動Windows服務器(2008r2 Datacenter Edition)。在這種情況下,我運行一個腳本。廚師:windows_batch:如何將廚師工作站的Windows管理員密碼傳遞給廚師節點
[email protected]> knife ec2 server create -VV -I ami-xxxxxxx --flavor=m1.medium --groups=windows_target --region=us-east-1 --ssh-key=deployme --identity-file=/home/railsdev/Development/me-chef-repo/.chef/deployme.pem --bootstrap-protocol winrm --template-file=/home/railsdev/Development/me-chef-repo/windows-chef-client-msi.erb --user-data=/home/railsdev/Development/me-chef-repo/enable-winrm.ps1 --run-list 'role[me-win]' --node-name=jgodse-xx-65
此腳本成功啓動EC2節點並運行我的食譜。
一個廚師食譜我想運行的使用windows_batch資源,如下所示:
windows_batch "start_me" do
cwd "C:/me"
code 'C:\Ruby193\ruby.exe C:\me\start_me.rb'
end
「start_me.rb」開始它運行的用戶「本地系統帳戶」 Windows服務。不過,我需要以管理員身份運行該服務,因此我需要將腳本傳遞給管理員密碼。
我設想的新windows_batch看起來像這樣:
windows_batch "start_me" do
cwd "C:/me"
code 'C:\Ruby193\ruby.exe C:\me\start_me.rb pass=' + passwd
end
我知道,在刀可變廚師工作站端叫廚師::配置所在的Windows密碼[:刀] [:winrm_password] 。然而,當我甩了廚師::配置與該資源:
windows_batch "Chef::Config[:knife]" do
code <<-EOHH
@ECHO OFF
ECHO Chef::Config[:knife] = #{Chef::Config[:knife].inspect} >> %SystemDrive%\plchef_config_knife_jgodse.txt
EOHH
end
我在廚師節點上plchef_config_knife_jgodse.txt「{}」大胖子。即The Chef :: Config [:knife]數據不能使它從廚師工作站到主廚節點。
如何獲取服務器上存儲在Chef :: Config [:knife] [:winrm_password]中的Windows管理員密碼,以便可供在Chef節點上運行的windows_batch(){}提供程序使用在我的一個廚師食譜裏面?