blob: d61fedb0f3ebc2a3835eff94526ae441aa76f452 [file] [log] [blame]
Filip Pytlounb4b80592015-10-06 16:28:32 +02001
Ales Komarek54740682017-05-15 07:16:23 +02002============
3Salt Formula
4============
Filip Pytlounb4b80592015-10-06 16:28:32 +02005
Ales Komarek54740682017-05-15 07:16:23 +02006Salt is a new approach to infrastructure management. Easy enough to get
7running in minutes, scalable enough to manage tens of thousands of servers,
8and fast enough to communicate with them in seconds.
Filip Pytlounb4b80592015-10-06 16:28:32 +02009
Ales Komarek54740682017-05-15 07:16:23 +020010Salt delivers a dynamic communication bus for infrastructures that can be used
11for orchestration, remote execution, configuration management and much more.
Filip Pytlounb4b80592015-10-06 16:28:32 +020012
Ales Komarek54740682017-05-15 07:16:23 +020013
14Sample Metadata
15===============
16
Filip Pytlounb4b80592015-10-06 16:28:32 +020017
Ales Komarekd768f1c2018-01-30 22:37:18 +010018Salt Master
Filip Pytlounb4b80592015-10-06 16:28:32 +020019-----------
20
Ales Komarek54740682017-05-15 07:16:23 +020021Salt master with base formulas and pillar metadata backend
Filip Pytlounb4b80592015-10-06 16:28:32 +020022
Ales Komarek8ba9c0b2016-02-21 14:59:59 +010023.. literalinclude:: tests/pillar/master_single_pillar.sls
24 :language: yaml
Filip Pytlounb4b80592015-10-06 16:28:32 +020025
Ales Komarek54740682017-05-15 07:16:23 +020026Salt master with reclass ENC metadata backend
Filip Pytlounb4b80592015-10-06 16:28:32 +020027
Ales Komarek8ba9c0b2016-02-21 14:59:59 +010028.. literalinclude:: tests/pillar/master_single_reclass.sls
29 :language: yaml
Filip Pytlounb4b80592015-10-06 16:28:32 +020030
Ales Komarek459407b2018-01-18 17:16:31 +010031Salt master with Architect ENC metadata backend
32
33.. code-block:: yaml
34
35 salt:
36 master:
37 enabled: true
38 pillar:
39 engine: architect
40 project: project-name
41 host: architect-api
42 port: 8181
43 username: salt
44 password: password
45
Petr Michalec1f541c42017-08-17 13:30:37 +020046Salt master with multiple ext_pillars
47
48.. literalinclude:: tests/pillar/master_single_extpillars.sls
49 :language: yaml
50
Filip Pytlounb4b80592015-10-06 16:28:32 +020051Salt master with API
52
Ales Komarekb2c8ff62016-08-22 00:20:01 +020053.. literalinclude:: tests/pillar/master_api.sls
54 :language: yaml
Ales Komarekcdb280f2016-07-27 15:37:51 +020055
56Salt master with defined user ACLs
57
Ales Komarekb2c8ff62016-08-22 00:20:01 +020058.. literalinclude:: tests/pillar/master_acl.sls
59 :language: yaml
Filip Pytlounb4b80592015-10-06 16:28:32 +020060
61Salt master with preset minions
62
63.. code-block:: yaml
64
65 salt:
66 master:
67 enabled: true
Filip Pytlounb4b80592015-10-06 16:28:32 +020068 minions:
69 - name: 'node1.system.location.domain.com'
70
Ales Komarek54740682017-05-15 07:16:23 +020071Salt master with pip based installation (optional)
Adam Tenglercaedd972016-05-04 16:44:00 +020072
73.. code-block:: yaml
74
75 salt:
76 master:
77 enabled: true
78 ...
79 source:
80 engine: pip
81 version: 2016.3.0rc2
82
Ales Komarek54740682017-05-15 07:16:23 +020083Install formula through system package management
Adam Tengler3eb85ad2016-05-06 02:52:40 +020084
85.. code-block:: yaml
86
87 salt:
88 master:
89 enabled: true
90 ...
91 environment:
92 prd:
Petr Michalec7a2f1d22017-05-17 22:08:32 +020093 keystone:
Adam Tengler3eb85ad2016-05-06 02:52:40 +020094 source: pkg
95 name: salt-formula-keystone
Petr Michalec7a2f1d22017-05-17 22:08:32 +020096 nova:
97 source: pkg
98 name: salt-formula-keystone
99 version: 0.1+0~20160818133412.24~1.gbp6e1ebb
100 postresql:
101 source: pkg
102 name: salt-formula-postgresql
103 version: purged
104
105Formula keystone is installed latest version and the formulas without version are installed in one call to aptpkg module.
106If the version attribute is present sls iterates over formulas and take action to install specific version or remove it.
107The version attribute may have these values ``[latest|purged|removed|<VERSION>]``.
Adam Tengler3eb85ad2016-05-06 02:52:40 +0200108
109Clone master branch of keystone formula as local feature branch
110
111.. code-block:: yaml
112
113 salt:
114 master:
115 enabled: true
116 ...
117 environment:
118 dev:
119 formula:
120 keystone:
121 source: git
122 address: git@github.com:openstack/salt-formula-keystone.git
123 revision: master
124 branch: feature
125
126Salt master with specified formula refs (for example for Gerrit review)
127
128.. code-block:: yaml
129
130 salt:
131 master:
132 enabled: true
133 ...
134 environment:
135 dev:
136 formula:
137 keystone:
138 source: git
139 address: https://git.openstack.org/openstack/salt-formula-keystone
140 revision: refs/changes/56/123456/1
141
Oleksii Chupryn7b7102a2018-05-11 10:32:11 +0300142Salt master logging configuration
143
144.. code-block:: yaml
145
146 salt:
147 master:
148 enabled: true
149 log:
150 level: warning
151 file: '/var/log/salt/master'
152 level_logfile: warning
153
154Salt minion logging configuration
155
156.. code-block:: yaml
157
158 salt:
159 minion:
160 enabled: true
161 log:
162 level: info
163 file: '/var/log/salt/minion'
164 level_logfile: warning
165
Ales Komarek54740682017-05-15 07:16:23 +0200166Salt master with logging handlers
Filip Pytlounb4b80592015-10-06 16:28:32 +0200167
168.. code-block:: yaml
169
170 salt:
171 master:
172 enabled: true
Ales Komarek8ba9c0b2016-02-21 14:59:59 +0100173 handler:
174 handler01:
175 engine: udp
176 bind:
177 host: 127.0.0.1
178 port: 9999
Filip Pytlounb4b80592015-10-06 16:28:32 +0200179 minion:
Ales Komarek8ba9c0b2016-02-21 14:59:59 +0100180 handler:
181 handler01:
182 engine: udp
183 bind:
184 host: 127.0.0.1
185 port: 9999
186 handler02:
187 engine: zmq
188 bind:
189 host: 127.0.0.1
190 port: 9999
191
Ales Komareka9fc6e72017-09-06 15:02:40 +0200192Salt engine definition for saltgraph metadata collector
193
194.. code-block:: yaml
195
196 salt:
197 master:
198 engine:
199 graph_metadata:
200 engine: saltgraph
201 host: 127.0.0.1
202 port: 5432
203 user: salt
204 password: salt
205 database: salt
206
Ales Komarek459407b2018-01-18 17:16:31 +0100207Salt engine definition for Architect service
208
209.. code-block:: yaml
210
211 salt:
212 master:
213 engine:
214 architect:
215 engine: architect
216 project: project-name
217 host: architect-api
218 port: 8181
219 username: salt
220 password: password
221
Ales Komareka9fc6e72017-09-06 15:02:40 +0200222Salt engine definition for sending events from docker events
223
224.. code-block:: yaml
225
226 salt:
227 master:
228 engine:
229 docker_events:
230 docker_url: unix://var/run/docker.sock
231
Ales Komarek54740682017-05-15 07:16:23 +0200232Salt master peer setup for remote certificate signing
Jakub Pavlikd4859842016-05-23 10:48:04 +0200233
234.. code-block:: yaml
235
236 salt:
237 master:
238 peer:
239 ".*":
240 - x509.sign_remote_certificate
Filip Pytlounb4b80592015-10-06 16:28:32 +0200241
Ales Komarekb2ada522017-12-07 11:31:32 +0100242
243Salt master backup configuration
244
245.. code-block:: yaml
246
247 salt:
248 master:
249 backup: true
250 initial_data:
251 engine: backupninja
Jiri Broulik3e281642018-03-02 18:17:21 +0100252 home_dir: remote-backup-home-dir
Ales Komarekb2ada522017-12-07 11:31:32 +0100253 source: backup-node-host
254 host: original-salt-master-id
255
Tomáš Kukrál8922aef2017-05-10 10:27:04 +0200256Configure verbosity of state output (used for `salt` command)
257
258.. code-block:: yaml
259
260 salt:
261 master:
Tomáš Kukrál044667b2017-05-11 10:12:15 +0200262 state_output: changes
Tomáš Kukrál8922aef2017-05-10 10:27:04 +0200263
Ales Komarekd768f1c2018-01-30 22:37:18 +0100264Pass pillar render error to minion log
265
266.. note:: When set to `False` this option is great for debuging.
267 However it is not recomended for any production environment as it may contain
268 templating data as passwords, etc... , that minion should not expose.
269
270.. code-block:: yaml
271
272 salt:
273 master:
274 pillar_safe_render_error: False
275
276
277Event/Reactor Systems
278~~~~~~~~~~~~~~~~~~~~~
Petr Michalec1f541c42017-08-17 13:30:37 +0200279
Ales Komareke7844d12017-06-08 12:00:01 +0200280Salt synchronise node pillar and modules after start
Ales Komarek54740682017-05-15 07:16:23 +0200281
282.. code-block:: yaml
283
284 salt:
285 master:
286 reactor:
287 salt/minion/*/start:
Ales Komareke7844d12017-06-08 12:00:01 +0200288 - salt://salt/reactor/node_start.sls
Ales Komarek54740682017-05-15 07:16:23 +0200289
Ales Komareke7844d12017-06-08 12:00:01 +0200290Trigger basic node install
291
292.. code-block:: yaml
293
294 salt:
295 master:
296 reactor:
297 salt/minion/install:
298 - salt://salt/reactor/node_install.sls
299
300Sample event to trigger the node installation
301
302.. code-block:: bash
303
304 salt-call event.send 'salt/minion/install'
305
Ales Komarek213fbe02017-08-21 16:39:05 +0200306Run any defined orchestration pipeline
Ales Komarek5c58de32017-06-06 11:49:32 +0200307
308.. code-block:: yaml
309
310 salt:
311 master:
312 reactor:
313 salt/orchestrate/start:
314 - salt://salt/reactor/orchestrate_start.sls
315
Ales Komareke7844d12017-06-08 12:00:01 +0200316Event to trigger the orchestration pipeline
Ales Komarek5c58de32017-06-06 11:49:32 +0200317
318.. code-block:: bash
319
Ales Komareke7844d12017-06-08 12:00:01 +0200320 salt-call event.send 'salt/orchestrate/start' "{'orchestrate': 'salt/orchestrate/infra_install.sls'}"
Ales Komarek5c58de32017-06-06 11:49:32 +0200321
Ales Komarek3ed7c432017-08-24 16:15:49 +0200322Synchronise modules and pillars on minion start.
323
324.. code-block:: yaml
325
326 salt:
327 master:
328 reactor:
329 'salt/minion/*/start':
330 - salt://salt/reactor/minion_start.sls
331
Ales Komarek213fbe02017-08-21 16:39:05 +0200332Add and/or remove the minion key
Ales Komarek5c58de32017-06-06 11:49:32 +0200333
334.. code-block:: yaml
335
336 salt:
337 master:
338 reactor:
Ales Komarek213fbe02017-08-21 16:39:05 +0200339 salt/key/create:
340 - salt://salt/reactor/key_create.sls
341 salt/key/remove:
342 - salt://salt/reactor/key_remove.sls
Ales Komarek5c58de32017-06-06 11:49:32 +0200343
Ales Komarek213fbe02017-08-21 16:39:05 +0200344Event to trigger the key creation
Ales Komarek5c58de32017-06-06 11:49:32 +0200345
346.. code-block:: bash
347
Adam Tengler62188962017-09-04 13:34:44 +0000348 salt-call event.send 'salt/key/create' \
349 > "{'node_id': 'id-of-minion', 'node_host': '172.16.10.100', 'orch_post_create': 'kubernetes.orchestrate.compute_install', 'post_create_pillar': {'node_name': 'id-of-minion'}}"
Ales Komarek5c58de32017-06-06 11:49:32 +0200350
Ales Komarek213fbe02017-08-21 16:39:05 +0200351.. note::
352
353 You can add pass additional `orch_pre_create`, `orch_post_create`,
354 `orch_pre_remove` or `orch_post_remove` parameters to the event to call
355 extra orchestrate files. This can be useful for example for
356 registering/unregistering nodes from the monitoring alarms or dashboards.
357
358 The key creation event needs to be run from other machine than the one
359 being registered.
360
361Event to trigger the key removal
362
363.. code-block:: bash
364
365 salt-call event.send 'salt/key/remove'
Ales Komarek54740682017-05-15 07:16:23 +0200366
Dzmitry Stremkouski7ee23402018-04-10 00:43:48 +0200367Control VM provisioning
368
369.. code-block:: yaml
370
371 virt:
372 disk:
373 three_disks:
374 - system:
375 size: 4096
376 image: ubuntu.qcow
377 - repository_snapshot:
378 size: 8192
379 image: snapshot.qcow
380 - cinder-volume:
381 size: 2048
Ondrej Smolae6bcb292018-04-13 10:56:39 +0200382 nic:
383 control:
384 - name: nic01
385 bridge: br-pxe
386 model: virtio
387 - name: nic02
388 bridge: br-cp
389 model: virtio
390 - name: nic03
391 bridge: br-store-front
392 model: virtio
393 - name: nic04
394 bridge: br-public
395 model: virtio
396
Dzmitry Stremkouski7ee23402018-04-10 00:43:48 +0200397
398 salt:
399 control:
400 enabled: true
401 virt_enabled: true
402 size:
403 medium_three_disks:
404 cpu: 2
405 ram: 4
406 disk_profile: three_disks
407 cluster:
408 mycluster:
409 domain: neco.virt.domain.com
410 engine: virt
Ondrej Smolac7f6cfc2018-05-21 15:55:08 +0200411 #Option to set rng globaly
412 rng: false
Dzmitry Stremkouski7ee23402018-04-10 00:43:48 +0200413 node:
414 ubuntu1:
415 provider: node01.domain.com
416 image: ubuntu.qcow
417 size: medium
418 img_dest: /var/lib/libvirt/ssdimages
Ondrej Smolac7f6cfc2018-05-21 15:55:08 +0200419 #Rng defined on node will have higher priority then global one
Dzmitry Stremkouski7ee23402018-04-10 00:43:48 +0200420 rng:
421 backend: /dev/urandom
422 model: random
423 rate:
424 period: '1800'
425 bytes: '1500'
Ondrej Smolae6bcb292018-04-13 10:56:39 +0200426 mac:
427 nic01: AC:DE:48:AA:AA:AA
428 nic02: AC:DE:48:AA:AA:BB
429
430
Petr Michalec1f541c42017-08-17 13:30:37 +0200431
Petr Michalecdf75d682018-02-07 13:43:53 +0100432Jinja options
433-------------
434
435Use following options to update default jinja renderer options. Salt recognize Jinja options for templates and for sls files.
436
437For full list of options check jinja documentation: http://jinja.pocoo.org/docs/api/#high-level-api.
438
439.. code-block:: yaml
440
441
442 salt:
443 renderer:
444 # for templates
445 jinja: &jina_env
446 # Default Jinja environment options
447 block_start_string: '{%'
448 block_end_string: '%}'
449 variable_start_string: '{{'
450 variable_end_string: '}}'
451 comment_start_string: '{#'
452 comment_end_string: '#}'
453 keep_trailing_newline: False
454 newline_sequence: '\n'
455
456 # Next two are enabled by default in Salt
457 trim_blocks: True
458 lstrip_blocks: True
459
460 # Next two are not enabled by default in Salt
461 # but worth to consider to enable in future for salt-formulas
462 line_statement_prefix: '%'
463 line_comment_prefix: '##'
464
465 # for .sls state files
466 jinja_sls: *jinja_env
467
468
469
470With the line_statement/comment* _prefix options enabled following code statements are valid:
471
472.. code-block:: yaml
473 %- set myvar = 'one'
474
475 ## You can mix even with '{%'
476 {%- set myvar = 'two' %} ## comment
477 %- set mylist = ['one', 'two', 'three'] ## comment
478
479 ## comment
480 %- for item in mylist: ## comment
481 {{- item }}
482 %- endfor
483
484
485Encrypted pillars
Ales Komarekd768f1c2018-01-30 22:37:18 +0100486~~~~~~~~~~~~~~~~~
Petr Michalec1f541c42017-08-17 13:30:37 +0200487
488Note: NACL + below configuration will be available in Salt > 2017.7.
489
490External resources:
491
492- Tutorial to configure salt + reclass ext_pillar and nacl: http://apealive.net/post/2017-09-salt-nacl-ext-pillar/
493- Saltstack documentation: https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.nacl.html
494
495Configure salt NACL module:
496
497.. code-block:: shell
498
499 pip install --upgrade libnacl===1.5.2
500 salt-call --local nacl.keygen /etc/salt/pki/master/nacl
501
502 local:
503 saved sk_file:/etc/salt/pki/master/nacl pk_file: /etc/salt/pki/master/nacl.pub
504
505
506.. code-block:: yaml
507
508 salt:
509 master:
510 pillar:
511 reclass: *reclass
512 nacl:
513 index: 99
514 nacl:
515 box_type: sealedbox
516 sk_file: /etc/salt/pki/master/nacl
517 pk_file: /etc/salt/pki/master/nacl.pub
518 #sk: None
519 #pk: None
520
521NACL encrypt secrets:
522
523 salt-call --local nacl.enc 'my_secret_value' pk_file=/etc/salt/pki/master/nacl.pub
524 hXTkJpC1hcKMS7yZVGESutWrkvzusXfETXkacSklIxYjfWDlMJmR37MlmthdIgjXpg4f2AlBKb8tc9Woma7q
525 # or
526 salt-run nacl.enc 'myotherpass'
527 ADDFD0Rav6p6+63sojl7Htfrncp5rrDVyeE4BSPO7ipq8fZuLDIVAzQLf4PCbDqi+Fau5KD3/J/E+Pw=
528
529
530NACL encrypted values on pillar:
531
532Use Boxed syntax `NACL[CryptedValue=]` to encode value on pillar:
533
534.. code-block:: yaml
535
536 my_pillar:
537 my_nacl:
538 key0: unencrypted_value
539 key1: NACL[hXTkJpC1hcKMS7yZVGESutWrkvzusXfETXkacSklIxYjfWDlMJmR37MlmthdIgjXpg4f2AlBKb8tc9Woma7q]
540
541NACL large files:
542
543.. code-block:: shell
544 salt-call nacl.enc_file /tmp/cert.crt out=/srv/salt/env/dev/cert.nacl
545 # or more advanced
546 cert=$(cat /tmp/cert.crt)
547 salt-call --out=newline_values_only nacl.enc_pub data="$cert" > /srv/salt/env/dev/cert.nacl
548
549
550NACL within template/native pillars:
551
552 pillarexample:
553 user: root
554 password1: {{salt.nacl.dec('DRB7Q6/X5gGSRCTpZyxS6hlbWj0llUA+uaVyvou3vJ4=')|json}}
555 cert_key: {{salt.nacl.dec_file('/srv/salt/env/dev/certs/example.com/cert.nacl')|json}}
556 cert_key2: {{salt.nacl.dec_file('salt:///certs/example.com/cert2.nacl')|json}}
557
Ales Komarekd768f1c2018-01-30 22:37:18 +0100558
559Salt Syndic
Ales Komarek54740682017-05-15 07:16:23 +0200560-----------
561
562The master of masters
563
564.. code-block:: yaml
565
566 salt:
567 master:
568 enabled: true
569 order_masters: True
570
571Lower syndicated master
572
573.. code-block:: yaml
574
575 salt:
576 syndic:
577 enabled: true
578 master:
579 host: master-of-master-host
580 timeout: 5
581
582Syndicated master with multiple master of masters
583
584.. code-block:: yaml
585
586 salt:
587 syndic:
588 enabled: true
589 masters:
590 - host: master-of-master-host1
591 - host: master-of-master-host2
592 timeout: 5
593
594
Ales Komarekd768f1c2018-01-30 22:37:18 +0100595Salt Minion
596-----------
597
598Simplest Salt minion setup with central configuration node
599
600.. code-block:: yaml
601
602.. literalinclude:: tests/pillar/minion_master.sls
603 :language: yaml
604
605Multi-master Salt minion setup
606
607.. literalinclude:: tests/pillar/minion_multi_master.sls
608 :language: yaml
609
610Salt minion with salt mine options
611
612.. literalinclude:: tests/pillar/minion_mine.sls
613 :language: yaml
614
615Salt minion with graphing dependencies
616
617.. literalinclude:: tests/pillar/minion_graph.sls
618 :language: yaml
619
620Salt minion behind HTTP proxy
621
622.. code-block:: yaml
623
624 salt:
625 minion:
626 proxy:
627 host: 127.0.0.1
628 port: 3128
629
630Salt minion to specify non-default HTTP backend. The default tornado backend
631does not respect HTTP proxy settings set as environment variables. This is
632useful for cases where you need to set no_proxy lists.
633
634.. code-block:: yaml
635
636 salt:
637 minion:
638 backend: urllib2
639
640
641Salt minion with PKI certificate authority (CA)
642
643.. literalinclude:: tests/pillar/minion_pki_ca.sls
644 :language: yaml
645
646Salt minion using PKI certificate
647
648.. literalinclude:: tests/pillar/minion_pki_cert.sls
649 :language: yaml
650
651Salt minion trust CA certificates issued by salt CA on a specific host (ie: salt-master node)
652
653.. code-block:: yaml
654
655 salt:
656 minion:
657 trusted_ca_minions:
658 - cfg01
659
660
661Salt Minion Proxy
662~~~~~~~~~~~~~~~~~
Jiri Broulika0f46682017-04-20 22:45:01 +0200663
664Salt proxy pillar
665
666.. code-block:: yaml
667
668 salt:
669 minion:
Jiri Broulik88275242017-05-24 17:21:17 +0200670 proxy_minion:
Jiri Broulika0f46682017-04-20 22:45:01 +0200671 master: localhost
672 device:
673 vsrx01.mydomain.local:
674 enabled: true
675 engine: napalm
676 csr1000v.mydomain.local:
677 enabled: true
678 engine: napalm
679
680.. note:: This is pillar of the the real salt-minion
681
682
683Proxy pillar for IOS device
684
685.. code-block:: yaml
686
687 proxy:
688 proxytype: napalm
689 driver: ios
690 host: csr1000v.mydomain.local
691 username: root
692 passwd: r00tme
693
694.. note:: This is pillar of the node thats not able to run salt-minion itself
695
696
697Proxy pillar for JunOS device
698
699.. code-block:: yaml
700
701 proxy:
702 proxytype: napalm
703 driver: junos
704 host: vsrx01.mydomain.local
705 username: root
706 passwd: r00tme
707 optional_args:
708 config_format: set
709
710.. note:: This is pillar of the node thats not able to run salt-minion itself
711
Ales Komarek8fb1da82016-08-21 23:52:03 +0200712
713Salt SSH
Ales Komarekd768f1c2018-01-30 22:37:18 +0100714~~~~~~~~
Ales Komarek8fb1da82016-08-21 23:52:03 +0200715
716Salt SSH with sudoer using key
717
718.. literalinclude:: tests/pillar/master_ssh_minion_key.sls
719 :language: yaml
720
721Salt SSH with sudoer using password
722
723.. literalinclude:: tests/pillar/master_ssh_minion_password.sls
724 :language: yaml
725
726Salt SSH with root using password
727
728.. literalinclude:: tests/pillar/master_ssh_minion_root.sls
729 :language: yaml
730
Ales Komarek8ba9c0b2016-02-21 14:59:59 +0100731Salt control (cloud/kvm/docker)
732-------------------------------
Filip Pytlounb4b80592015-10-06 16:28:32 +0200733
Ales Komarek8ba9c0b2016-02-21 14:59:59 +0100734Salt cloud with local OpenStack provider
Filip Pytlounb4b80592015-10-06 16:28:32 +0200735
Ales Komarek8ba9c0b2016-02-21 14:59:59 +0100736.. literalinclude:: tests/pillar/control_cloud_openstack.sls
737 :language: yaml
Filip Pytlounb4b80592015-10-06 16:28:32 +0200738
739Salt cloud with Digital Ocean provider
740
Ales Komarek8ba9c0b2016-02-21 14:59:59 +0100741.. literalinclude:: tests/pillar/control_cloud_digitalocean.sls
742 :language: yaml
Filip Pytlounb4b80592015-10-06 16:28:32 +0200743
Ales Komarek8fb1da82016-08-21 23:52:03 +0200744Salt virt with KVM cluster
Filip Pytlounb4b80592015-10-06 16:28:32 +0200745
Ales Komarek8ba9c0b2016-02-21 14:59:59 +0100746.. literalinclude:: tests/pillar/control_virt.sls
747 :language: yaml
Filip Pytlounb4b80592015-10-06 16:28:32 +0200748
Mateusz Los4c7cd2d2018-01-09 11:46:07 +0100749salt virt with custom destination for image file
750
751.. literalinclude:: tests/pillar/control_virt_custom.sls
752 :language: yaml
753
Filip Pytlounb4b80592015-10-06 16:28:32 +0200754
755Usage
756=====
757
758Working with salt-cloud
759
760.. code-block:: bash
761
762 salt-cloud -m /path/to/map --assume-yes
763
764Debug LIBCLOUD for salt-cloud connection
765
766.. code-block:: bash
767
768 export LIBCLOUD_DEBUG=/dev/stderr; salt-cloud --list-sizes provider_name --log-level all
769
Ales Komarek8ba9c0b2016-02-21 14:59:59 +0100770
Ales Komarekd768f1c2018-01-30 22:37:18 +0100771References
772==========
Filip Pytlounb4b80592015-10-06 16:28:32 +0200773
774* http://salt.readthedocs.org/en/latest/
775* https://github.com/DanielBryan/salt-state-graph
776* http://karlgrz.com/testing-salt-states-rapidly-with-docker/
777* https://mywushublog.com/2013/03/configuration-management-with-salt-stack/
778* http://russell.ballestrini.net/replace-the-nagios-scheduler-and-nrpe-with-salt-stack/
779* https://github.com/saltstack-formulas/salt-formula
780* http://docs.saltstack.com/en/latest/topics/tutorials/multimaster.html
781
Ales Komarek8ba9c0b2016-02-21 14:59:59 +0100782
Filip Pytlounb4b80592015-10-06 16:28:32 +0200783salt-cloud
784----------
785
786* http://www.blog.sandro-mathys.ch/2013/07/setting-user-password-when-launching.html
787* http://cloudinit.readthedocs.org/en/latest/topics/examples.html
788* http://salt-cloud.readthedocs.org/en/latest/topics/install/index.html
789* http://docs.saltstack.com/topics/cloud/digitalocean.html
790* http://salt-cloud.readthedocs.org/en/latest/topics/rackspace.html
791* http://salt-cloud.readthedocs.org/en/latest/topics/map.html
792* http://docs.saltstack.com/en/latest/topics/tutorials/multimaster.html
Ales Komarek8ba9c0b2016-02-21 14:59:59 +0100793
Filip Pytloun954dbd62017-02-02 13:02:03 +0100794
795Documentation and Bugs
796======================
797
798To learn how to install and update salt-formulas, consult the documentation
799available online at:
800
801 http://salt-formulas.readthedocs.io/
802
803In the unfortunate event that bugs are discovered, they should be reported to
804the appropriate issue tracker. Use Github issue tracker for specific salt
805formula:
806
807 https://github.com/salt-formulas/salt-formula-salt/issues
808
809For feature requests, bug reports or blueprints affecting entire ecosystem,
810use Launchpad salt-formulas project:
811
812 https://launchpad.net/salt-formulas
813
814You can also join salt-formulas-users team and subscribe to mailing list:
815
816 https://launchpad.net/~salt-formulas-users
817
818Developers wishing to work on the salt-formulas projects should always base
819their work on master branch and submit pull request against specific formula.
820
821 https://github.com/salt-formulas/salt-formula-salt
822
823Any questions or feedback is always welcome so feel free to join our IRC
824channel:
825
826 #salt-formulas @ irc.freenode.net