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.

README.rst 9.2KB

9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420
  1. ============
  2. Salt Formula
  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 backend
  14. .. literalinclude:: tests/pillar/master_single_pillar.sls
  15. :language: yaml
  16. Salt master with reclass ENC metadata backend
  17. .. literalinclude:: tests/pillar/master_single_reclass.sls
  18. :language: yaml
  19. Salt master with API
  20. .. literalinclude:: tests/pillar/master_api.sls
  21. :language: yaml
  22. Salt master with defined user ACLs
  23. .. literalinclude:: tests/pillar/master_acl.sls
  24. :language: yaml
  25. Salt master with preset minions
  26. .. code-block:: yaml
  27. salt:
  28. master:
  29. enabled: true
  30. minions:
  31. - name: 'node1.system.location.domain.com'
  32. Salt master with pip based installation (optional)
  33. .. code-block:: yaml
  34. salt:
  35. master:
  36. enabled: true
  37. ...
  38. source:
  39. engine: pip
  40. version: 2016.3.0rc2
  41. Install formula through system package management
  42. .. code-block:: yaml
  43. salt:
  44. master:
  45. enabled: true
  46. ...
  47. environment:
  48. prd:
  49. keystone:
  50. source: pkg
  51. name: salt-formula-keystone
  52. nova:
  53. source: pkg
  54. name: salt-formula-keystone
  55. version: 0.1+0~20160818133412.24~1.gbp6e1ebb
  56. postresql:
  57. source: pkg
  58. name: salt-formula-postgresql
  59. version: purged
  60. Formula keystone is installed latest version and the formulas without version are installed in one call to aptpkg module.
  61. If the version attribute is present sls iterates over formulas and take action to install specific version or remove it.
  62. The version attribute may have these values ``[latest|purged|removed|<VERSION>]``.
  63. Clone master branch of keystone formula as local feature branch
  64. .. code-block:: yaml
  65. salt:
  66. master:
  67. enabled: true
  68. ...
  69. environment:
  70. dev:
  71. formula:
  72. keystone:
  73. source: git
  74. address: git@github.com:openstack/salt-formula-keystone.git
  75. revision: master
  76. branch: feature
  77. Salt master with specified formula refs (for example for Gerrit review)
  78. .. code-block:: yaml
  79. salt:
  80. master:
  81. enabled: true
  82. ...
  83. environment:
  84. dev:
  85. formula:
  86. keystone:
  87. source: git
  88. address: https://git.openstack.org/openstack/salt-formula-keystone
  89. revision: refs/changes/56/123456/1
  90. Salt master with logging handlers
  91. .. code-block:: yaml
  92. salt:
  93. master:
  94. enabled: true
  95. handler:
  96. handler01:
  97. engine: udp
  98. bind:
  99. host: 127.0.0.1
  100. port: 9999
  101. minion:
  102. handler:
  103. handler01:
  104. engine: udp
  105. bind:
  106. host: 127.0.0.1
  107. port: 9999
  108. handler02:
  109. engine: zmq
  110. bind:
  111. host: 127.0.0.1
  112. port: 9999
  113. Salt master peer setup for remote certificate signing
  114. .. code-block:: yaml
  115. salt:
  116. master:
  117. peer:
  118. ".*":
  119. - x509.sign_remote_certificate
  120. Configure verbosity of state output (used for `salt` command)
  121. .. code-block:: yaml
  122. salt:
  123. master:
  124. state_output: changes
  125. Salt Reactor system configuration
  126. .. code-block:: yaml
  127. salt:
  128. master:
  129. reactor:
  130. salt/minion/*/start:
  131. - salt://reactor/minion-started.sls
  132. Salt syndic
  133. -----------
  134. The master of masters
  135. .. code-block:: yaml
  136. salt:
  137. master:
  138. enabled: true
  139. order_masters: True
  140. Lower syndicated master
  141. .. code-block:: yaml
  142. salt:
  143. syndic:
  144. enabled: true
  145. master:
  146. host: master-of-master-host
  147. timeout: 5
  148. Syndicated master with multiple master of masters
  149. .. code-block:: yaml
  150. salt:
  151. syndic:
  152. enabled: true
  153. masters:
  154. - host: master-of-master-host1
  155. - host: master-of-master-host2
  156. timeout: 5
  157. Salt-minion proxy
  158. -----------------
  159. Salt proxy pillar
  160. .. code-block:: yaml
  161. salt:
  162. minion:
  163. proxy_minion:
  164. master: localhost
  165. device:
  166. vsrx01.mydomain.local:
  167. enabled: true
  168. engine: napalm
  169. csr1000v.mydomain.local:
  170. enabled: true
  171. engine: napalm
  172. .. note:: This is pillar of the the real salt-minion
  173. Proxy pillar for IOS device
  174. .. code-block:: yaml
  175. proxy:
  176. proxytype: napalm
  177. driver: ios
  178. host: csr1000v.mydomain.local
  179. username: root
  180. passwd: r00tme
  181. .. note:: This is pillar of the node thats not able to run salt-minion itself
  182. Proxy pillar for JunOS device
  183. .. code-block:: yaml
  184. proxy:
  185. proxytype: napalm
  186. driver: junos
  187. host: vsrx01.mydomain.local
  188. username: root
  189. passwd: r00tme
  190. optional_args:
  191. config_format: set
  192. .. note:: This is pillar of the node thats not able to run salt-minion itself
  193. Salt SSH
  194. --------
  195. Salt SSH with sudoer using key
  196. .. literalinclude:: tests/pillar/master_ssh_minion_key.sls
  197. :language: yaml
  198. Salt SSH with sudoer using password
  199. .. literalinclude:: tests/pillar/master_ssh_minion_password.sls
  200. :language: yaml
  201. Salt SSH with root using password
  202. .. literalinclude:: tests/pillar/master_ssh_minion_root.sls
  203. :language: yaml
  204. Salt minion
  205. -----------
  206. Simplest Salt minion setup with central configuration node
  207. .. code-block:: yaml
  208. .. literalinclude:: tests/pillar/minion_master.sls
  209. :language: yaml
  210. Multi-master Salt minion setup
  211. .. literalinclude:: tests/pillar/minion_multi_master.sls
  212. :language: yaml
  213. Salt minion with salt mine options
  214. .. literalinclude:: tests/pillar/minion_mine.sls
  215. :language: yaml
  216. Salt minion with graphing dependencies
  217. .. literalinclude:: tests/pillar/minion_graph.sls
  218. :language: yaml
  219. Salt minion behind HTTP proxy
  220. .. code-block:: yaml
  221. salt:
  222. minion:
  223. proxy:
  224. host: 127.0.0.1
  225. port: 3128
  226. Salt minion with PKI certificate authority (CA)
  227. .. literalinclude:: tests/pillar/minion_pki_ca.sls
  228. :language: yaml
  229. Salt minion using PKI certificate
  230. .. literalinclude:: tests/pillar/minion_pki_cert.sls
  231. :language: yaml
  232. Salt control (cloud/kvm/docker)
  233. -------------------------------
  234. Salt cloud with local OpenStack provider
  235. .. literalinclude:: tests/pillar/control_cloud_openstack.sls
  236. :language: yaml
  237. Salt cloud with Digital Ocean provider
  238. .. literalinclude:: tests/pillar/control_cloud_digitalocean.sls
  239. :language: yaml
  240. Salt virt with KVM cluster
  241. .. literalinclude:: tests/pillar/control_virt.sls
  242. :language: yaml
  243. Usage
  244. =====
  245. Working with salt-cloud
  246. .. code-block:: bash
  247. salt-cloud -m /path/to/map --assume-yes
  248. Debug LIBCLOUD for salt-cloud connection
  249. .. code-block:: bash
  250. export LIBCLOUD_DEBUG=/dev/stderr; salt-cloud --list-sizes provider_name --log-level all
  251. More Information
  252. ================
  253. * http://salt.readthedocs.org/en/latest/
  254. * https://github.com/DanielBryan/salt-state-graph
  255. * http://karlgrz.com/testing-salt-states-rapidly-with-docker/
  256. * https://mywushublog.com/2013/03/configuration-management-with-salt-stack/
  257. * http://russell.ballestrini.net/replace-the-nagios-scheduler-and-nrpe-with-salt-stack/
  258. * https://github.com/saltstack-formulas/salt-formula
  259. * http://docs.saltstack.com/en/latest/topics/tutorials/multimaster.html
  260. salt-cloud
  261. ----------
  262. * http://www.blog.sandro-mathys.ch/2013/07/setting-user-password-when-launching.html
  263. * http://cloudinit.readthedocs.org/en/latest/topics/examples.html
  264. * http://salt-cloud.readthedocs.org/en/latest/topics/install/index.html
  265. * http://docs.saltstack.com/topics/cloud/digitalocean.html
  266. * http://salt-cloud.readthedocs.org/en/latest/topics/rackspace.html
  267. * http://salt-cloud.readthedocs.org/en/latest/topics/map.html
  268. * http://docs.saltstack.com/en/latest/topics/tutorials/multimaster.html
  269. Documentation and Bugs
  270. ======================
  271. To learn how to install and update salt-formulas, consult the documentation
  272. available online at:
  273. http://salt-formulas.readthedocs.io/
  274. In the unfortunate event that bugs are discovered, they should be reported to
  275. the appropriate issue tracker. Use Github issue tracker for specific salt
  276. formula:
  277. https://github.com/salt-formulas/salt-formula-salt/issues
  278. For feature requests, bug reports or blueprints affecting entire ecosystem,
  279. use Launchpad salt-formulas project:
  280. https://launchpad.net/salt-formulas
  281. You can also join salt-formulas-users team and subscribe to mailing list:
  282. https://launchpad.net/~salt-formulas-users
  283. Developers wishing to work on the salt-formulas projects should always base
  284. their work on master branch and submit pull request against specific formula.
  285. https://github.com/salt-formulas/salt-formula-salt
  286. Any questions or feedback is always welcome so feel free to join our IRC
  287. channel:
  288. #salt-formulas @ irc.freenode.net