Alternative to @reboot on droplet creation

May 16, 2018 1.1k views
Debian API

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

by Mitchell Anicas
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.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!