Create multiple Linodes in parallel with Linode CLI?

Linode Staff

I have been working with your API for automated cloud deployments combined with StackScripts but have a question about the API/CLI. is it possible to use the Linode-CLI to deploy multiple Linodes at once, and even all in different network regions?

2 Replies

This is a great question! I've been playing around with the Linode CLI and Bash and this is what I've come up with. You can accomplish this with a relatively simple script, such as:

#!/bin/bash

# Enable Job Control, so that we can create Linodes in parallel
set -m

# Declare the array, "Region", which will contain the list of regions
# in which this script will be deploying Linodes
declare -a Region=("us-central" \
                    "us-east" \
                    "us-southeast" \
                    "us-west");

# Create 4 Linodes, each in a different region with the label "${Region[$i-1]}",
# where $i is the number of the Linode being created (in this case, 1-4)
# Run each Linode creation job in parallel by forcing each one into the
# background at runtime
for i in `seq 4`; do
        linode-cli linodes create --label "${Region[$i-1]}" \
                                  --region ${Region[$i-1]} \
                                  --stackscript_id <stackscript_id> \
                                  --stackscript_data <stackscript_data> \
                                  --root_pass <super-secure-password> \
                                  --image <preferred/image> \
                                  --type g6-nanode-1 &
done

# Wait for all of the backgrounded jobs to finish
while [ 1 ]; do fg 2> /dev/null; [ $? == 1 ] && break; done

This script only accounts for 4 1GB Nanodes, each of which is in a different region of the US, but you can customize it however you like. I've tested this script and it works quite well for me.

thanks for sharing that very useful :)

maybe setup a github repo with sample scripts ? :)

Reply

Please enter an answer
Tips:

You can mention users to notify them: @username

You can use Markdown to format your question. For more examples see the Markdown Cheatsheet.

> I’m a blockquote.

I’m a blockquote.

[I'm a link] (https://www.google.com)

I'm a link

**I am bold** I am bold

*I am italicized* I am italicized

Community Code of Conduct