SALT-CLOUD(1)

✨ salt-cloud β€” the Salt Cloud Command πŸ’–

ok so bestie, this is salt-cloud(1), from the Salt manual (section 1, the cool kids' section). πŸ¦‹ Sit down, grab a strawberry drink, and let's get you provisioning virtual machines in the cloud with Salt. It's giving main character energy and honestly? It ate. πŸ‘‘


🌸 NAME 🌸

salt-cloud β€” the Salt Cloud Command, duh πŸ’…

Provision virtual machines in the cloud with Salt. That's the whole vibe. ✨


πŸŽ€ SYNOPSIS πŸŽ€

salt-cloud -m /etc/salt/cloud.map

salt-cloud -m /etc/salt/cloud.map NAME

salt-cloud -m /etc/salt/cloud.map NAME1 NAME2

salt-cloud -p PROFILE NAME

salt-cloud -p PROFILE NAME1 NAME2 NAME3 NAME4 NAME5 NAME6

Look at those little invocations, they're so cute. 🫢


🌈 DESCRIPTION 🌈

Okay so Salt Cloud is literally the system you use to provision virtual machines on all kinds of public clouds πŸ¦‹, and it does it through a cleanly controlled profile and mapping system. Profiles, maps, vibes. That's the whole deal. No cap. πŸ’–


πŸ’… OPTIONS πŸ’…

The icons themselves. Every single one, no skipping, periodt. ✨

  • --version β€” Prints the version of Salt that's currently running. Like a lil name tag for your Salt. 🏷️
  • --versions-report β€” Shows you the program's dependencies AND the version number, then bounces. Exit stage left. πŸ‘‹
  • -h, --help β€” Shows the help message and exits. Your emergency bestie when you forget stuff. 🫢
  • -c CONFIG_DIR, --config-dir=CONFIG_dir β€” Tells Salt where the configuration directory lives. That directory holds the config files for the Salt master and minions. On most systems the default is /etc/salt. 🏠

⚑ Execution Options ⚑

  • -L LOCATION, --location=LOCATION β€” Pick which region to connect to. Region selection, iconic. πŸ—ΊοΈ
  • -a ACTION, --action=ACTION β€” Perform an action that might be specific to this cloud provider. Heads up bestie: this argument needs one or more instance names specified too. πŸ“
  • -f <FUNC-NAME> <PROVIDER>, --function=<FUNC-NAME> <PROVIDER> β€” Run a function that might be specific to this cloud provider, one that doesn't apply to an instance. This one requires a provider to be specified (i.e.: nova). πŸ”§
  • -p PROFILE, --profile=PROFILE β€” Select a single profile to build the named cloud VMs from. The profile has to be defined in the specified profiles file, no shortcuts. πŸ‘‘
  • -m MAP, --map=MAP β€” Specify a map file to use. If you use it without any other options, this option makes sure all of the mapped VMs get created. And if the named VM already exists? It gets skipped. Politely. πŸ™ˆ
  • -H, --hard β€” When you specify a map file, the default behavior is to make sure all the VMs in the map file are created. But if --hard is set, then any VMs that exist on configured cloud providers and are NOT specified in the map file will be destroyed.
⚠️ Be advised that this can be a destructive operation and should be used with care. Like, actually. Not me being dramatic. 😭
  • -d, --destroy β€” Pass in the name(s) of VMs to destroy and salt-cloud will search the configured cloud providers for those names and destroy the VMs.
⚠️ Be advised that this is a destructive operation and should be used with care. Can be used in conjunction with the -m option to specify a map of VMs to be deleted. πŸ’€
  • -P, --parallel β€” Normally when building many cloud VMs they're executed serially, one after another, like a lil queue. The -P option runs each cloud vm build in a separate process, so big groups of VMs can be built all at once. ⚑

Be advised that some cloud provider's systems don't seem well suited for this influx of vm creation. When creating large groups of VMs, watch the cloud provider carefully. πŸ‘€

  • -u, --update-bootstrap β€” Updates salt-bootstrap to the latest stable bootstrap release. Fresh out the box. ✨
  • -y, --assume-yes β€” Defaults to yes in answer to all confirmation questions. Living dangerously, love that for you. πŸ’…
  • -k, --keep-tmp β€” Do not remove files from /tmp/ after deploy.sh finishes. Hoarding behavior, but make it valid. πŸ—‚οΈ
  • --show-deploy-args β€” Includes the options used to deploy the minion in the data returned. Receipts! 🧾
  • --script-args=SCRIPT_ARGS β€” Script arguments to be fed to the bootstrap script when deploying the VM. 🍽️

πŸ” Query Options πŸ”

  • -Q, --query β€” Executes a query and returns some information about the nodes running on configured cloud providers. Curious girlie behavior. πŸ‘€
  • -F, --full-query β€” Executes a query and prints out all available information about all cloud VMs. Can be used in conjunction with -m to display only information about the specified map. The full tea. β˜•
  • -S, --select-query β€” Executes a query and prints out selected information about all cloud VMs. Can be used in conjunction with -m to display only information about the specified map. Just the highlights. ✨
  • --list-providers β€” Displays a list of configured providers. πŸ“‹
  • --list-profiles β€”

New in version 2014.7.0. πŸŽ‰

Displays a list of configured profiles. Pass in a cloud provider to view that provider's associated profiles, such as digitalocean, or pass in all to list all the configured profiles. 🌍

🌀️ Cloud Providers Listings 🌀️

  • --list-locations=LIST_LOCATIONS β€” Displays a list of locations available in configured cloud providers. Pass the cloud provider you want available locations on, such as "linode", or pass "all" to list locations for all configured cloud providers. πŸ“
  • --list-images=LIST_IMAGES β€” Displays a list of images available in configured cloud providers. Pass the cloud provider you want available images on, such as "linode", or pass "all" to list images for all configured cloud providers. πŸ–ΌοΈ
  • --list-sizes=LIST_SIZES β€” Displays a list of sizes available in configured cloud providers. Pass the cloud provider you want available sizes on, such as "AWS", or pass "all" to list sizes for all configured cloud providers. πŸ“

πŸ” Cloud Credentials πŸ”

  • --set-password=<USERNAME> <PROVIDER> β€” Configure a password for a cloud provider and save it to the keyring. PROVIDER can be specified with or without a driver, for example: "--set-password bob rackspace" or more specific "--set-password bob rackspace:openstack" DEPRECATED! 🚨

🎨 Output Options 🎨

  • --out β€” Pass in an alternative outputter to display the return of data. This outputter can be any of the available outputters:
highstate, json, key, overstatestage, pprint, raw, txt, yaml,
and many others.

Some outputters are formatted only for data returned from specific functions. If an outputter is used that does not support the data passed into it, then Salt will fall back on the pprint outputter and display the return data using the Python pprint standard library module. 🐍

  • --out-indent OUTPUT_INDENT, --output-indent OUTPUT_INDENT β€” Print the output indented by the provided value in spaces. Negative values disable indentation. Only applicable in outputters that support indentation. πŸ“
  • --out-file=OUTPUT_FILE, --output-file=OUTPUT_FILE β€” Write the output to the specified file. πŸ“
  • --out-file-append, --output-file-append β€” Append the output to the specified file. βž•
  • --no-color β€” Disable all colored output. Sad, muted, greyscale vibes. πŸ₯²
  • --force-color β€” Force colored output. Make it pop. 🌈
NOTE: 🫧 When using colored output the color codes are as follows: green denotes success, red denotes failure, blue denotes changes and success and yellow denotes a expected future change in configuration.
  • --state-output=STATE_OUTPUT, --state_output=STATE_OUTPUT β€” Override the configured state_output value for minion output. One of 'full', 'terse', 'mixed', 'changes' or 'filter'. Default: 'none'. πŸŽ›οΈ
  • --state-verbose=STATE_VERBOSE, --state_verbose=STATE_VERBOSE β€” Override the configured state_verbose value for minion output. Set to True or False. Default: none. πŸ—£οΈ

🌟 EXAMPLES 🌟

Bestie, here's where it gets fun. πŸ’–

To create 4 VMs named web1, web2, db1, and db2 from specified profiles:

salt-cloud -p fedora_rackspace web1 web2 db1 db2

To read in a map file and create all VMs specified therein:

salt-cloud -m /path/to/cloud.map

To read in a map file and create all VMs specified therein in parallel:

salt-cloud -m /path/to/cloud.map -P

To delete any VMs specified in the map file:

salt-cloud -m /path/to/cloud.map -d

To delete any VMs NOT specified in the map file:

salt-cloud -m /path/to/cloud.map -H

To display the status of all VMs specified in the map file:

salt-cloud -m /path/to/cloud.map -Q

πŸ‘€ SEE ALSO πŸ‘€

salt-cloud(7) salt(7) salt-master(1) salt-minion(1)

Go read those next, they're the whole friend group. 🫢


πŸ’œ AUTHOR πŸ’œ

Thomas S. Hatch <thatch45@gmail.com> and many others β€” please see the Authors file. Legends, all of them. πŸ‘‘


2025


okay that's the whole page, and as a lil sign-off: this is version 3007.8, generated on September 18, 2025 at 06:58:52 UTC. Thanks for coming to my ted talk, go provision something cute. πŸ’–βœ¨πŸŽ€πŸ¦‹πŸŒΈπŸ’…

πŸ“¦ where this page comes from