Alternative to @reboot on droplet creation

May 16, 2018 72 views
API Debian
gavin
By:
gavin

Hi,

I want to create a droplet via API, run some tasks, then destroy it.

I was intending to run the tasks via a @reboot in crontab but this isn't working, presumably because it isn't technically a reboot (it does work if I reboot it immediately after creating it).

What alternative should I use? I need to run a .sh bash file I created.

Any ideas?

Thanks.

2 comments
  • */1 * * * * <command> does not work either, so it looks like I actually need to log into the droplet first...

  • So the issue seems to be that you have to log into the new droplet first, then change the default password, then it will work, but this is not a suitable solution for me.

    Anyone know of any other ways to have tasks immediately from from a droplet creation via API without having to login for a first time?

    Thanks.

2 Answers

You can use Cloud Init user data to pass either a bash script or a cloud-config file to the Droplet. See these tutorials for more info:

This is also accessible through the API. Here's an example of passing user data through the control panel:

screenshot of the control panel

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,...
Have another answer? Share your knowledge.