blob: 941934dcf2553299be79c59b4c29a8a663f8d114 [file] [log] [blame]
Filip Pytlounb4b80592015-10-06 16:28:32 +02001
Filip Pytloune3a26ae2016-08-22 14:44:42 +02002====
Filip Pytlounb4b80592015-10-06 16:28:32 +02003Salt
4====
5
6Salt 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.
7
8Salt delivers a dynamic communication bus for infrastructures that can be used for orchestration, remote execution, configuration management and much more.
9
10Sample pillars
11==============
12
13Salt master
14-----------
15
Ales Komarek8ba9c0b2016-02-21 14:59:59 +010016Salt master with base production environment and pillar tree as metadata backend
Filip Pytlounb4b80592015-10-06 16:28:32 +020017
Ales Komarek8ba9c0b2016-02-21 14:59:59 +010018.. literalinclude:: tests/pillar/master_single_pillar.sls
19 :language: yaml
Filip Pytlounb4b80592015-10-06 16:28:32 +020020
Ales Komarek8ba9c0b2016-02-21 14:59:59 +010021Salt master with reclass ENC as metadata backend
Filip Pytlounb4b80592015-10-06 16:28:32 +020022
Ales Komarek8ba9c0b2016-02-21 14:59:59 +010023.. literalinclude:: tests/pillar/master_single_reclass.sls
24 :language: yaml
Filip Pytlounb4b80592015-10-06 16:28:32 +020025
26Salt master with API
27
Ales Komarekb2c8ff62016-08-22 00:20:01 +020028.. literalinclude:: tests/pillar/master_api.sls
29 :language: yaml
Ales Komarekcdb280f2016-07-27 15:37:51 +020030
31Salt master with defined user ACLs
32
Ales Komarekb2c8ff62016-08-22 00:20:01 +020033.. literalinclude:: tests/pillar/master_acl.sls
34 :language: yaml
Filip Pytlounb4b80592015-10-06 16:28:32 +020035
36Salt master with preset minions
37
38.. code-block:: yaml
39
40 salt:
41 master:
42 enabled: true
Filip Pytlounb4b80592015-10-06 16:28:32 +020043 minions:
44 - name: 'node1.system.location.domain.com'
45
Adam Tenglercaedd972016-05-04 16:44:00 +020046Salt master with alternative installation source and version (optional) - pip
47
48.. code-block:: yaml
49
50 salt:
51 master:
52 enabled: true
53 ...
54 source:
55 engine: pip
56 version: 2016.3.0rc2
57
Adam Tengler3eb85ad2016-05-06 02:52:40 +020058Salt master with specified formula to install through apt-get
59
60.. code-block:: yaml
61
62 salt:
63 master:
64 enabled: true
65 ...
66 environment:
67 prd:
68 keysone:
69 source: pkg
70 name: salt-formula-keystone
71
72Clone master branch of keystone formula as local feature branch
73
74.. code-block:: yaml
75
76 salt:
77 master:
78 enabled: true
79 ...
80 environment:
81 dev:
82 formula:
83 keystone:
84 source: git
85 address: git@github.com:openstack/salt-formula-keystone.git
86 revision: master
87 branch: feature
88
89Salt master with specified formula refs (for example for Gerrit review)
90
91.. code-block:: yaml
92
93 salt:
94 master:
95 enabled: true
96 ...
97 environment:
98 dev:
99 formula:
100 keystone:
101 source: git
102 address: https://git.openstack.org/openstack/salt-formula-keystone
103 revision: refs/changes/56/123456/1
104
Ales Komareka33b9052017-01-16 07:10:27 -0800105Salt syndic: Master of masters
Filip Pytlounb4b80592015-10-06 16:28:32 +0200106
107.. code-block:: yaml
108
109 salt:
110 master:
111 enabled: true
Ales Komareka33b9052017-01-16 07:10:27 -0800112 order_masters: True
Filip Pytlounb4b80592015-10-06 16:28:32 +0200113
Ales Komareka33b9052017-01-16 07:10:27 -0800114Salt syndic: Lower master
Filip Pytlounb4b80592015-10-06 16:28:32 +0200115
116.. code-block:: yaml
117
118 salt:
Ales Komareka33b9052017-01-16 07:10:27 -0800119 syndic:
Filip Pytlounb4b80592015-10-06 16:28:32 +0200120 enabled: true
Ales Komareka33b9052017-01-16 07:10:27 -0800121 master:
122 host: master-of-master-host
123 timeout: 5
Filip Pytlounb4b80592015-10-06 16:28:32 +0200124
Ales Komarek2c5e0802017-01-16 07:47:32 -0800125Salt syndic: Lower master with multi-master of masters
126
127.. code-block:: yaml
128
129 salt:
130 syndic:
131 enabled: true
132 masters:
133 - host: master-of-master-host1
134 - host: master-of-master-host2
135 timeout: 5
136
137
Filip Pytlounb4b80592015-10-06 16:28:32 +0200138Salt master with custom handlers
139
140.. code-block:: yaml
141
142 salt:
143 master:
144 enabled: true
Ales Komarek8ba9c0b2016-02-21 14:59:59 +0100145 handler:
146 handler01:
147 engine: udp
148 bind:
149 host: 127.0.0.1
150 port: 9999
Filip Pytlounb4b80592015-10-06 16:28:32 +0200151 minion:
Ales Komarek8ba9c0b2016-02-21 14:59:59 +0100152 handler:
153 handler01:
154 engine: udp
155 bind:
156 host: 127.0.0.1
157 port: 9999
158 handler02:
159 engine: zmq
160 bind:
161 host: 127.0.0.1
162 port: 9999
163
Jakub Pavlikd4859842016-05-23 10:48:04 +0200164Salt master peer for remote certificate sign.
165
166.. code-block:: yaml
167
168 salt:
169 master:
170 peer:
171 ".*":
172 - x509.sign_remote_certificate
Filip Pytlounb4b80592015-10-06 16:28:32 +0200173
Tomáš Kukrál8922aef2017-05-10 10:27:04 +0200174Configure verbosity of state output (used for `salt` command)
175
176.. code-block:: yaml
177
178 salt:
179 master:
Tomáš Kukrál044667b2017-05-11 10:12:15 +0200180 state_output: changes
Tomáš Kukrál8922aef2017-05-10 10:27:04 +0200181
Jiri Broulika0f46682017-04-20 22:45:01 +0200182Salt proxy
183----------
184
185Salt proxy pillar
186
187.. code-block:: yaml
188
189 salt:
190 minion:
191 proxy:
192 master: localhost
193 device:
194 vsrx01.mydomain.local:
195 enabled: true
196 engine: napalm
197 csr1000v.mydomain.local:
198 enabled: true
199 engine: napalm
200
201.. note:: This is pillar of the the real salt-minion
202
203
204Proxy pillar for IOS device
205
206.. code-block:: yaml
207
208 proxy:
209 proxytype: napalm
210 driver: ios
211 host: csr1000v.mydomain.local
212 username: root
213 passwd: r00tme
214
215.. note:: This is pillar of the node thats not able to run salt-minion itself
216
217
218Proxy pillar for JunOS device
219
220.. code-block:: yaml
221
222 proxy:
223 proxytype: napalm
224 driver: junos
225 host: vsrx01.mydomain.local
226 username: root
227 passwd: r00tme
228 optional_args:
229 config_format: set
230
231.. note:: This is pillar of the node thats not able to run salt-minion itself
232
Ales Komarek8fb1da82016-08-21 23:52:03 +0200233
234Salt SSH
235--------
236
237Salt SSH with sudoer using key
238
239.. literalinclude:: tests/pillar/master_ssh_minion_key.sls
240 :language: yaml
241
242Salt SSH with sudoer using password
243
244.. literalinclude:: tests/pillar/master_ssh_minion_password.sls
245 :language: yaml
246
247Salt SSH with root using password
248
249.. literalinclude:: tests/pillar/master_ssh_minion_root.sls
250 :language: yaml
251
252
Filip Pytlounb4b80592015-10-06 16:28:32 +0200253Salt minion
254-----------
255
Ales Komarek8ba9c0b2016-02-21 14:59:59 +0100256Simplest Salt minion setup with central configuration node
Filip Pytlounb4b80592015-10-06 16:28:32 +0200257
258.. code-block:: yaml
259
Ales Komarek8ba9c0b2016-02-21 14:59:59 +0100260.. literalinclude:: tests/pillar/minion_master.sls
261 :language: yaml
Filip Pytlounb4b80592015-10-06 16:28:32 +0200262
Ales Komarek8ba9c0b2016-02-21 14:59:59 +0100263Multi-master Salt minion setup
Filip Pytlounb4b80592015-10-06 16:28:32 +0200264
Ales Komarek8ba9c0b2016-02-21 14:59:59 +0100265.. literalinclude:: tests/pillar/minion_multi_master.sls
266 :language: yaml
Filip Pytlounb4b80592015-10-06 16:28:32 +0200267
268Salt minion with salt mine options
269
Ales Komarek8ba9c0b2016-02-21 14:59:59 +0100270.. literalinclude:: tests/pillar/minion_mine.sls
271 :language: yaml
Filip Pytlounb4b80592015-10-06 16:28:32 +0200272
273Salt minion with graphing dependencies
274
Ales Komarek8ba9c0b2016-02-21 14:59:59 +0100275.. literalinclude:: tests/pillar/minion_graph.sls
276 :language: yaml
Filip Pytlounb4b80592015-10-06 16:28:32 +0200277
Ondrej Smolac2d3e6f2017-03-26 17:52:40 +0200278Salt minion behind http proxy
279
280.. code-block:: yaml
281
282 salt:
283 minion:
284 proxy:
285 host: 127.0.0.1
286 port: 3128
287
Ales Komarekb2c8ff62016-08-22 00:20:01 +0200288PKI CA
289~~~~~~
290
Ales Komarek5d17e4b2016-04-08 11:53:53 +0200291Salt minion with PKI CA
292
293.. literalinclude:: tests/pillar/minion_pki_ca.sls
294 :language: yaml
295
296Salt minion with PKI certificate
297
298.. literalinclude:: tests/pillar/minion_pki_cert.sls
299 :language: yaml
Filip Pytlounb4b80592015-10-06 16:28:32 +0200300
Ales Komarek8fb1da82016-08-21 23:52:03 +0200301
Ales Komarek8ba9c0b2016-02-21 14:59:59 +0100302Salt control (cloud/kvm/docker)
303-------------------------------
Filip Pytlounb4b80592015-10-06 16:28:32 +0200304
Ales Komarek8ba9c0b2016-02-21 14:59:59 +0100305Salt cloud with local OpenStack provider
Filip Pytlounb4b80592015-10-06 16:28:32 +0200306
Ales Komarek8ba9c0b2016-02-21 14:59:59 +0100307.. literalinclude:: tests/pillar/control_cloud_openstack.sls
308 :language: yaml
Filip Pytlounb4b80592015-10-06 16:28:32 +0200309
310Salt cloud with Digital Ocean provider
311
Ales Komarek8ba9c0b2016-02-21 14:59:59 +0100312.. literalinclude:: tests/pillar/control_cloud_digitalocean.sls
313 :language: yaml
Filip Pytlounb4b80592015-10-06 16:28:32 +0200314
Ales Komarek8fb1da82016-08-21 23:52:03 +0200315Salt virt with KVM cluster
Filip Pytlounb4b80592015-10-06 16:28:32 +0200316
Ales Komarek8ba9c0b2016-02-21 14:59:59 +0100317.. literalinclude:: tests/pillar/control_virt.sls
318 :language: yaml
Filip Pytlounb4b80592015-10-06 16:28:32 +0200319
Filip Pytlounb4b80592015-10-06 16:28:32 +0200320
321Usage
322=====
323
324Working with salt-cloud
325
326.. code-block:: bash
327
328 salt-cloud -m /path/to/map --assume-yes
329
330Debug LIBCLOUD for salt-cloud connection
331
332.. code-block:: bash
333
334 export LIBCLOUD_DEBUG=/dev/stderr; salt-cloud --list-sizes provider_name --log-level all
335
Ales Komarek8ba9c0b2016-02-21 14:59:59 +0100336
Filip Pytlounb4b80592015-10-06 16:28:32 +0200337Read more
338=========
339
340* http://salt.readthedocs.org/en/latest/
341* https://github.com/DanielBryan/salt-state-graph
342* http://karlgrz.com/testing-salt-states-rapidly-with-docker/
343* https://mywushublog.com/2013/03/configuration-management-with-salt-stack/
344* http://russell.ballestrini.net/replace-the-nagios-scheduler-and-nrpe-with-salt-stack/
345* https://github.com/saltstack-formulas/salt-formula
346* http://docs.saltstack.com/en/latest/topics/tutorials/multimaster.html
347
Ales Komarek8ba9c0b2016-02-21 14:59:59 +0100348
Filip Pytlounb4b80592015-10-06 16:28:32 +0200349salt-cloud
350----------
351
352* http://www.blog.sandro-mathys.ch/2013/07/setting-user-password-when-launching.html
353* http://cloudinit.readthedocs.org/en/latest/topics/examples.html
354* http://salt-cloud.readthedocs.org/en/latest/topics/install/index.html
355* http://docs.saltstack.com/topics/cloud/digitalocean.html
356* http://salt-cloud.readthedocs.org/en/latest/topics/rackspace.html
357* http://salt-cloud.readthedocs.org/en/latest/topics/map.html
358* http://docs.saltstack.com/en/latest/topics/tutorials/multimaster.html
Ales Komarek8ba9c0b2016-02-21 14:59:59 +0100359
Filip Pytloun954dbd62017-02-02 13:02:03 +0100360
361Documentation and Bugs
362======================
363
364To learn how to install and update salt-formulas, consult the documentation
365available online at:
366
367 http://salt-formulas.readthedocs.io/
368
369In the unfortunate event that bugs are discovered, they should be reported to
370the appropriate issue tracker. Use Github issue tracker for specific salt
371formula:
372
373 https://github.com/salt-formulas/salt-formula-salt/issues
374
375For feature requests, bug reports or blueprints affecting entire ecosystem,
376use Launchpad salt-formulas project:
377
378 https://launchpad.net/salt-formulas
379
380You can also join salt-formulas-users team and subscribe to mailing list:
381
382 https://launchpad.net/~salt-formulas-users
383
384Developers wishing to work on the salt-formulas projects should always base
385their work on master branch and submit pull request against specific formula.
386
387 https://github.com/salt-formulas/salt-formula-salt
388
389Any questions or feedback is always welcome so feel free to join our IRC
390channel:
391
392 #salt-formulas @ irc.freenode.net