Question

How can I install things with a user data script

Posted February 21, 2019 975 views
Ubuntu 18.04 Automated Setups

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.

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.

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

Submit an Answer