2013-12-17 175 views
1

在廚師工作站的一部分,我用命令 -廚師:無密碼sudo來廚師客戶端作爲一個Ant腳本

knife ssh 'name:myserver.org.com' -x myUserName -P myClearTextPassword "sudo chef-client" 

這工作得很好,提示我輸入sudo密碼並執行菜譜在目的主廚節點上。到現在爲止還挺好。

現在,我試圖做到這一點,作爲在Windows系統上運行的ANT腳本中的Jenkins作業中的構建操作的一部分。 Ant腳本如下 -

<project name="MyProject" default="init" basedir="."> 
<target name="init"> 
    <property name="mypassword" value="myClearTextPassword" /> 
    <echo message="Executing the knife script"/> 
    <exec executable="cmd" failonerror="true" inputstring="${mypassword}"> 
     <arg line="/c knife ssh name:myserver.org.com -x myUserName -P myClearTextPassword sudo chef-client" /> 
    </exec> 
</target> 

Ant腳本,當在輸入sudo密碼運行等待 -

C:\chef-repo>ant 
    Buildfile: C:\chef-repo\build.xml 
    init: 
    [echo] Executing the knife script 
    [exec] cwllx0001.hq.target.com knife sudo password: 

我的目標是執行這個Ant腳本,使得它DOES不是等待sudo密碼。任何我們可以實現的方式?

+1

授予在/ etc/sudoer文件的用戶NOPASSWORD許可,並限制其加入這一行/etc/sudoers只需要它所需要的資源 – bjhaid

回答

1

試試這個。

--use-sudo-password 
Indicates that a bootstrap operation is done using sudo, with the password specified by the -P (or --ssh-password) option. 

一個更好的方式是

-i IDENTITY_FILE, --identity-file IDENTITY_FILE 

用於身份驗證的SSH身份文件。建議使用基於密鑰的身份驗證。

http://docs.opscode.com/knife_bootstrap.html

2

您需要在/etc/sudoers文件中爲用戶添加條目以不提示輸入密碼

您需要添加類似下面這樣的條目/etc/sudoers

<username> ALL=(ALL) NOPASSWD: ALL

您可以用廚師bash資源或execute資源

相關問題