New version of salt-formula from Saltstack
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

9 роки тому
9 роки тому
9 роки тому
9 роки тому
9 роки тому
9 роки тому
8 роки тому
9 роки тому
9 роки тому
8 роки тому
9 роки тому
9 роки тому
8 роки тому
8 роки тому
8 роки тому
8 роки тому
9 роки тому
9 роки тому
9 роки тому
8 роки тому
9 роки тому
8 роки тому
8 роки тому
9 роки тому
8 роки тому
8 роки тому
8 роки тому
8 роки тому
8 роки тому
8 роки тому
9 роки тому
9 роки тому
8 роки тому
9 роки тому
9 роки тому
8 роки тому
9 роки тому
9 роки тому
8 роки тому
9 роки тому
9 роки тому
9 роки тому
9 роки тому
9 роки тому
8 роки тому
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909
  1. =====
  2. Usage
  3. =====
  4. Salt is a new approach to infrastructure management. Easy enough to get
  5. running in minutes, scalable enough to manage tens of thousands of servers,
  6. and fast enough to communicate with them in seconds.
  7. Salt delivers a dynamic communication bus for infrastructures that can be used
  8. for orchestration, remote execution, configuration management and much more.
  9. Sample Metadata
  10. ===============
  11. Salt Master
  12. -----------
  13. Salt master with base formulas and pillar metadata back end:
  14. .. literalinclude:: tests/pillar/master_single_pillar.sls
  15. :language: yaml
  16. Salt master with reclass ENC metadata back end:
  17. .. literalinclude:: tests/pillar/master_single_reclass.sls
  18. :language: yaml
  19. Salt master with Architect ENC metadata back end:
  20. .. code-block:: yaml
  21. salt:
  22. master:
  23. enabled: true
  24. pillar:
  25. engine: architect
  26. project: project-name
  27. host: architect-api
  28. port: 8181
  29. username: salt
  30. password: password
  31. Salt master with multiple ``ext_pillars``:
  32. .. code-block:: yaml
  33. salt:
  34. master:
  35. enabled: true
  36. pillar:
  37. engine: salt
  38. source:
  39. engine: local
  40. ext_pillars:
  41. 1:
  42. module: cmd_json
  43. params: '"echo {\"arg\": \"val\"}"'
  44. 2:
  45. module: cmd_yaml
  46. params: /usr/local/bin/get_yml.sh
  47. Salt master with API:
  48. .. literalinclude:: tests/pillar/master_api.sls
  49. :language: yaml
  50. Salt master with defined user ACLs:
  51. .. literalinclude:: tests/pillar/master_acl.sls
  52. :language: yaml
  53. Salt master with preset minions:
  54. .. code-block:: yaml
  55. salt:
  56. master:
  57. enabled: true
  58. minions:
  59. - name: 'node1.system.location.domain.com'
  60. Salt master with pip based installation (optional):
  61. .. code-block:: yaml
  62. salt:
  63. master:
  64. enabled: true
  65. ...
  66. source:
  67. engine: pip
  68. version: 2016.3.0rc2
  69. Install formula through system package management:
  70. .. code-block:: yaml
  71. salt:
  72. master:
  73. enabled: true
  74. ...
  75. environment:
  76. prd:
  77. keystone:
  78. source: pkg
  79. name: salt-formula-keystone
  80. nova:
  81. source: pkg
  82. name: salt-formula-keystone
  83. version: 0.1+0~20160818133412.24~1.gbp6e1ebb
  84. postresql:
  85. source: pkg
  86. name: salt-formula-postgresql
  87. version: purged
  88. Formula keystone is installed latest version and the formulas
  89. without version are installed in one call to aptpkg module.
  90. If the version attribute is present sls iterates over formulas
  91. and take action to install specific version or remove it.
  92. The version attribute may have these values
  93. ``[latest|purged|removed|<VERSION>]``.
  94. Clone master branch of keystone formula as local feature branch:
  95. .. code-block:: yaml
  96. salt:
  97. master:
  98. enabled: true
  99. ...
  100. environment:
  101. dev:
  102. formula:
  103. keystone:
  104. source: git
  105. address: git@github.com:openstack/salt-formula-keystone.git
  106. revision: master
  107. branch: feature
  108. Salt master with specified formula refs (for example, for Gerrit
  109. review):
  110. .. code-block:: yaml
  111. salt:
  112. master:
  113. enabled: true
  114. ...
  115. environment:
  116. dev:
  117. formula:
  118. keystone:
  119. source: git
  120. address: https://git.openstack.org/openstack/salt-formula-keystone
  121. revision: refs/changes/56/123456/1
  122. Salt master logging configuration:
  123. .. code-block:: yaml
  124. salt:
  125. master:
  126. enabled: true
  127. log:
  128. level: warning
  129. file: '/var/log/salt/master'
  130. level_logfile: warning
  131. Salt minion logging configuration:
  132. .. code-block:: yaml
  133. salt:
  134. minion:
  135. enabled: true
  136. log:
  137. level: info
  138. file: '/var/log/salt/minion'
  139. level_logfile: warning
  140. Salt master with logging handlers:
  141. .. code-block:: yaml
  142. salt:
  143. master:
  144. enabled: true
  145. handler:
  146. handler01:
  147. engine: udp
  148. bind:
  149. host: 127.0.0.1
  150. port: 9999
  151. minion:
  152. 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. Salt engine definition for saltgraph metadata collector:
  164. .. code-block:: yaml
  165. salt:
  166. master:
  167. engine:
  168. graph_metadata:
  169. engine: saltgraph
  170. host: 127.0.0.1
  171. port: 5432
  172. user: salt
  173. password: salt
  174. database: salt
  175. Salt engine definition for Architect service:
  176. .. code-block:: yaml
  177. salt:
  178. master:
  179. engine:
  180. architect:
  181. engine: architect
  182. project: project-name
  183. host: architect-api
  184. port: 8181
  185. username: salt
  186. password: password
  187. Salt engine definition for sending events from docker events:
  188. .. code-block:: yaml
  189. salt:
  190. master:
  191. engine:
  192. docker_events:
  193. docker_url: unix://var/run/docker.sock
  194. Salt master peer setup for remote certificate signing:
  195. .. code-block:: yaml
  196. salt:
  197. master:
  198. peer:
  199. ".*":
  200. - x509.sign_remote_certificate
  201. Salt master backup configuration:
  202. .. code-block:: yaml
  203. salt:
  204. master:
  205. backup: true
  206. initial_data:
  207. engine: backupninja
  208. home_dir: remote-backup-home-dir
  209. source: backup-node-host
  210. host: original-salt-master-id
  211. Configure verbosity of state output (used for :command:`salt`
  212. command):
  213. .. code-block:: yaml
  214. salt:
  215. master:
  216. state_output: changes
  217. Pass pillar render error to minion log:
  218. .. note:: When set to `False` this option is great for debuging.
  219. However it is not recomended for any production environment as it may contain
  220. templating data as passwords, and so on, that minion should not expose.
  221. .. code-block:: yaml
  222. salt:
  223. master:
  224. pillar_safe_render_error: False
  225. Enable Windows repository support:
  226. .. code-block:: yaml
  227. salt:
  228. master:
  229. win_repo:
  230. source: git
  231. address: https://github.com/saltstack/salt-winrepo-ng
  232. revision: master
  233. Event/Reactor systems
  234. ~~~~~~~~~~~~~~~~~~~~~
  235. Salt to synchronize node pillar and modules after start:
  236. .. code-block:: yaml
  237. salt:
  238. master:
  239. reactor:
  240. salt/minion/*/start:
  241. - salt://salt/reactor/node_start.sls
  242. Trigger basic node install:
  243. .. code-block:: yaml
  244. salt:
  245. master:
  246. reactor:
  247. salt/minion/install:
  248. - salt://salt/reactor/node_install.sls
  249. Sample event to trigger the node installation:
  250. .. code-block:: bash
  251. salt-call event.send 'salt/minion/install'
  252. Run any defined orchestration pipeline:
  253. .. code-block:: yaml
  254. salt:
  255. master:
  256. reactor:
  257. salt/orchestrate/start:
  258. - salt://salt/reactor/orchestrate_start.sls
  259. Event to trigger the orchestration pipeline:
  260. .. code-block:: bash
  261. salt-call event.send 'salt/orchestrate/start' "{'orchestrate': 'salt/orchestrate/infra_install.sls'}"
  262. Synchronise modules and pillars on minion start:
  263. .. code-block:: yaml
  264. salt:
  265. master:
  266. reactor:
  267. 'salt/minion/*/start':
  268. - salt://salt/reactor/minion_start.sls
  269. Add and/or remove the minion key:
  270. .. code-block:: yaml
  271. salt:
  272. master:
  273. reactor:
  274. salt/key/create:
  275. - salt://salt/reactor/key_create.sls
  276. salt/key/remove:
  277. - salt://salt/reactor/key_remove.sls
  278. Event to trigger the key creation:
  279. .. code-block:: bash
  280. salt-call event.send 'salt/key/create' \
  281. > "{'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'}}"
  282. .. note::
  283. You can add pass additional ``orch_pre_create``, ``orch_post_create``,
  284. ``orch_pre_remove`` or ``orch_post_remove`` parameters to the event
  285. to call extra orchestrate files. This can be useful for example for
  286. registering/unregistering nodes from the monitoring alarms or dashboards.
  287. The key creation event needs to be run from other machine than the one
  288. being registered.
  289. Event to trigger the key removal:
  290. .. code-block:: bash
  291. salt-call event.send 'salt/key/remove'
  292. Control VM provisioning:
  293. .. code-block:: yaml
  294. _param:
  295. private-ipv4: &private-ipv4
  296. - id: private-ipv4
  297. type: ipv4
  298. link: ens2
  299. netmask: 255.255.255.0
  300. routes:
  301. - gateway: 192.168.0.1
  302. netmask: 0.0.0.0
  303. network: 0.0.0.0
  304. virt:
  305. disk:
  306. three_disks:
  307. - system:
  308. size: 4096
  309. image: ubuntu.qcow
  310. - repository_snapshot:
  311. size: 8192
  312. image: snapshot.qcow
  313. - cinder-volume:
  314. size: 2048
  315. nic:
  316. control:
  317. - name: nic01
  318. bridge: br-pxe
  319. model: virtio
  320. - name: nic02
  321. bridge: br-cp
  322. model: virtio
  323. - name: nic03
  324. bridge: br-store-front
  325. model: virtio
  326. - name: nic04
  327. bridge: br-public
  328. model: virtio
  329. - name: nic05
  330. bridge: br-prv
  331. model: virtio
  332. virtualport:
  333. type: openvswitch
  334. salt:
  335. control:
  336. enabled: true
  337. virt_enabled: true
  338. size:
  339. medium_three_disks:
  340. cpu: 2
  341. ram: 4
  342. disk_profile: three_disks
  343. cluster:
  344. mycluster:
  345. domain: neco.virt.domain.com
  346. engine: virt
  347. #Option to set rng globaly
  348. rng: false
  349. cloud_init:
  350. user_data:
  351. disable_ec2_metadata: true
  352. resize_rootfs: True
  353. timezone: UTC
  354. ssh_deletekeys: True
  355. ssh_genkeytypes: ['rsa', 'dsa', 'ecdsa']
  356. ssh_svcname: ssh
  357. locale: en_US.UTF-8
  358. disable_root: true
  359. apt_preserve_sources_list: false
  360. apt:
  361. sources_list: ""
  362. sources:
  363. ubuntu.list:
  364. source: ${linux:system:repo:ubuntu:source}
  365. mcp_saltstack.list:
  366. source: ${linux:system:repo:mcp_saltstack:source}
  367. node:
  368. ubuntu1:
  369. provider: node01.domain.com
  370. image: ubuntu.qcow
  371. size: medium
  372. img_dest: /var/lib/libvirt/ssdimages
  373. #Rng defined on node will have higher priority then global one
  374. rng:
  375. backend: /dev/urandom
  376. model: random
  377. rate:
  378. period: '1800'
  379. bytes: '1500'
  380. mac:
  381. nic01: AC:DE:48:AA:AA:AA
  382. nic02: AC:DE:48:AA:AA:BB
  383. # netconfig affects: hostname during boot
  384. # manual interfaces configuration
  385. cloud_init:
  386. network_data:
  387. networks:
  388. - <<: *private-ipv4
  389. ip_address: 192.168.0.161
  390. To enable Redis plugin for the Salt caching subsystem, use the
  391. below pillar structure:
  392. .. code-block:: yaml
  393. salt:
  394. master:
  395. cache:
  396. plugin: redis
  397. host: localhost
  398. port: 6379
  399. db: '0'
  400. password: pass_word
  401. bank_prefix: 'MCP'
  402. bank_keys_prefix: 'MCPKEY'
  403. key_prefix: 'KEY'
  404. separator: '@'
  405. Jinja options
  406. -------------
  407. Use the following options to update default Jinja renderer options.
  408. Salt recognize Jinja options for templates and for the ``sls`` files.
  409. For full list of options, see Jinja documentation:
  410. http://jinja.pocoo.org/docs/api/#high-level-api
  411. .. code-block:: yaml
  412. salt:
  413. renderer:
  414. # for templates
  415. jinja: &jina_env
  416. # Default Jinja environment options
  417. block_start_string: '{%'
  418. block_end_string: '%}'
  419. variable_start_string: '{{'
  420. variable_end_string: '}}'
  421. comment_start_string: '{#'
  422. comment_end_string: '#}'
  423. keep_trailing_newline: False
  424. newline_sequence: '\n'
  425. # Next two are enabled by default in Salt
  426. trim_blocks: True
  427. lstrip_blocks: True
  428. # Next two are not enabled by default in Salt
  429. # but worth to consider to enable in future for salt-formulas
  430. line_statement_prefix: '%'
  431. line_comment_prefix: '##'
  432. # for .sls state files
  433. jinja_sls: *jinja_env
  434. With the ``line_statement/comment* _prefix`` options enabled following
  435. code statements are valid:
  436. .. code-block:: yaml
  437. %- set myvar = 'one'
  438. ## You can mix even with '{%'
  439. {%- set myvar = 'two' %} ## comment
  440. %- set mylist = ['one', 'two', 'three'] ## comment
  441. ## comment
  442. %- for item in mylist: ## comment
  443. {{- item }}
  444. %- endfor
  445. Encrypted pillars
  446. ~~~~~~~~~~~~~~~~~
  447. .. note:: NACL and the below configuration will be available in Salt > 2017.7.
  448. External resources:
  449. - Tutorial to configure the Salt and Reclass ``ext_pillar`` and NACL:
  450. http://apealive.net/post/2017-09-salt-nacl-ext-pillar/
  451. - SaltStack documentation:
  452. https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.nacl.html
  453. Configure salt NACL module:
  454. .. code-block:: bash
  455. pip install --upgrade libnacl===1.5.2
  456. salt-call --local nacl.keygen /etc/salt/pki/master/nacl
  457. local:
  458. saved sk_file:/etc/salt/pki/master/nacl pk_file: /etc/salt/pki/master/nacl.pub
  459. .. code-block:: yaml
  460. salt:
  461. master:
  462. pillar:
  463. reclass: *reclass
  464. nacl:
  465. index: 99
  466. nacl:
  467. box_type: sealedbox
  468. sk_file: /etc/salt/pki/master/nacl
  469. pk_file: /etc/salt/pki/master/nacl.pub
  470. #sk: None
  471. #pk: None
  472. NACL encrypt secrets:
  473. .. code-block:: bash
  474. salt-call --local nacl.enc 'my_secret_value' pk_file=/etc/salt/pki/master/nacl.pub
  475. hXTkJpC1hcKMS7yZVGESutWrkvzusXfETXkacSklIxYjfWDlMJmR37MlmthdIgjXpg4f2AlBKb8tc9Woma7q
  476. # or
  477. salt-run nacl.enc 'myotherpass'
  478. ADDFD0Rav6p6+63sojl7Htfrncp5rrDVyeE4BSPO7ipq8fZuLDIVAzQLf4PCbDqi+Fau5KD3/J/E+Pw=
  479. NACL encrypted values on pillar:
  480. Use Boxed syntax `NACL[CryptedValue=]` to encode value on pillar:
  481. .. code-block:: yaml
  482. my_pillar:
  483. my_nacl:
  484. key0: unencrypted_value
  485. key1: NACL[hXTkJpC1hcKMS7yZVGESutWrkvzusXfETXkacSklIxYjfWDlMJmR37MlmthdIgjXpg4f2AlBKb8tc9Woma7q]
  486. NACL large files:
  487. .. code-block:: bash
  488. salt-call nacl.enc_file /tmp/cert.crt out=/srv/salt/env/dev/cert.nacl
  489. # or more advanced
  490. cert=$(cat /tmp/cert.crt)
  491. salt-call --out=newline_values_only nacl.enc_pub data="$cert" > /srv/salt/env/dev/cert.nacl
  492. NACL within template/native pillars:
  493. .. code-block:: yaml
  494. pillarexample:
  495. user: root
  496. password1: {{salt.nacl.dec('DRB7Q6/X5gGSRCTpZyxS6hlbWj0llUA+uaVyvou3vJ4=')|json}}
  497. cert_key: {{salt.nacl.dec_file('/srv/salt/env/dev/certs/example.com/cert.nacl')|json}}
  498. cert_key2: {{salt.nacl.dec_file('salt:///certs/example.com/cert2.nacl')|json}}
  499. Salt Syndic
  500. -----------
  501. The master of masters:
  502. .. code-block:: yaml
  503. salt:
  504. master:
  505. enabled: true
  506. order_masters: True
  507. Lower syndicated master:
  508. .. code-block:: yaml
  509. salt:
  510. syndic:
  511. enabled: true
  512. master:
  513. host: master-of-master-host
  514. timeout: 5
  515. Syndicated master with multiple master of masters:
  516. .. code-block:: yaml
  517. salt:
  518. syndic:
  519. enabled: true
  520. masters:
  521. - host: master-of-master-host1
  522. - host: master-of-master-host2
  523. timeout: 5
  524. Salt Minion
  525. -----------
  526. Minion ID by default triggers dependency on Linux formula, as it uses fqdn
  527. configured from `linux.system.name` and `linux.system.domain` pillar.
  528. To override, provide exact minion ID you require. The same can be set for
  529. master ID rendered at ``master.conf``.
  530. .. code-block:: yaml
  531. salt:
  532. minion:
  533. id: minion1.production
  534. master:
  535. id: master.production
  536. Simplest Salt minion setup with central configuration node:
  537. .. literalinclude:: tests/pillar/minion_master.sls
  538. :language: yaml
  539. Multi-master Salt minion setup:
  540. .. literalinclude:: tests/pillar/minion_multi_master.sls
  541. :language: yaml
  542. Salt minion with salt mine options:
  543. .. literalinclude:: tests/pillar/minion_mine.sls
  544. :language: yaml
  545. Salt minion with graphing dependencies:
  546. .. literalinclude:: tests/pillar/minion_graph.sls
  547. :language: yaml
  548. Salt minion behind HTTP proxy:
  549. .. code-block:: yaml
  550. salt:
  551. minion:
  552. proxy:
  553. host: 127.0.0.1
  554. port: 3128
  555. Salt minion to specify non-default HTTP backend. The default
  556. tornado backend does not respect HTTP proxy settings set as
  557. environment variables. This is useful for cases where you need
  558. to set no_proxy lists.
  559. .. code-block:: yaml
  560. salt:
  561. minion:
  562. backend: urllib2
  563. Salt minion with PKI certificate authority (CA):
  564. .. literalinclude:: tests/pillar/minion_pki_ca.sls
  565. :language: yaml
  566. Salt minion using PKI certificate
  567. .. literalinclude:: tests/pillar/minion_pki_cert.sls
  568. :language: yaml
  569. Salt minion trust CA certificates issued by salt CA on a
  570. specific host (ie: salt-master node):
  571. .. code-block:: yaml
  572. salt:
  573. minion:
  574. trusted_ca_minions:
  575. - cfg01
  576. Salt Minion Proxy
  577. ~~~~~~~~~~~~~~~~~
  578. Salt proxy pillar:
  579. .. code-block:: yaml
  580. salt:
  581. minion:
  582. proxy_minion:
  583. master: localhost
  584. device:
  585. vsrx01.mydomain.local:
  586. enabled: true
  587. engine: napalm
  588. csr1000v.mydomain.local:
  589. enabled: true
  590. engine: napalm
  591. .. note:: This is pillar of the the real salt-minion
  592. Proxy pillar for IOS device:
  593. .. code-block:: yaml
  594. proxy:
  595. proxytype: napalm
  596. driver: ios
  597. host: csr1000v.mydomain.local
  598. username: root
  599. passwd: r00tme
  600. .. note:: This is pillar of the node thats not able to run
  601. salt-minion itself.
  602. Proxy pillar for JunOS device:
  603. .. code-block:: yaml
  604. proxy:
  605. proxytype: napalm
  606. driver: junos
  607. host: vsrx01.mydomain.local
  608. username: root
  609. passwd: r00tme
  610. optional_args:
  611. config_format: set
  612. .. note:: This pillar applies to the node that can not run
  613. salt-minion itself.
  614. Salt SSH
  615. ~~~~~~~~
  616. Salt SSH with sudoer using key:
  617. .. literalinclude:: tests/pillar/master_ssh_minion_key.sls
  618. :language: yaml
  619. Salt SSH with sudoer using password:
  620. .. literalinclude:: tests/pillar/master_ssh_minion_password.sls
  621. :language: yaml
  622. Salt SSH with root using password:
  623. .. literalinclude:: tests/pillar/master_ssh_minion_root.sls
  624. :language: yaml
  625. Salt control (cloud/kvm/docker)
  626. -------------------------------
  627. Salt cloud with local OpenStack provider:
  628. .. literalinclude:: tests/pillar/control_cloud_openstack.sls
  629. :language: yaml
  630. Salt cloud with Digital Ocean provider:
  631. .. literalinclude:: tests/pillar/control_cloud_digitalocean.sls
  632. :language: yaml
  633. Salt virt with KVM cluster:
  634. .. literalinclude:: tests/pillar/control_virt.sls
  635. :language: yaml
  636. Salt virt with custom destination for image file:
  637. .. literalinclude:: tests/pillar/control_virt_custom.sls
  638. :language: yaml
  639. Usage
  640. =====
  641. Working with salt-cloud:
  642. .. code-block:: bash
  643. salt-cloud -m /path/to/map --assume-yes
  644. Debug LIBCLOUD for salt-cloud connection:
  645. .. code-block:: bash
  646. export LIBCLOUD_DEBUG=/dev/stderr; salt-cloud --list-sizes provider_name --log-level all
  647. Read more
  648. =========
  649. * http://salt.readthedocs.org/en/latest/
  650. * https://github.com/DanielBryan/salt-state-graph
  651. * http://karlgrz.com/testing-salt-states-rapidly-with-docker/
  652. * https://mywushublog.com/2013/03/configuration-management-with-salt-stack/
  653. * http://russell.ballestrini.net/replace-the-nagios-scheduler-and-nrpe-with-salt-stack/
  654. * https://github.com/saltstack-formulas/salt-formula
  655. * http://docs.saltstack.com/en/latest/topics/tutorials/multimaster.html
  656. salt-cloud
  657. ----------
  658. * http://www.blog.sandro-mathys.ch/2013/07/setting-user-password-when-launching.html
  659. * http://cloudinit.readthedocs.org/en/latest/topics/examples.html
  660. * http://salt-cloud.readthedocs.org/en/latest/topics/install/index.html
  661. * http://docs.saltstack.com/topics/cloud/digitalocean.html
  662. * http://salt-cloud.readthedocs.org/en/latest/topics/rackspace.html
  663. * http://salt-cloud.readthedocs.org/en/latest/topics/map.html
  664. * http://docs.saltstack.com/en/latest/topics/tutorials/multimaster.html
  665. Documentation and Bugs
  666. ======================
  667. * http://salt-formulas.readthedocs.io/
  668. Learn how to install and update salt-formulas
  669. * https://github.com/salt-formulas/salt-formula-salt/issues
  670. In the unfortunate event that bugs are discovered, report the issue to the
  671. appropriate issue tracker. Use the Github issue tracker for a specific salt
  672. formula
  673. * https://launchpad.net/salt-formulas
  674. For feature requests, bug reports, or blueprints affecting the entire
  675. ecosystem, use the Launchpad salt-formulas project
  676. * https://launchpad.net/~salt-formulas-users
  677. Join the salt-formulas-users team and subscribe to mailing list if required
  678. * https://github.com/salt-formulas/salt-formula-salt
  679. Develop the salt-formulas projects in the master branch and then submit pull
  680. requests against a specific formula
  681. * #salt-formulas @ irc.freenode.net
  682. Use this IRC channel in case of any questions or feedback which is always
  683. welcome