Npm Install not working with User Data File

June 28, 2017 927 views
Node.js DigitalOcean Ubuntu 16.04
0e999a7e5b77811346428dd01eb5c09a7dba1896
By:
gabe84700

Hi all I'm looking to install dependencies using npm install, then run casperjs, all from droplet creation using --user-data-file:
doctl compute droplet create test1 --image node --size 4gb --region nyc1 --ssh-keys (omitted) --user-data-file su.sh --wait -t $DAT
with su.sh being:

apt-get update
apt-get --assume-yes install npm
sudo npm install -g phantomjs-prebuilt
sudo npm install -g casperjs
apt-get --assume-yes install libfontconfig

I'm also not able to redirect the output of those commands to files using > or 2>.
Is there a better way to install dependencies and start scripting in an automated way using Digital Ocean, or can my process be modified to success?

1 Answer
hansen June 28, 2017
Accepted Answer

Hi @gabe84700

You should be able to do it with this:

#!/bin/bash
apt-get update
apt-get -y install npm libfontconfig
npm install -g phantomjs-prebuilt
npm install -g casperjs

Have a look at this tutorial:
https://www.digitalocean.com/community/tutorials/an-introduction-to-droplet-metadata

Update CloudInit link and conclusion Metadata is a service provided to DigitalOcean droplets that allows a droplet to access data about itself, i.e. its metadata. Examples of available droplet metadata include user-provided user data, droplet ID, data center region,...
  • Thanks so much! Real OMG moment when I realized i had forgotten the shebang...beginner...i'll go through the tutorial

Have another answer? Share your knowledge.