# `salt-cloud`

Provision virtual machines in the cloud with Salt

## 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

## Description

Salt Cloud is the system used to provision virtual machines on various public clouds via a cleanly controlled profile and mapping system.

## Options

--version

  Print the version of Salt that is running.

--versions-report

  Show program's dependencies and version number, and then exit

-h, --help

  Show the help message and exit

-c CONFIG_DIR, --config-dir=CONFIG_dir

  The location of the Salt configuration directory. This directory contains the configuration files for Salt master and minions. The default location on most systems is `/etc/salt`.

### Execution Options

-L LOCATION, --location=LOCATION

  Specify which region to connect to.

-a ACTION, --action=ACTION

  Perform an action that may be specific to this cloud provider. This argument requires one or more instance names to be specified.

-f <FUNC-NAME> <PROVIDER>, --function=<FUNC-NAME> <PROVIDER>

  Perform an function that may be specific to this cloud provider, that does not apply to an instance. This argument 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 must be defined in the specified profiles file.

-m MAP, --map=MAP

  Specify a map file to use. If used without any other options, this option will ensure that all of the mapped VMs are created. If the named VM already exists then it will be skipped.

-H, --hard

  When specifying a map file, the default behavior is to ensure that all of the VMs specified in the map file are created. If the --hard option is set, then any VMs that exist on configured cloud providers that 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.

-d, --destroy

  Pass in the name(s) of VMs to destroy, salt-cloud will search the configured cloud providers for the specified 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 are executed serially. The -P option will run each cloud vm build in a separate process allowing for large groups of VMs to be build at once.

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

-u, --update-bootstrap

  Update salt-bootstrap to the latest stable bootstrap release.

-y, --assume-yes

  Default yes in answer to all confirmation questions.

-k, --keep-tmp

  Do not remove files from /tmp/ after deploy.sh finishes.

--show-deploy-args

  Include the options used to deploy the minion in the data returned.

--script-args=SCRIPT_ARGS

  Script arguments to be fed to the bootstrap script when deploying the VM.

### Query Options

-Q, --query

  Execute a query and return some information about the nodes running on configured cloud providers

-F, --full-query

  Execute a query and print out all available information about all cloud VMs. Can be used in conjunction with -m to display only information about the specified map.

-S, --select-query

  Execute a query and print out selected information about all cloud VMs. Can be used in conjunction with -m to display only information about the specified map.

--list-providers

  Display a list of configured providers.

--list-profiles

  New in version 2014.7.0.

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

### Cloud Providers Listings

--list-locations=LIST_LOCATIONS

  Display a list of locations available in configured cloud providers. Pass the cloud provider that available locations are desired on, such as "linode", or pass "all" to list locations for all configured cloud providers

--list-images=LIST_IMAGES

  Display a list of images available in configured cloud providers. Pass the cloud provider that available images are desired on, such as "linode", or pass "all" to list images for all configured cloud providers

--list-sizes=LIST_SIZES

  Display a list of sizes available in configured cloud providers. Pass the cloud provider that available sizes are desired on, such as "AWS", or pass "all" to list sizes for all configured cloud providers

### Cloud Credentials

--set-password=<USERNAME> <PROVIDER>

  Configure 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

--force-color

  Force colored output

  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

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)