Estaba intentando pasar un script bash a cloud-init en rackspace-cloud con 'nova boot' a través de --user-data. Usé el siguiente comando:
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
Puedo ver que el servidor qa-pro-24a se creó correctamente. pero cloudinit.sh no se ejecuta en el servidor creado. el archivo cloudinit.sh era:
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
Respuesta1
Necesita agregar --config-drive true
a sus parámetros.
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
con este guión
#!/bin/sh
echo "Hello World. The time is now $(date -R)!" | tee /root/output.txt
y /root/output.txt estaba esperándome cuando inicié sesión.