Automated Cloud Provisioning with Salt Cloud¶
| Speaker: | Christer Edwards |
|---|---|
| Date: | 2013-02-23 |
What is it?¶
- Disclaimer: THIS IS BETA!
- Public cloud provisioning tool
- Integrate into cloud providers cleanly, quickly, easily
- Manage via maps and profiles
- Pre-installs Salt, but doesn’t have to be used
- Meant to be a generic cloud mgmt thingy
Configuration¶
- Configs are yaml
- Specify provider settings here, too.
- Multiple providers works too
/etc/salt/cloud:
minion:
master: salt.domain.tld
Profiles¶
- Designate VMs inside profile config
/etc/salt/cloud.profiles:
centos_linode:
provider: linode
image: CentoOS 6.2 64bit
size: Linode 512
minion:
master.salt.domain.tld
grains:
role: webserver
- Define Salt master and custom grains
- Allows you to assing roles, or different masters per providers
- See: Salt
syndics - Syndics are tiered masters (master -> sub-masters -> minions)
- e.g. one syndic master per cloud provider
- Controlled by master-master
- See: Salt
Maps¶
Specify a prfile and then machines to make from it
Example:
fedora_high: - redis1 - redis2 - redis3 centos_high: - mysql1 - mysql2 - mysql3
Then run it:
salt-cloud -m /path/to/map.file -P
-P= parallel exec- Map files can also include grains!
Bootstrapping Salt¶
Supports a few ways for strapping Salt onto new machines
script:(<0.8.4) config setting:fedora_linode: ... script: Fedora
salt-bootstrap(>=0.8.4) utilitysrc:
saltcloud/deployhas distro-specific insall scripts (e.g.Fedora.sh)>=0.8.4 if you omit
script:,salt-bootstrapis usedUpdate manually:
salt-cloud [-u|--update-boostrap]
No Deployment¶
- You can provision without deploying Salt
deploy: Falseorscript: Nonein profile- CLI:
salt-cloud --no-deploy -p <profile> <instance>
What’s coming?¶
- Salt 0.14.0 will include
salt-virt - KVM support (libvirt)
salt.run virt.querysalt.run virt.init $name $cpu $ram $image- Serve images from
salt://,http://,ftp://