New Saltstack Salt formula
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428
  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 minion trust CA certificates issued by salt CA on a specific host (ie: salt-master node)
  233. .. code-block:: yaml
  234. salt:
  235. minion:
  236. trusted_ca_minions:
  237. - cfg01
  238. Salt control (cloud/kvm/docker)
  239. -------------------------------
  240. Salt cloud with local OpenStack provider
  241. .. literalinclude:: tests/pillar/control_cloud_openstack.sls
  242. :language: yaml
  243. Salt cloud with Digital Ocean provider
  244. .. literalinclude:: tests/pillar/control_cloud_digitalocean.sls
  245. :language: yaml
  246. Salt virt with KVM cluster
  247. .. literalinclude:: tests/pillar/control_virt.sls
  248. :language: yaml
  249. Usage
  250. =====
  251. Working with salt-cloud
  252. .. code-block:: bash
  253. salt-cloud -m /path/to/map --assume-yes
  254. Debug LIBCLOUD for salt-cloud connection
  255. .. code-block:: bash
  256. export LIBCLOUD_DEBUG=/dev/stderr; salt-cloud --list-sizes provider_name --log-level all
  257. More Information
  258. ================
  259. * http://salt.readthedocs.org/en/latest/
  260. * https://github.com/DanielBryan/salt-state-graph
  261. * http://karlgrz.com/testing-salt-states-rapidly-with-docker/
  262. * https://mywushublog.com/2013/03/configuration-management-with-salt-stack/
  263. * http://russell.ballestrini.net/replace-the-nagios-scheduler-and-nrpe-with-salt-stack/
  264. * https://github.com/saltstack-formulas/salt-formula
  265. * http://docs.saltstack.com/en/latest/topics/tutorials/multimaster.html
  266. salt-cloud
  267. ----------
  268. * http://www.blog.sandro-mathys.ch/2013/07/setting-user-password-when-launching.html
  269. * http://cloudinit.readthedocs.org/en/latest/topics/examples.html
  270. * http://salt-cloud.readthedocs.org/en/latest/topics/install/index.html
  271. * http://docs.saltstack.com/topics/cloud/digitalocean.html
  272. * http://salt-cloud.readthedocs.org/en/latest/topics/rackspace.html
  273. * http://salt-cloud.readthedocs.org/en/latest/topics/map.html
  274. * http://docs.saltstack.com/en/latest/topics/tutorials/multimaster.html
  275. Documentation and Bugs
  276. ======================
  277. To learn how to install and update salt-formulas, consult the documentation
  278. available online at:
  279. http://salt-formulas.readthedocs.io/
  280. In the unfortunate event that bugs are discovered, they should be reported to
  281. the appropriate issue tracker. Use Github issue tracker for specific salt
  282. formula:
  283. https://github.com/salt-formulas/salt-formula-salt/issues
  284. For feature requests, bug reports or blueprints affecting entire ecosystem,
  285. use Launchpad salt-formulas project:
  286. https://launchpad.net/salt-formulas
  287. You can also join salt-formulas-users team and subscribe to mailing list:
  288. https://launchpad.net/~salt-formulas-users
  289. Developers wishing to work on the salt-formulas projects should always base
  290. their work on master branch and submit pull request against specific formula.
  291. https://github.com/salt-formulas/salt-formula-salt
  292. Any questions or feedback is always welcome so feel free to join our IRC
  293. channel:
  294. #salt-formulas @ irc.freenode.net