2015-07-01 4 views
0

Есть ли способ уничтожить нож vsphere для автоматического выполнения? У меня есть сценарий развертывания оболочки, которые я использую, чтобы помочь мне:Нож 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

Идея, с которой я собираюсь работать, если только не будет предоставлено лучшее решение, должно иметь пароль по умолчанию в шаблоне и передать его в командной строке на нож, а шеф-повар изменит пароль после завершения сборки, сводя к минимуму разоблачение жесткого кодированного пароля в Баш скрипт, контролирующей ножом ...


Обновление: Я хотел бы добавить, что это работает как шарм. В идеале мы могли бы изменить шаблон centOs, который мы развертывали, но здесь это было невозможно - так что это прекрасная альтернатива (поскольку мы изменили пароль root после развертывания в любом случае).

 Смежные вопросы

  • Нет связанных вопросов^_^