2012-07-13 07:26:16 +00:00
==================
Core Configuration
==================
2014-01-10 20:26:40 +00:00
A number of core configuration options and some options that are global to the
VM profiles can be set in the cloud configuration file. By default this file is
2012-07-14 12:38:51 +00:00
located at `` /etc/salt/cloud `` .
2012-07-13 07:26:16 +00:00
2015-04-08 00:41:21 +00:00
2014-01-10 18:16:51 +00:00
Thread Pool Size
2015-04-08 00:41:21 +00:00
================
2014-01-10 18:16:51 +00:00
When salt cloud is operating in parallel mode via the `` -P `` argument, you can
2014-01-10 20:26:40 +00:00
control the thread pool size by specifying the `` pool_size `` parameter with
2014-01-10 18:16:51 +00:00
a positive integer value.
By default, the thread pool size will be set to the number of VMs that salt
cloud is operating on.
2014-01-10 18:38:02 +00:00
.. code-block :: yaml
pool_size: 10
2013-03-07 21:11:38 +00:00
2012-07-13 07:26:16 +00:00
Minion Configuration
====================
2014-04-24 22:16:53 +00:00
The default minion configuration is set up in this file. Minions created by
salt-cloud derive their configuration from this file. Almost all parameters
found in :ref: `Configuring the Salt Minion <configuration-salt-minion>` can
be used here.
2012-07-13 07:26:16 +00:00
.. code-block :: yaml
minion:
2014-10-30 04:53:08 +00:00
master: saltmaster.example.com
2012-07-13 07:26:16 +00:00
2013-04-02 18:25:45 +00:00
2014-04-24 22:16:53 +00:00
In particular, this is the location to specify the location of the salt master
and its listening port, if the port is not set to the default.
2012-07-13 07:26:16 +00:00
2013-03-07 21:11:38 +00:00
2015-04-08 00:41:21 +00:00
Cloud Configuration Syntax
==========================
2012-07-13 07:26:16 +00:00
The data specific to interacting with public clouds is set up here.
2015-04-08 00:56:40 +00:00
Cloud provider configuration syntax can live in several places. The first is in
`` /etc/salt/cloud `` :
2013-04-08 13:33:28 +00:00
.. code-block :: yaml
2015-04-08 00:56:40 +00:00
# /etc/salt/cloud
2013-04-08 13:33:28 +00:00
providers:
my-aws-migrated-config:
id: HJGRYCILJLKJYG
key: 'kdjgfsgm;woormgl/aserigjksjdhasdfgn'
keyname: test
securitygroup: quick-start
private_key: /root/test.pem
2015-06-17 22:41:03 +00:00
driver: aws
2013-04-08 13:33:28 +00:00
2015-04-08 00:56:40 +00:00
Cloud provider configuration data can also be housed in `` /etc/salt/cloud.providers ``
or any file matching `` /etc/salt/cloud.providers.d/*.conf `` . All files in any of these
locations will be parsed for cloud provider data.
2013-04-08 13:33:28 +00:00
2015-04-08 00:56:40 +00:00
Using the example configuration above:
2013-04-08 13:33:28 +00:00
.. code-block :: yaml
2015-04-08 00:56:40 +00:00
# /etc/salt/cloud.providers
# or could be /etc/salt/cloud.providers.d/*.conf
my-aws-config:
2013-04-08 13:33:28 +00:00
id: HJGRYCILJLKJYG
key: 'kdjgfsgm;woormgl/aserigjksjdhasdfgn'
keyname: test
securitygroup: quick-start
private_key: /root/test.pem
2015-06-17 22:41:03 +00:00
driver: aws
2013-04-08 13:33:28 +00:00
2015-04-08 00:56:40 +00:00
.. note ::
2013-04-08 13:33:28 +00:00
2015-04-08 00:56:40 +00:00
Salt Cloud provider configurations within `` /etc/cloud.provider.d/ should not
specify the `` providers `` starting key.
2013-04-08 13:33:28 +00:00
2015-04-08 00:56:40 +00:00
It is also possible to have multiple cloud configuration blocks within the same alias block.
For example:
2013-04-08 13:33:28 +00:00
.. code-block :: yaml
production-config:
- id: HJGRYCILJLKJYG
key: 'kdjgfsgm;woormgl/aserigjksjdhasdfgn'
keyname: test
securitygroup: quick-start
private_key: /root/test.pem
2015-06-17 22:41:03 +00:00
driver: aws
2013-04-08 13:33:28 +00:00
- user: example_user
apikey: 123984bjjas87034
2015-06-17 22:41:03 +00:00
driver: rackspace
2013-04-08 13:33:28 +00:00
2015-04-08 00:56:40 +00:00
However, using this configuration method requires a change with profile configuration blocks.
The provider alias needs to have the provider key value appended as in the following example:
2013-04-08 13:33:28 +00:00
.. code-block :: yaml
rhel_aws_dev:
provider: production-config:aws
image: ami-e565ba8c
2014-09-27 17:09:08 +00:00
size: t1.micro
2013-04-08 13:33:28 +00:00
rhel_aws_prod:
provider: production-config:aws
image: ami-e565ba8c
size: High-CPU Extra Large Instance
database_prod:
provider: production-config:rackspace
image: Ubuntu 12.04 LTS
size: 256 server
2015-04-08 00:56:40 +00:00
Notice that because of the multiple entries, one has to be explicit about the provider alias and
name, from the above example, `` production-config: aws `` .
2013-04-08 13:33:28 +00:00
2015-04-08 00:56:40 +00:00
This data interactions with the `` salt-cloud `` binary regarding its `` --list-location `` ,
`` --list-images `` , and `` --list-sizes `` which needs a cloud provider as an argument. The argument
used should be the configured cloud provider alias. If the provider alias has multiple entries,
`` <provider-alias>: <provider-name> `` should be used.
2013-04-08 13:33:28 +00:00
2015-04-14 17:03:03 +00:00
To allow for a more extensible configuration, `` --providers-config `` , which defaults to
`` /etc/salt/cloud.providers `` , was added to the cli parser. It allows for the providers'
configuration to be added on a per-file basis.
2013-04-08 13:33:28 +00:00
2013-04-02 18:25:45 +00:00
2014-05-20 22:55:45 +00:00
Pillar Configuration
====================
2015-04-08 00:56:40 +00:00
It is possible to configure cloud providers using pillars. This is only used when inside the cloud
module. You can setup a variable called `` cloud `` that contains your profile and provider to pass
that information to the cloud servers instead of having to copy the full configuration to every
minion. In your pillar file, you would use something like this:
2014-05-20 22:55:45 +00:00
.. code-block :: yaml
2014-05-20 23:32:19 +00:00
cloud:
2014-05-20 22:55:45 +00:00
ssh_key_name: saltstack
ssh_key_file: /root/.ssh/id_rsa
update_cachedir: True
diff_cache_events: True
change_password: True
2014-05-20 22:59:36 +00:00
2014-05-20 22:55:45 +00:00
providers:
my-nova:
identity_url: https://identity.api.rackspacecloud.com/v2.0/
compute_region: IAD
user: myuser
api_key: apikey
tenant: 123456
2015-06-17 22:41:03 +00:00
driver: nova
2014-05-20 22:55:45 +00:00
my-openstack:
identity_url: https://identity.api.rackspacecloud.com/v2.0/tokens
user: user2
apikey: apikey2
tenant: 654321
compute_region: DFW
2015-06-17 22:41:03 +00:00
driver: openstack
2014-05-20 22:55:45 +00:00
compute_name: cloudServersOpenStack
profiles:
ubuntu-nova:
2015-06-17 22:41:03 +00:00
driver: my-nova
2014-05-20 22:55:45 +00:00
size: performance1-8
image: bb02b1a3-bc77-4d17-ab5b-421d89850fca
script_args: git develop
ubuntu-openstack:
2015-06-17 22:41:03 +00:00
driver: my-openstack
2014-05-20 22:55:45 +00:00
size: performance1-8
image: bb02b1a3-bc77-4d17-ab5b-421d89850fca
script_args: git develop
2013-04-08 22:01:58 +00:00
Cloud Configurations
====================
2015-06-04 14:23:06 +00:00
Scaleway
--------
To use Salt Cloud with Scaleway, you need to get an `` access key `` and an `` API token `` . `` API tokens `` are unique identifiers associated with your Scaleway account.
To retrieve your `` access key `` and `` API token `` , log-in to the Scaleway control panel, open the pull-down menu on your account name and click on "My Credentials" link.
If you do not have `` API token `` you can create one by clicking the "Create New Token" button on the right corner.
.. code-block :: yaml
my-scaleway-config:
access_key: 15cf404d-4560-41b1-9a0c-21c3d5c4ff1f
token: a7347ec8-5de1-4024-a5e3-24b77d1ba91d
2015-06-17 22:41:03 +00:00
driver: scaleway
2015-06-04 14:23:06 +00:00
.. note ::
In the cloud profile that uses this provider configuration, the syntax for the
`` provider `` required field would be `` provider: my-scaleway-config `` .
2012-07-13 07:26:16 +00:00
Rackspace
---------
2015-04-08 00:41:21 +00:00
Rackspace cloud requires two configuration options; a `` user `` and an `` apikey `` :
2013-04-02 18:25:45 +00:00
.. code-block :: yaml
2013-04-06 14:08:24 +00:00
my-rackspace-config:
2013-04-02 18:25:45 +00:00
user: example_user
apikey: 123984bjjas87034
2015-06-17 22:41:03 +00:00
driver: rackspace-config
2013-04-02 18:25:45 +00:00
2015-04-08 00:41:21 +00:00
.. note ::
2013-04-02 18:25:45 +00:00
2015-04-08 00:41:21 +00:00
In the cloud profile that uses this provider configuration, the syntax for the
`` provider `` required field would be `` provider: my-rackspace-config `` .
2013-04-02 18:25:45 +00:00
2012-07-13 07:26:16 +00:00
Amazon AWS
----------
2015-04-08 00:41:21 +00:00
A number of configuration options are required for Amazon AWS including `` id `` ,
`` key `` , `` keyname `` , `` sercuritygroup `` , and `` private_key `` :
2013-04-02 18:25:45 +00:00
.. code-block :: yaml
2013-04-06 14:08:24 +00:00
my-aws-quick-start:
2013-04-02 18:25:45 +00:00
id: HJGRYCILJLKJYG
key: 'kdjgfsgm;woormgl/aserigjksjdhasdfgn'
keyname: test
securitygroup: quick-start
private_key: /root/test.pem
2015-06-17 22:41:03 +00:00
driver: aws
2013-04-02 18:25:45 +00:00
2013-04-06 14:08:24 +00:00
my-aws-default:
2013-04-02 18:25:45 +00:00
id: HJGRYCILJLKJYG
key: 'kdjgfsgm;woormgl/aserigjksjdhasdfgn'
keyname: test
securitygroup: default
private_key: /root/test.pem
2015-06-17 22:41:03 +00:00
driver: aws
2013-04-02 18:25:45 +00:00
2015-04-08 00:41:21 +00:00
.. note ::
2013-04-02 18:25:45 +00:00
2015-04-08 00:41:21 +00:00
In the cloud profile that uses this provider configuration, the syntax for the
`` provider `` required field would be either `` provider: my-aws-quick-start ``
or `` provider: my-aws-default `` .
2013-04-02 18:25:45 +00:00
2013-04-06 14:08:24 +00:00
2012-07-13 07:26:16 +00:00
Linode
------
2014-01-10 20:26:40 +00:00
Linode requires a single API key, but the default root password also needs to
2013-04-02 18:25:45 +00:00
be set:
.. code-block :: yaml
2013-04-06 14:08:24 +00:00
my-linode-config:
2013-04-02 18:25:45 +00:00
apikey: asldkgfakl;sdfjsjaslfjaklsdjf;askldjfaaklsjdfhasldsadfghdkf
password: F00barbaz
2014-08-28 03:27:52 +00:00
ssh_pubkey: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKHEOLLbeXgaqRQT9NBAopVz366SdYc0KKX33vAnq+2R user@host
ssh_key_file: ~/.ssh/id_ed25519
2015-06-17 22:41:03 +00:00
driver: linode
2013-04-02 18:25:45 +00:00
2014-12-12 19:32:16 +00:00
The password needs to be 8 characters and contain lowercase, uppercase, and
2012-07-13 07:26:16 +00:00
numbers.
2012-08-01 15:25:26 +00:00
2015-04-08 00:41:21 +00:00
.. note ::
2013-04-02 18:25:45 +00:00
2015-04-08 00:41:21 +00:00
In the cloud profile that uses this provider configuration, the syntax for the
`` provider `` required field would be `` provider: my-linode-config ``
2012-08-01 15:25:26 +00:00
2015-04-08 00:41:21 +00:00
Joyent Cloud
------------
2013-04-02 18:25:45 +00:00
2015-04-08 00:41:21 +00:00
The Joyent cloud requires three configuration parameters: The username and
password that are used to log into the Joyent system, as well as the location
of the private SSH key associated with the Joyent account. The SSH key is needed
to send the provisioning commands up to the freshly created virtual machine.
2013-04-02 18:25:45 +00:00
.. code-block :: yaml
2013-04-06 14:08:24 +00:00
my-joyent-config:
2015-04-08 00:41:21 +00:00
user: fred
password: saltybacon
private_key: /root/joyent.pem
2015-06-17 22:41:03 +00:00
driver: joyent
2013-04-02 18:25:45 +00:00
2015-04-08 00:41:21 +00:00
.. note ::
2013-04-02 18:25:45 +00:00
2015-04-08 00:41:21 +00:00
In the cloud profile that uses this provider configuration, the syntax for the
`` provider `` required field would be `` provider: my-joyent-config ``
2013-04-02 18:25:45 +00:00
2012-08-01 15:25:26 +00:00
GoGrid
------
2015-04-08 00:41:21 +00:00
To use Salt Cloud with GoGrid, log into the GoGrid web interface and create an
2014-01-10 20:26:40 +00:00
API key. Do this by clicking on "My Account" and then going to the API Keys
2013-04-02 18:25:45 +00:00
tab.
2015-04-08 00:41:21 +00:00
The `` apikey `` and the `` sharedsecret `` configuration parameters need to
2013-04-02 18:25:45 +00:00
be set in the configuration file to enable interfacing with GoGrid:
2012-08-01 15:25:26 +00:00
2013-04-02 18:25:45 +00:00
.. code-block :: yaml
2013-04-06 14:08:24 +00:00
my-gogrid-config:
2013-04-02 18:25:45 +00:00
apikey: asdff7896asdh789
sharedsecret: saltybacon
2015-06-17 22:41:03 +00:00
driver: gogrid
2013-04-02 18:25:45 +00:00
2015-04-08 00:41:21 +00:00
.. note ::
2013-04-02 18:25:45 +00:00
2015-04-08 00:41:21 +00:00
In the cloud profile that uses this provider configuration, the syntax for the
`` provider `` required field would be `` provider: my-gogrid-config `` .
2013-04-02 18:25:45 +00:00
2012-11-16 21:50:51 +00:00
OpenStack
---------
2014-01-10 20:26:40 +00:00
OpenStack configuration differs between providers, and at the moment several
options need to be specified. This module has been officially tested against
the HP and the Rackspace implementations, and some examples are provided for
2012-11-16 21:50:51 +00:00
both.
2013-04-02 18:25:45 +00:00
.. code-block :: yaml
# For HP
2013-04-06 14:08:24 +00:00
my-openstack-hp-config:
2014-01-10 20:26:40 +00:00
identity_url:
2013-04-02 18:25:45 +00:00
'https://region-a.geo-1.identity.hpcloudsvc.com:35357/v2.0/'
compute_name: Compute
compute_region: 'az-1.region-a.geo-1'
tenant: myuser-tenant1
user: myuser
ssh_key_name: mykey
ssh_key_file: '/etc/salt/hpcloud/mykey.pem'
password: mypass
2015-06-17 22:41:03 +00:00
driver: openstack
2013-04-02 18:25:45 +00:00
# For Rackspace
2013-04-06 14:08:24 +00:00
my-openstack-rackspace-config:
2013-04-02 18:25:45 +00:00
identity_url: 'https://identity.api.rackspacecloud.com/v2.0/tokens'
compute_name: cloudServersOpenStack
protocol: ipv4
compute_region: DFW
protocol: ipv4
user: myuser
tenant: 5555555
password: mypass
2015-06-17 22:41:03 +00:00
driver: openstack
2013-04-02 18:25:45 +00:00
2014-01-10 20:26:40 +00:00
If you have an API key for your provider, it may be specified instead of a
2013-04-02 18:25:45 +00:00
password:
.. code-block :: yaml
2013-04-06 14:08:24 +00:00
my-openstack-hp-config:
2013-04-02 18:25:45 +00:00
apikey: 901d3f579h23c8v73q9
2013-04-06 14:08:24 +00:00
my-openstack-rackspace-config:
2013-04-02 18:25:45 +00:00
apikey: 901d3f579h23c8v73q9
2015-04-08 00:41:21 +00:00
.. note ::
2013-04-02 18:25:45 +00:00
2015-04-08 00:41:21 +00:00
In the cloud profile that uses this provider configuration, the syntax for the
`` provider `` required field would be either `` provider: my-openstack-hp-config ``
or `` provider: my-openstack-rackspace-config `` .
2013-04-02 18:25:45 +00:00
2014-12-12 19:32:16 +00:00
You will certainly need to configure the `` user `` , `` tenant `` , and either
2013-02-28 07:58:11 +00:00
`` password `` or `` apikey `` .
2013-03-18 08:12:28 +00:00
If your OpenStack instances only have private IP addresses and a CIDR range of
private addresses are not reachable from the salt-master, you may set your
2015-04-08 00:41:21 +00:00
preference to have Salt ignore it:
2013-04-02 18:25:45 +00:00
.. code-block :: yaml
2013-04-06 14:08:24 +00:00
my-openstack-config:
2013-04-02 18:25:45 +00:00
ignore_cidr: 192.168.0.0/16
2014-01-10 20:26:40 +00:00
For in-house OpenStack Essex installation, libcloud needs the service_type :
2013-09-17 09:49:03 +00:00
.. code-block :: yaml
2015-04-08 00:41:21 +00:00
my-openstack-config:
identity_url: 'http://control.openstack.example.org:5000/v2.0/'
compute_name : Compute Service
service_type : compute
2013-09-17 09:49:03 +00:00
2014-08-08 19:16:37 +00:00
DigitalOcean
2015-04-08 00:41:21 +00:00
------------
2013-04-08 23:28:44 +00:00
2015-04-08 00:41:21 +00:00
Using Salt for DigitalOcean requires a `` client_key `` and an `` api_key `` . These
can be found in the DigitalOcean web interface, in the "My Settings" section,
under the API Access tab.
2015-05-22 17:57:42 +00:00
2013-04-08 23:28:44 +00:00
.. code-block :: yaml
my-digitalocean-config:
2015-06-17 22:41:03 +00:00
driver: digital_ocean
2014-09-16 14:20:49 +00:00
personal_access_token: xxx
2013-06-01 20:36:32 +00:00
location: New York 1
2013-04-08 23:28:44 +00:00
2015-04-08 00:41:21 +00:00
.. note ::
2013-04-08 23:28:44 +00:00
2015-04-08 00:41:21 +00:00
In the cloud profile that uses this provider configuration, the syntax for the
`` provider `` required field would be `` provider: my-digital-ocean-config `` .
2013-04-08 23:28:44 +00:00
Parallels
---------
2015-04-08 00:41:21 +00:00
Using Salt with Parallels requires a `` user `` , `` password `` and `` URL `` . These
can be obtained from your cloud provider.
2013-04-08 23:28:44 +00:00
.. code-block :: yaml
my-parallels-config:
user: myuser
password: xyzzy
url: https://api.cloud.xmission.com:4465/paci/v1.0/
2015-06-17 22:41:03 +00:00
driver: parallels
2013-04-08 23:28:44 +00:00
2015-04-08 00:41:21 +00:00
.. note ::
In the cloud profile that uses this provider configuration, the syntax for the
`` provider `` required field would be `` provider: my-parallels-config `` .
2013-04-08 23:28:44 +00:00
2014-03-22 16:44:59 +00:00
Proxmox
2015-04-08 00:41:21 +00:00
-------
2014-03-22 16:44:59 +00:00
2015-04-08 00:41:21 +00:00
Using Salt with Proxmox requires a `` user `` , `` password `` , and `` URL `` . These can be
2014-03-22 16:44:59 +00:00
obtained from your cloud provider. Both PAM and PVE users can be used.
2013-04-08 23:28:44 +00:00
2014-03-22 16:44:59 +00:00
.. code-block :: yaml
2014-03-22 16:54:38 +00:00
2014-03-22 16:44:59 +00:00
my-proxmox-config:
2015-06-17 22:41:03 +00:00
driver: proxmox
2014-03-22 16:44:59 +00:00
user: saltcloud@pve
password: xyzzy
url: your.proxmox.host
2014-10-30 04:53:08 +00:00
2015-04-08 00:41:21 +00:00
.. note ::
In the cloud profile that uses this provider configuration, the syntax for the
`` provider `` required field would be `` provider: my-proxmox-config `` .
LXC
2014-02-28 16:43:35 +00:00
---
2015-04-08 00:41:21 +00:00
The lxc driver uses saltify to install salt and attach the lxc container as a new lxc
minion. As soon as we can, we manage baremetal operation over SSH. You can also destroy
those containers via this driver.
2014-02-28 16:43:35 +00:00
.. code-block :: yaml
devhost10-lxc:
target: devhost10
2015-06-17 22:41:03 +00:00
driver: lxc
2014-02-28 16:43:35 +00:00
And in the map file:
.. code-block :: yaml
devhost10-lxc:
2015-06-17 22:41:03 +00:00
driver: devhost10-lxc
2014-02-28 16:43:35 +00:00
from_container: ubuntu
backing: lvm
sudo: True
size: 3g
ip: 10.0.3.9
minion:
master: 10.5.0.1
master_port: 4506
lxc_conf:
- lxc.utsname: superlxc
2013-04-05 17:00:30 +00:00
2015-04-08 00:41:21 +00:00
.. note ::
In the cloud profile that uses this provider configuration, the syntax for the
2015-05-27 02:48:03 +00:00
`` provider `` required field would be `` provider: devhost10-lxc `` .
2015-04-08 00:41:21 +00:00
2013-11-19 19:09:23 +00:00
.. _config_saltify:
2013-04-08 23:28:44 +00:00
Saltify
-------
The Saltify driver is a new, experimental driver for installing Salt on
existing machines (virtual or bare metal). Because it does not use an actual
cloud provider, it needs no configuration in the main cloud config file.
However, it does still require a profile to be set up, and is most useful when
used inside a map file. The key parameters to be set are `` ssh_host `` ,
`` ssh_username `` and either `` ssh_keyfile `` or `` ssh_password `` . These may all
be set in either the profile or the map. An example configuration might use the
following in cloud.profiles:
.. code-block :: yaml
make_salty:
2015-06-17 22:41:03 +00:00
driver: saltify
2013-04-08 23:28:44 +00:00
And in the map file:
.. code-block :: yaml
make_salty:
- myinstance:
ssh_host: 54.262.11.38
ssh_username: ubuntu
ssh_keyfile: '/etc/salt/mysshkey.pem'
sudo: True
2015-04-08 00:41:21 +00:00
.. note ::
In the cloud profile that uses this provider configuration, the syntax for the
`` provider `` required field would be `` provider: make_salty `` .
2013-04-08 23:28:44 +00:00
2013-04-05 17:00:30 +00:00
Extending Profiles and Cloud Providers Configuration
====================================================
2014-01-10 20:26:40 +00:00
As of 0.8.7, the option to extend both the profiles and cloud providers
configuration and avoid duplication was added. The extends feature works on the
current profiles configuration, but, regarding the cloud providers
configuration, **only** works in the new syntax and respective configuration
files, i.e. `` /etc/salt/salt/cloud.providers `` or
2013-04-05 17:00:30 +00:00
`` /etc/salt/cloud.providers.d/*.conf `` .
2014-06-28 00:55:52 +00:00
.. note ::
Extending cloud profiles and providers is not recursive. For example, a
profile that is extended by a second profile is possible, but the second
profile cannot be extended by a third profile.
Also, if a profile (or provider) is extending another profile and each
contains a list of values, the lists from the extending profile will
override the list from the original profile. The lists are not merged
together.
2013-04-05 17:00:30 +00:00
Extending Profiles
------------------
2014-01-10 20:26:40 +00:00
Some example usage on how to use `` extends `` with profiles. Consider
2013-04-05 17:00:30 +00:00
`` /etc/salt/salt/cloud.profiles `` containing:
.. code-block :: yaml
development-instances:
2013-04-06 14:08:24 +00:00
provider: my-ec2-config
2014-09-27 17:09:08 +00:00
size: t1.micro
2013-04-05 17:00:30 +00:00
ssh_username: ec2_user
securitygroup:
- default
deploy: False
Amazon-Linux-AMI-2012.09-64bit:
image: ami-54cf5c3d
extends: development-instances
Fedora-17:
image: ami-08d97e61
extends: development-instances
CentOS-5:
2013-04-06 14:08:24 +00:00
provider: my-aws-config
2013-04-05 17:00:30 +00:00
image: ami-09b61d60
extends: development-instances
2014-01-10 20:26:40 +00:00
The above configuration, once parsed would generate the following profiles
2013-04-05 17:00:30 +00:00
data:
2013-04-06 14:50:20 +00:00
.. code-block :: python
2013-04-05 17:00:30 +00:00
[{'deploy': False,
'image': 'ami-08d97e61',
'profile': 'Fedora-17',
2013-04-06 14:08:24 +00:00
'provider': 'my-ec2-config',
2013-04-05 17:00:30 +00:00
'securitygroup': ['default'],
2014-09-27 17:09:08 +00:00
'size': 't1.micro',
2013-04-05 17:00:30 +00:00
'ssh_username': 'ec2_user'},
{'deploy': False,
'image': 'ami-09b61d60',
'profile': 'CentOS-5',
2013-04-06 14:08:24 +00:00
'provider': 'my-aws-config',
2013-04-05 17:00:30 +00:00
'securitygroup': ['default'],
2014-09-27 17:09:08 +00:00
'size': 't1.micro',
2013-04-05 17:00:30 +00:00
'ssh_username': 'ec2_user'},
{'deploy': False,
'image': 'ami-54cf5c3d',
'profile': 'Amazon-Linux-AMI-2012.09-64bit',
2013-04-06 14:08:24 +00:00
'provider': 'my-ec2-config',
2013-04-05 17:00:30 +00:00
'securitygroup': ['default'],
2014-09-27 17:09:08 +00:00
'size': 't1.micro',
2013-04-05 17:00:30 +00:00
'ssh_username': 'ec2_user'},
{'deploy': False,
'profile': 'development-instances',
2013-04-06 14:08:24 +00:00
'provider': 'my-ec2-config',
2013-04-05 17:00:30 +00:00
'securitygroup': ['default'],
2014-09-27 17:09:08 +00:00
'size': 't1.micro',
2013-04-05 17:00:30 +00:00
'ssh_username': 'ec2_user'}]
Pretty cool right?
2013-04-05 23:00:47 +00:00
Extending Providers
-------------------
2014-01-10 20:26:40 +00:00
Some example usage on how to use `` extends `` within the cloud providers
2013-04-05 23:00:47 +00:00
configuration. Consider `` /etc/salt/salt/cloud.providers `` containing:
.. code-block :: yaml
2013-04-06 14:08:24 +00:00
my-develop-envs:
2013-04-05 23:00:47 +00:00
- id: HJGRYCILJLKJYG
2013-04-06 16:21:59 +00:00
key: 'kdjgfsgm;woormgl/aserigjksjdhasdfgn'
keyname: test
securitygroup: quick-start
private_key: /root/test.pem
location: ap-southeast-1
availability_zone: ap-southeast-1b
2015-06-17 22:41:03 +00:00
driver: aws
2013-04-05 23:00:47 +00:00
- user: myuser@mycorp.com
2013-04-06 16:21:59 +00:00
password: mypass
ssh_key_name: mykey
ssh_key_file: '/etc/salt/ibm/mykey.pem'
location: Raleigh
2015-06-17 22:41:03 +00:00
driver: ibmsce
2013-04-05 23:00:47 +00:00
2013-04-06 14:08:24 +00:00
my-productions-envs:
2013-04-06 14:50:20 +00:00
- extends: my-develop-envs:ibmsce
2013-04-05 23:00:47 +00:00
user: my-production-user@mycorp.com
location: us-east-1
availability_zone: us-east-1
2013-04-06 14:50:20 +00:00
2014-01-10 20:26:40 +00:00
The above configuration, once parsed would generate the following providers
2013-04-06 14:50:20 +00:00
data:
.. code-block :: python
'providers': {
'my-develop-envs': [
{'availability_zone': 'ap-southeast-1b',
'id': 'HJGRYCILJLKJYG',
'key': 'kdjgfsgm;woormgl/aserigjksjdhasdfgn',
'keyname': 'test',
'location': 'ap-southeast-1',
'private_key': '/root/test.pem',
2015-06-17 22:41:03 +00:00
'driver': 'aws',
2013-04-06 14:50:20 +00:00
'securitygroup': 'quick-start'
},
{'location': 'Raleigh',
'password': 'mypass',
2015-06-17 22:41:03 +00:00
'driver': 'ibmsce',
2013-04-06 14:50:20 +00:00
'ssh_key_file': '/etc/salt/ibm/mykey.pem',
'ssh_key_name': 'mykey',
'user': 'myuser@mycorp.com'
}
],
'my-productions-envs': [
{'availability_zone': 'us-east-1',
'location': 'us-east-1',
'password': 'mypass',
2015-06-17 22:41:03 +00:00
'driver': 'ibmsce',
2013-04-06 14:50:20 +00:00
'ssh_key_file': '/etc/salt/ibm/mykey.pem',
'ssh_key_name': 'mykey',
'user': 'my-production-user@mycorp.com'
}
]
}