我尝试通过 --user-data 使用“nova boot”将 bash 脚本传递给 rackspace-cloud 上的 cloud-init。我使用了以下命令:
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 就在那里等着我。