2015-07-01 38 views
0

是否有任何方式來runing刀vsphere無人執行?我有我使用幫我一個部署shell腳本:刀vsphere請求root密碼 - 是否可以無人執行?

cat deploy-production-20-vm.sh 
#!/bin/bash 

############################################## 
# These are machine dependent variables (need to change) 
############################################## 
HOST_NAME=$1 
IP_ADDRESS="$2/24" 
CHEF_BOOTSTRAP_IP_ADDRESS="$2" 
RUNLIST=\"$3\" 

CHEF_HOST= $HOSTNAME.my.lan 

############################################## 
# These are psuedo-environment independent variables (could change) 
############################################## 
DATASTORE="dcesxds04" 

############################################## 
# These are environment dependent variables (should not change per env) 
############################################## 
TEMPLATE="\"CentOS\"" 
NETWORK="\"VM Network\"" 
CLUSTER="ProdCluster01" #knife-vsphere calls this a resource pool 
GATEWAY="10.7.20.1" 
DNS="\"10.7.20.11,10.8.20.11,10.6.20.11\"" 

############################################## 
# the magic 
############################################## 
VM_CLONE_CMD="knife vsphere vm clone $HOST_NAME \ 
     --template $TEMPLATE \ 
     --cips $IP_ADDRESS \ 
     --vsdc MarkleyDC\ 
     --datastore $DATASTORE \ 
     --cvlan $NETWORK\ 
     --resource-pool $CLUSTER \ 
     --cgw $GATEWAY \ 
     --cdnsips $DNS \ 
     --start true \ 
     --bootstrap true \ 
     --fqdn $CHEF_BOOTSTRAP_IP_ADDRESS \ 
     --chost $HOST_NAME\ 
     --cdomain my.lan \ 
     --run-list=$RUNLIST" 

echo $VM_CLONE_CMD 
eval $VM_CLONE_CMD 

其中回聲(爲單行):

knife vsphere vm clone dcbsmtest --template "CentOS" --cips 10.7.20.84/24 
--vsdc MarkleyDC --datastore dcesxds04 --cvlan "VM Network" 
--resource-pool ProdCluster01 --cgw 10.7.20.1 
--cdnsips "10.7.20.11,10.8.20.11,10.6.20.11" --start true 
--bootstrap true --fqdn 10.7.20.84 --chost dcbsmtest --cdomain my.lan 
--run-list="role[my-env-prod-server]" 

當運行時,它輸出:

Cloning template CentOS Template to new VM dcbsmtest 
Finished creating virtual machine dcbsmtest 
Powered on virtual machine dcbsmtest 
Waiting for sshd...done 
Doing old-style registration with the validation key at /home/me/chef-repo/.chef/our-validator.pem... 
Delete your validation key in order to use your user credentials instead 

Connecting to 10.7.20.84 
[email protected]'s password: 

如果我離開辦公桌並提示PWD - 那麼有時會超時,連接丟失,廚師不能自舉。此外,我希望能夠根據系統需求將所有這些自動化爲彈性 - 這對於參與執行不起作用。

+2

正確的解決方法是設置'ssh',以便您可以在沒有密碼的情況下登錄到遠程主機。 – chepner

+1

另一個問題:不要使用'eval'來運行命令;相反,將選項存儲在數組中。 – chepner

+0

當機器作爲虛擬機從無處不在的時候,你如何爲它設置SSH?在模板中? – akaphenom

回答

0

除非提供更好的解決方案,否則我將運行的想法是在模板中使用默認密碼並將其通過命令行傳遞給刀,並且在構建完成後讓廚師更改密碼,最小化一個硬編碼的密碼暴露在bash腳本控制刀...


更新:我想補充說,這是像一個魅力工作。理想情況下,我們可以改變我們正在部署的centOs模板 - 但在這裏是不可能的 - 所以這是一個很好的選擇(因爲我們在部署之後改變了root密碼)。

相關問題