2013-07-18 130 views
2

我使用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(){}提供程序使用在我的一個廚師食譜裏面?

回答

0

你不能完全按照你的要求去做。管理員工具,刀具的配置設置不會以任何方式發送到服務器。