New Saltstack Salt formula
Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

README.rst 10KB

9 lat temu
9 lat temu
9 lat temu
9 lat temu
9 lat temu
9 lat temu
9 lat temu
9 lat temu
9 lat temu
9 lat temu
9 lat temu
9 lat temu
9 lat temu
9 lat temu
9 lat temu
9 lat temu
9 lat temu
9 lat temu
9 lat temu
9 lat temu
9 lat temu
9 lat temu
9 lat temu
9 lat temu
9 lat temu
9 lat temu
9 lat temu
9 lat temu
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476
  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 synchronise node pillar and modules after start
  126. .. code-block:: yaml
  127. salt:
  128. master:
  129. reactor:
  130. salt/minion/*/start:
  131. - salt://salt/reactor/node_start.sls
  132. Trigger basic node install
  133. .. code-block:: yaml
  134. salt:
  135. master:
  136. reactor:
  137. salt/minion/install:
  138. - salt://salt/reactor/node_install.sls
  139. Sample event to trigger the node installation
  140. .. code-block:: bash
  141. salt-call event.send 'salt/minion/install'
  142. Run any orchestration pipeline
  143. .. code-block:: yaml
  144. salt:
  145. master:
  146. reactor:
  147. salt/orchestrate/start:
  148. - salt://salt/reactor/orchestrate_start.sls
  149. Event to trigger the orchestration pipeline
  150. .. code-block:: bash
  151. salt-call event.send 'salt/orchestrate/start' "{'orchestrate': 'salt/orchestrate/infra_install.sls'}"
  152. Classify node after start
  153. .. code-block:: yaml
  154. salt:
  155. master:
  156. reactor:
  157. reclass/minion/classify:
  158. - salt://reclass/reactor/node_register.sls
  159. Event to trigger the node classification
  160. .. code-block:: bash
  161. salt-call event.send 'reclass/minion/classify' "{'node_master_ip': '$config_host', 'node_ip': '${node_ip}', 'node_domain': '$node_domain', 'node_cluster': '$node_cluster', 'node_hostname': '$node_hostname', 'node_os': '$node_os'}"
  162. Salt syndic
  163. -----------
  164. The master of masters
  165. .. code-block:: yaml
  166. salt:
  167. master:
  168. enabled: true
  169. order_masters: True
  170. Lower syndicated master
  171. .. code-block:: yaml
  172. salt:
  173. syndic:
  174. enabled: true
  175. master:
  176. host: master-of-master-host
  177. timeout: 5
  178. Syndicated master with multiple master of masters
  179. .. code-block:: yaml
  180. salt:
  181. syndic:
  182. enabled: true
  183. masters:
  184. - host: master-of-master-host1
  185. - host: master-of-master-host2
  186. timeout: 5
  187. Salt-minion proxy
  188. -----------------
  189. Salt proxy pillar
  190. .. code-block:: yaml
  191. salt:
  192. minion:
  193. proxy_minion:
  194. master: localhost
  195. device:
  196. vsrx01.mydomain.local:
  197. enabled: true
  198. engine: napalm
  199. csr1000v.mydomain.local:
  200. enabled: true
  201. engine: napalm
  202. .. note:: This is pillar of the the real salt-minion
  203. Proxy pillar for IOS device
  204. .. code-block:: yaml
  205. proxy:
  206. proxytype: napalm
  207. driver: ios
  208. host: csr1000v.mydomain.local
  209. username: root
  210. passwd: r00tme
  211. .. note:: This is pillar of the node thats not able to run salt-minion itself
  212. Proxy pillar for JunOS device
  213. .. code-block:: yaml
  214. proxy:
  215. proxytype: napalm
  216. driver: junos
  217. host: vsrx01.mydomain.local
  218. username: root
  219. passwd: r00tme
  220. optional_args:
  221. config_format: set
  222. .. note:: This is pillar of the node thats not able to run salt-minion itself
  223. Salt SSH
  224. --------
  225. Salt SSH with sudoer using key
  226. .. literalinclude:: tests/pillar/master_ssh_minion_key.sls
  227. :language: yaml
  228. Salt SSH with sudoer using password
  229. .. literalinclude:: tests/pillar/master_ssh_minion_password.sls
  230. :language: yaml
  231. Salt SSH with root using password
  232. .. literalinclude:: tests/pillar/master_ssh_minion_root.sls
  233. :language: yaml
  234. Salt minion
  235. -----------
  236. Simplest Salt minion setup with central configuration node
  237. .. code-block:: yaml
  238. .. literalinclude:: tests/pillar/minion_master.sls
  239. :language: yaml
  240. Multi-master Salt minion setup
  241. .. literalinclude:: tests/pillar/minion_multi_master.sls
  242. :language: yaml
  243. Salt minion with salt mine options
  244. .. literalinclude:: tests/pillar/minion_mine.sls
  245. :language: yaml
  246. Salt minion with graphing dependencies
  247. .. literalinclude:: tests/pillar/minion_graph.sls
  248. :language: yaml
  249. Salt minion behind HTTP proxy
  250. .. code-block:: yaml
  251. salt:
  252. minion:
  253. proxy:
  254. host: 127.0.0.1
  255. port: 3128
  256. Salt minion with PKI certificate authority (CA)
  257. .. literalinclude:: tests/pillar/minion_pki_ca.sls
  258. :language: yaml
  259. Salt minion using PKI certificate
  260. .. literalinclude:: tests/pillar/minion_pki_cert.sls
  261. :language: yaml
  262. Salt minion trust CA certificates issued by salt CA on a specific host (ie: salt-master node)
  263. .. code-block:: yaml
  264. salt:
  265. minion:
  266. trusted_ca_minions:
  267. - cfg01
  268. Salt control (cloud/kvm/docker)
  269. -------------------------------
  270. Salt cloud with local OpenStack provider
  271. .. literalinclude:: tests/pillar/control_cloud_openstack.sls
  272. :language: yaml
  273. Salt cloud with Digital Ocean provider
  274. .. literalinclude:: tests/pillar/control_cloud_digitalocean.sls
  275. :language: yaml
  276. Salt virt with KVM cluster
  277. .. literalinclude:: tests/pillar/control_virt.sls
  278. :language: yaml
  279. Usage
  280. =====
  281. Working with salt-cloud
  282. .. code-block:: bash
  283. salt-cloud -m /path/to/map --assume-yes
  284. Debug LIBCLOUD for salt-cloud connection
  285. .. code-block:: bash
  286. export LIBCLOUD_DEBUG=/dev/stderr; salt-cloud --list-sizes provider_name --log-level all
  287. More Information
  288. ================
  289. * http://salt.readthedocs.org/en/latest/
  290. * https://github.com/DanielBryan/salt-state-graph
  291. * http://karlgrz.com/testing-salt-states-rapidly-with-docker/
  292. * https://mywushublog.com/2013/03/configuration-management-with-salt-stack/
  293. * http://russell.ballestrini.net/replace-the-nagios-scheduler-and-nrpe-with-salt-stack/
  294. * https://github.com/saltstack-formulas/salt-formula
  295. * http://docs.saltstack.com/en/latest/topics/tutorials/multimaster.html
  296. salt-cloud
  297. ----------
  298. * http://www.blog.sandro-mathys.ch/2013/07/setting-user-password-when-launching.html
  299. * http://cloudinit.readthedocs.org/en/latest/topics/examples.html
  300. * http://salt-cloud.readthedocs.org/en/latest/topics/install/index.html
  301. * http://docs.saltstack.com/topics/cloud/digitalocean.html
  302. * http://salt-cloud.readthedocs.org/en/latest/topics/rackspace.html
  303. * http://salt-cloud.readthedocs.org/en/latest/topics/map.html
  304. * http://docs.saltstack.com/en/latest/topics/tutorials/multimaster.html
  305. Documentation and Bugs
  306. ======================
  307. To learn how to install and update salt-formulas, consult the documentation
  308. available online at:
  309. http://salt-formulas.readthedocs.io/
  310. In the unfortunate event that bugs are discovered, they should be reported to
  311. the appropriate issue tracker. Use Github issue tracker for specific salt
  312. formula:
  313. https://github.com/salt-formulas/salt-formula-salt/issues
  314. For feature requests, bug reports or blueprints affecting entire ecosystem,
  315. use Launchpad salt-formulas project:
  316. https://launchpad.net/salt-formulas
  317. You can also join salt-formulas-users team and subscribe to mailing list:
  318. https://launchpad.net/~salt-formulas-users
  319. Developers wishing to work on the salt-formulas projects should always base
  320. their work on master branch and submit pull request against specific formula.
  321. https://github.com/salt-formulas/salt-formula-salt
  322. Any questions or feedback is always welcome so feel free to join our IRC
  323. channel:
  324. #salt-formulas @ irc.freenode.net