cURL in user_data

Posted June 16, 2017 6k views
Getting StartedDigitalOceanUbuntu 16.04

Hello guys,
I’m currently trying to use this value for user_data:

  - curl https://mysupercooldomain.tld/ | sh

The content of is:

echo "doing" > status
dpkg --add-architecture i386
apt-get -y update
apt-get -y install mailutils postfix curl wget file bzip2 gzip unzip bsdmainutils python util-linux ca-certificates tmux lib32gcc1 libstdc++6 libstdc++6:i386
adduser --disabled-password --gecos "Game Server" gameserver
su - gameserver
wget https://mysupercooldomain.tld/gameserver
chmod +x gameserver
./gameserver install

After creating a Droplet, the Droplet does not contain the data it should contain.

Something wrong?

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Submit an Answer
1 answer

Hi @NicolaDL

Try encapsulating it in single quotes ', since it will then write the string to a temporary file and execute that file with sh. And since it’s a bash script, you can parse it directly to bash instead of sh.

  - 'curl https://mysupercooldomain.tld/ | /bin/bash -s'
  • It works! Marked as Accepted.

    Just a quick note: I noticed that cloud-config works only on Ubuntu 14.04 and not in newer versions.

    Thanks for your time :D

    • @NicolaDL I’ve tested cloud config a couple of days ago on Ubuntu 16.04 and FreeBSD 11, and it was working on both with runcmd.
      Have a look at the error log for any issues /var/log/cloud-init.log and /var/log/cloud-init-output.log