How can I install things with a user data script

February 21, 2019 403 views
Automated Setups Ubuntu 18.04

Hey everyone!

I’m trying to create droplets with user data and this script https://github.com/do-community/automated-setups/blob/master/Ubuntu-18.04/initial_server_setup.sh.
I’d like to install node.js by adding these command lines to the script

curl -sL https://deb.nodesource.com/setup_10.x | -E bash -
apt-get install -y nodejs

But node.js isn’t installed when the droplet is created. These commands work just fine when executed afterward.

Did I miss something? Because it seems possible https://www.digitalocean.com/docs/droplets/resources/metadata/#how-to-provide-user-data :)

2 comments
  • That seems like it should work. First tip: Check the cloud-init logs at /var/log/cloud-init-output.log any hints there as to what’s going wrong?

  • Thanks for your answer. It helped a lot.

    I had a look and nothing weird was in the logs, well there was not much in it actually. Nothing related to my commands.

    So I tried several things and it appears that I explicitly didn’t use sudo to run my commands. I don’t know why, I thought I shouldn’t use it in the script. Running commands with sudo made it work.

1 Answer

This question was answered by @brunob:

Thanks for your answer. It helped a lot.

I had a look and nothing weird was in the logs, well there was not much in it actually. Nothing related to my commands.

So I tried several things and it appears that I explicitly didn’t use sudo to run my commands. I don’t know why, I thought I shouldn’t use it in the script. Running commands with sudo made it work.

View the original comment

Have another answer? Share your knowledge.