Loading...
Loading...
Linode CLI Documentation
npx skill4agent add rawveg/skillsforge-marketplace linode-clilinode-cli <resource> <action> [options]# Install via pip
pip3 install linode-cli
# First-time configuration (interactive)
linode-cli configure
# Set API token via environment
export LINODE_CLI_TOKEN=your_api_token_here# View all available commands
linode-cli --help
# View help for specific resource
linode-cli linodes --help
# View help for specific action
linode-cli linodes create --help
# List all available regions
linode-cli regions list
# List all available images
linode-cli images list# List all Linodes on your account
linode-cli linodes list
# List domains
linode-cli domains list
# List volumes
linode-cli volumes list
# List Kubernetes clusters
linode-cli lke clusters-list
# Format output with custom fields
linode-cli linodes list --format "id,label,status,region"
# Output as JSON
linode-cli linodes list --json
# Output all available fields
linode-cli linodes list --all# Create a basic Linode (uses defaults from config)
linode-cli linodes create \
--type g6-standard-2 \
--region us-east \
--image linode/debian11 \
--label my-server \
--root_pass "SecurePassword123!"
# Create with specific configuration
linode-cli linodes create \
--type g6-standard-4 \
--region us-central \
--image linode/ubuntu22.04 \
--label production-web \
--root_pass "MySecurePass!" \
--group webservers
# Create with authorized SSH keys
linode-cli linodes create \
--type g6-standard-2 \
--region us-west \
--image linode/debian11 \
--label secure-server \
--root_pass "Password123!" \
--authorized_keys "ssh-rsa AAAAB3Nz..."# Create a Kubernetes cluster with multiple node pools
linode-cli lke cluster-create \
--label my-k8s-cluster \
--region us-central \
--k8s_version 1.28 \
--node_pools.type g6-standard-4 --node_pools.count 3 \
--node_pools.type g6-standard-8 --node_pools.count 2 \
--tags production
# List all clusters
linode-cli lke clusters-list
# Update cluster configuration
linode-cli lke cluster-update $CLUSTER_ID \
--label renamed-cluster \
--tags production \
--tags monitoring \
--tags backup
# Update node pool size
linode-cli lke pool-update $CLUSTER_ID $POOL_ID \
--count 5
# Delete a cluster
linode-cli lke cluster-delete $CLUSTER_ID# Create a domain
linode-cli domains create \
--type master \
--domain example.com \
--soa_email admin@example.com
# List domains
linode-cli domains list
# Create DNS record
linode-cli domains records-create $DOMAIN_ID \
--type A \
--name www \
--target 192.0.2.1
# Delete a domain
linode-cli domains delete $DOMAIN_ID# Create a Block Storage volume
linode-cli volumes create \
--label my-volume \
--size 100 \
--region us-east
# List volumes
linode-cli volumes list
# Attach volume to Linode
linode-cli volumes attach $VOLUME_ID \
--linode_id $LINODE_ID
# Detach volume
linode-cli volumes detach $VOLUME_ID# Filtering output with jq (requires jq installed)
linode-cli linodes list --json | jq '.[] | select(.status=="running")'
# Using variables in scripts
LINODE_ID=$(linode-cli linodes list --json | jq -r '.[0].id')
echo "First Linode ID: $LINODE_ID"
# Bulk operations example
for region in us-east us-west eu-central; do
linode-cli linodes create \
--type g6-nanode-1 \
--region $region \
--image linode/alpine3.18 \
--label "test-$region" \
--root_pass "TempPassword123!"
donereferences/viewpip3 install linode-clilinode-cli configure--helplinode-cli linodes list--json--format--allLINODE_CLI_TOKENlinode-cli --help--help--jsonlinode-cli regions list# Method 1: Interactive configuration
linode-cli configure
# Method 2: Environment variable
export LINODE_CLI_TOKEN=your_token_here
# Method 3: Config file (~/.config/linode-cli)
[DEFAULT]
token = your_token_here
region = us-east
type = g6-standard-2
image = linode/ubuntu22.04# Create → Boot (automatic) → Use → Power off → Delete
linode-cli linodes create --label test --type g6-nanode-1 --region us-east --image linode/alpine3.18 --root_pass "Test123!"
# Get ID from output or list
LINODE_ID=$(linode-cli linodes list --json | jq -r '.[] | select(.label=="test") | .id')
# Shutdown
linode-cli linodes shutdown $LINODE_ID
# Delete
linode-cli linodes delete $LINODE_ID#!/bin/bash
set -e # Exit on error
# Configuration
REGION="us-central"
TYPE="g6-standard-2"
IMAGE="linode/debian11"
# Create instance
echo "Creating Linode..."
RESULT=$(linode-cli linodes create \
--type "$TYPE" \
--region "$REGION" \
--image "$IMAGE" \
--label "auto-server-$(date +%s)" \
--root_pass "$(openssl rand -base64 32)" \
--json)
# Extract ID
LINODE_ID=$(echo "$RESULT" | jq -r '.[0].id')
echo "Created Linode ID: $LINODE_ID"
# Wait for running status
while true; do
STATUS=$(linode-cli linodes view $LINODE_ID --json | jq -r '.[0].status')
echo "Status: $STATUS"
[[ "$STATUS" == "running" ]] && break
sleep 5
done
echo "Linode is ready!".env--debug--json --prettyview# Verify token is set
echo $LINODE_CLI_TOKEN
# Test authentication
linode-cli account view
# Reconfigure CLI
linode-cli configure# Check CLI version
linode-cli --version
# View debug information
linode-cli linodes list --debug
# Check configuration
cat ~/.config/linode-cli--help# Update via pip
pip3 install --upgrade linode-cli
# Check for new features
linode-cli --help
# Review changelog
pip3 show linode-cli