Question

How to use cURL to Clone a Droplet from a Snapshot

  • Posted August 30, 2014

I’m trying to create a 2nd Droplet.

When wanting just the OS software installed, through Digital Ocean’s control panel I can Select Image > Linux Distributions tab > and select a Linux OS image, to which another Droplet will be spun. Similarly, when using a cURL statement such as …

curl -s “https://api.digitalocean.com/droplets/new/?name=server2&size_id=66&image_id=XXXXXX&region_id=4&client_id=YYYYYY&api_key=ZZZZZZ

… a message is given …

{“status”:“OK”,“droplet”:{“id”:AAAAAA,“name”:“server2”,“image_id”:XXXXXX,“size_id”:66,“event_id”:BBBBBB}}

… and a 2nd Droplet is spun with, again, just the OS software installed.

Furtherer, if wanting to spin a 2nd Droplet as a clone of my 1st server, which already has LAMP and my web pages installed on it; through Digital Ocean’s control panel I can Select Image > My Images tab > and select a snapshot name, to which a new Droplet is spun with all the software included.

At this point I’m not sure how to use a cURL statement, to clone via a Snapshot.

Any answer or direction is appreciated.

Subscribe
Share

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

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.

To launch a new droplet based on a snapshot, you’d use the same API call:

curl -s "https://api.digitalocean.com/droplets/new/?name=server2&sizeid=66&imageid=XXXXXX&regionid=4&clientid=YYYYYY&api_key=ZZZZZZ"

You just need to replace the imageid with the ID for your snapshot. To find your image ID, run:

curl -s "https://api.digitalocean.com/v1/images/?clientid=YYYYYY&api_key=ZZZZZZ"

I’d also suggest installing the jq command. You can pipe the results to it so that they are printed out nicely:

curl -s "https://api.digitalocean.com/v1/images/?clientid=YYYYYY&api_key=ZZZZZZ" | jq .[]