Я пытался передать 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
Вам нужно добавить --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 ждал меня, когда я вошел в систему.