New Saltstack Salt formula
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Filip Pytloun b4b8059b21 Initial commit 9 years ago
debian Initial commit 9 years ago
metadata/service Initial commit 9 years ago
salt Initial commit 9 years ago
CHANGELOG.rst Initial commit 9 years ago
LICENSE Initial commit 9 years ago
README.rst Initial commit 9 years ago
VERSION Initial commit 9 years ago

README.rst


====
Salt
====

Salt is a new approach to infrastructure management. Easy enough to get running in minutes, scalable enough to manage tens of thousands of servers, and fast enough to communicate with them in seconds.

Salt delivers a dynamic communication bus for infrastructures that can be used for orchestration, remote execution, configuration management and much more.

Sample pillars
==============

Salt master
-----------

Salt master with base environment and pillar metadata source

.. code-block:: yaml

salt:
master:
enabled: true
command_timeout: 5
worker_threads: 2
pillar:
engine: salt
source:
engine: git
address: 'git@repo.domain.com:salt/pillar-demo.git'
branch: 'master'
base_environment: prd
environment:
prd:
enabled: true
formula:
linux:
source: git
address: 'git@repo.domain.com:salt/formula-linux.git'
branch: 'master'
salt:
source: git
address: 'git@repo.domain.com:salt/formula-salt.git'
branch: 'master'
openssh:
source: git
address: 'git@repo.domain.com:salt/formula-openssh.git'
branch: 'master'

Simple Salt master with base environment and custom states

.. code-block:: yaml

salt:
master:
...
environment:
base:
states:
- name: gitlab
source: git
address: 'git@repo.domain.cz:salt/state-gitlab.git'
branch: 'master'
formulas:
...

Salt master with reclass ENC

.. code-block:: yaml

salt:
master:
enabled: true
...
pillar:
engine: reclass
data_dir: /srv/salt/reclass

Salt master with windows repository

.. code-block:: yaml

salt:
master:
enabled: true
...
windows_repo:
type: git
address: 'git@repo.domain.com:salt/win-packages.git'

Salt master with API

.. code-block:: yaml

salt:
master:
...
api:
enabled: true
port: 8000

Salt master with preset minions

.. code-block:: yaml

salt:
master:
enabled: true
...
minions:
- name: 'node1.system.location.domain.com'

Salt master syndicate master of masters

.. code-block:: yaml

salt:
master:
enabled: true
...
syndic:
mode: master

Salt master syndicate (client) master

.. code-block:: yaml

salt:
master:
enabled: true
...
syndicate:
mode: client
host: master-master

Salt master with custom handlers

.. code-block:: yaml

salt:
master:
enabled: true
command_timeout: 5
worker_threads: 2
environments:
- name: base
states:
- source: git
address: 'git@repo.domain.com:salt/state-ubuntu.git'
branch: 'master'
pillar:
source: git
address: 'git@repo.domain.com:salt/pillar-demo.git'
branch: 'master'
handlers:
name: logstash
type: udp
bind:
host: 127.0.0.1
port: 9999
minion:
handlers:
- engine: udp
bind:
host: 127.0.0.1
port: 9999
- engine: zmq
bind:
host: 127.0.0.1
port: 9999

Salt minion
-----------

Simplest Salt minion

.. code-block:: yaml

salt:
minion:
enabled: true
master:
host: master.domain.com

Multi-master Salt minion

.. code-block:: yaml

salt:
minion:
enabled: true
masters:
- host: master1.domain.com
- host: master2.domain.com

Salt minion with salt mine options

salt:
minion:
enabled: true
master:
host: master.domain.com
mine:
interval: 60
module:
grains.items: []
network.interfaces: []

Salt minion with graphing dependencies

.. code-block:: yaml

salt:
minion:
enabled: true
graph_states: true
master:
host: master.domain.com

Salt control (cloud/virt)
-------------------------

Salt cloud with local OpenStack insecure (ignoring SSL cert errors) provider

.. code-block:: yaml

salt:
control:
enabled: true
provider:
openstack_account:
engine: openstack
insecure: true
region: RegionOne
identity_url: 'https://10.0.0.2:35357'
tenant: devops
user: user
password: 'password'
fixed_networks:
- 123d3332-18be-4d1d-8d4d-5f5a54456554e
floating_networks:
- public
ignore_cidr: 192.168.0.0/16

Salt cloud with Digital Ocean provider

.. code-block:: yaml

salt:
control:
enabled: true
provider:
dony1:
engine: digital_ocean
region: New York 1
client_key: xxxxxxx
api_key: xxxxxxx

Salt cloud with cluster definition

.. code-block:: yaml

salt:
control:
enabled: true
cluster:
devops_ase:
config:
engine: salt
host: 147.32.120.1
node:
proxy1.ase.cepsos.cz:
provider: cepsos_devops
image: Ubuntu12.04 x86_64
size: m1.medium
node1.ase.cepsos.cz:
provider: cepsos_devops
image: Ubuntu12.04 x86_64
size: m1.medium
node2.ase.cepsos.cz:
provider: cepsos_devops
image: Ubuntu12.04 x86_64
size: m1.medium
node3.ase.cepsos.cz:
provider: cepsos_devops
image: Ubuntu12.04 x86_64
size: m1.medium

Usage
=====

Working with salt-cloud

.. code-block:: bash

salt-cloud -m /path/to/map --assume-yes

Debug LIBCLOUD for salt-cloud connection

.. code-block:: bash

export LIBCLOUD_DEBUG=/dev/stderr; salt-cloud --list-sizes provider_name --log-level all

Read more
=========

* http://salt.readthedocs.org/en/latest/
* https://github.com/DanielBryan/salt-state-graph
* http://karlgrz.com/testing-salt-states-rapidly-with-docker/
* https://mywushublog.com/2013/03/configuration-management-with-salt-stack/
* http://russell.ballestrini.net/replace-the-nagios-scheduler-and-nrpe-with-salt-stack/
* https://github.com/saltstack-formulas/salt-formula
* http://docs.saltstack.com/en/latest/topics/tutorials/multimaster.html

salt-cloud
----------

* http://www.blog.sandro-mathys.ch/2013/07/setting-user-password-when-launching.html
* http://cloudinit.readthedocs.org/en/latest/topics/examples.html
* http://salt-cloud.readthedocs.org/en/latest/topics/install/index.html
* http://docs.saltstack.com/topics/cloud/digitalocean.html
* http://salt-cloud.readthedocs.org/en/latest/topics/rackspace.html
* http://salt-cloud.readthedocs.org/en/latest/topics/map.html
* http://docs.saltstack.com/en/latest/topics/tutorials/multimaster.html