Я пытался передать скрипт bash в cloud-init на rackspace-cloud с 'nova boot' через --user-data. Я использовал следующую команду:
nova boot --key-name mykey1 --image "Ubuntu 14.04 LTS (Trusty Tahr) (PVHVM)" --flavor general1-2 --user-data /tmp/tmpL3WNsB/cloudinit.sh qa-pro-24a
Я вижу, что сервер qa-pro-24a успешно создан. Но cloudinit.sh не выполняется на созданном сервере. Файл cloudinit.sh был:
root@qa-master:/tmp/tmpL3WNsB# cat cloudinit.sh
#!/bin/bash
echo "192.168.4.8 net1" >> /etc/hosts
ufw allow ssh/tcp
ufw --force enable
решение1
Вам необходимо добавить --config-drive true
к своим параметрам.
nova boot --config-drive true --user-data hello.sh --key-name rackspace --image "Ubuntu 14.04 LTS (Trusty Tahr) (PVHVM)" --flavor general1-2 qa-pro-24a
с этим сценарием
#!/bin/sh
echo "Hello World. The time is now $(date -R)!" | tee /root/output.txt
и /root/output.txt ждал меня, когда я вошел в систему.