| |
| ==== |
| Salt |
| ==== |
| |
| Salt is a new approach to infrastructure management. Easy enough to get running in minutes, scalable enough to manage tens of thousands of servers, and fast enough to communicate with them in seconds. |
| |
| Salt delivers a dynamic communication bus for infrastructures that can be used for orchestration, remote execution, configuration management and much more. |
| |
| Sample pillars |
| ============== |
| |
| Salt master |
| ----------- |
| |
| Salt master with base production environment and pillar tree as metadata backend |
| |
| .. literalinclude:: tests/pillar/master_single_pillar.sls |
| :language: yaml |
| |
| Salt master with reclass ENC as metadata backend |
| |
| .. literalinclude:: tests/pillar/master_single_reclass.sls |
| :language: yaml |
| |
| Salt master with API |
| |
| .. literalinclude:: tests/pillar/master_api.sls |
| :language: yaml |
| |
| Salt master with defined user ACLs |
| |
| .. literalinclude:: tests/pillar/master_acl.sls |
| :language: yaml |
| |
| Salt master with preset minions |
| |
| .. code-block:: yaml |
| |
| salt: |
| master: |
| enabled: true |
| minions: |
| - name: 'node1.system.location.domain.com' |
| |
| Salt master with alternative installation source and version (optional) - pip |
| |
| .. code-block:: yaml |
| |
| salt: |
| master: |
| enabled: true |
| ... |
| source: |
| engine: pip |
| version: 2016.3.0rc2 |
| |
| Salt master with specified formula to install through apt-get |
| |
| .. code-block:: yaml |
| |
| salt: |
| master: |
| enabled: true |
| ... |
| environment: |
| prd: |
| keysone: |
| source: pkg |
| name: salt-formula-keystone |
| |
| Clone master branch of keystone formula as local feature branch |
| |
| .. code-block:: yaml |
| |
| salt: |
| master: |
| enabled: true |
| ... |
| environment: |
| dev: |
| formula: |
| keystone: |
| source: git |
| address: git@github.com:openstack/salt-formula-keystone.git |
| revision: master |
| branch: feature |
| |
| Salt master with specified formula refs (for example for Gerrit review) |
| |
| .. code-block:: yaml |
| |
| salt: |
| master: |
| enabled: true |
| ... |
| environment: |
| dev: |
| formula: |
| keystone: |
| source: git |
| address: https://git.openstack.org/openstack/salt-formula-keystone |
| revision: refs/changes/56/123456/1 |
| |
| Salt syndic: Master of masters |
| |
| .. code-block:: yaml |
| |
| salt: |
| master: |
| enabled: true |
| order_masters: True |
| |
| Salt syndic: Lower master |
| |
| .. code-block:: yaml |
| |
| salt: |
| syndic: |
| enabled: true |
| master: |
| host: master-of-master-host |
| timeout: 5 |
| |
| Salt syndic: Lower master with multi-master of masters |
| |
| .. code-block:: yaml |
| |
| salt: |
| syndic: |
| enabled: true |
| masters: |
| - host: master-of-master-host1 |
| - host: master-of-master-host2 |
| timeout: 5 |
| |
| |
| Salt master with custom handlers |
| |
| .. code-block:: yaml |
| |
| salt: |
| master: |
| enabled: true |
| handler: |
| handler01: |
| engine: udp |
| bind: |
| host: 127.0.0.1 |
| port: 9999 |
| minion: |
| handler: |
| handler01: |
| engine: udp |
| bind: |
| host: 127.0.0.1 |
| port: 9999 |
| handler02: |
| engine: zmq |
| bind: |
| host: 127.0.0.1 |
| port: 9999 |
| |
| Salt master peer for remote certificate sign. |
| |
| .. code-block:: yaml |
| |
| salt: |
| master: |
| peer: |
| ".*": |
| - x509.sign_remote_certificate |
| |
| Salt proxy |
| ---------- |
| |
| Salt proxy pillar |
| |
| .. code-block:: yaml |
| |
| salt: |
| minion: |
| proxy: |
| master: localhost |
| device: |
| vsrx01.mydomain.local: |
| enabled: true |
| engine: napalm |
| csr1000v.mydomain.local: |
| enabled: true |
| engine: napalm |
| |
| .. note:: This is pillar of the the real salt-minion |
| |
| |
| Proxy pillar for IOS device |
| |
| .. code-block:: yaml |
| |
| proxy: |
| proxytype: napalm |
| driver: ios |
| host: csr1000v.mydomain.local |
| username: root |
| passwd: r00tme |
| |
| .. note:: This is pillar of the node thats not able to run salt-minion itself |
| |
| |
| Proxy pillar for JunOS device |
| |
| .. code-block:: yaml |
| |
| proxy: |
| proxytype: napalm |
| driver: junos |
| host: vsrx01.mydomain.local |
| username: root |
| passwd: r00tme |
| optional_args: |
| config_format: set |
| |
| .. note:: This is pillar of the node thats not able to run salt-minion itself |
| |
| |
| Salt SSH |
| -------- |
| |
| Salt SSH with sudoer using key |
| |
| .. literalinclude:: tests/pillar/master_ssh_minion_key.sls |
| :language: yaml |
| |
| Salt SSH with sudoer using password |
| |
| .. literalinclude:: tests/pillar/master_ssh_minion_password.sls |
| :language: yaml |
| |
| Salt SSH with root using password |
| |
| .. literalinclude:: tests/pillar/master_ssh_minion_root.sls |
| :language: yaml |
| |
| |
| Salt minion |
| ----------- |
| |
| Simplest Salt minion setup with central configuration node |
| |
| .. code-block:: yaml |
| |
| .. literalinclude:: tests/pillar/minion_master.sls |
| :language: yaml |
| |
| Multi-master Salt minion setup |
| |
| .. literalinclude:: tests/pillar/minion_multi_master.sls |
| :language: yaml |
| |
| Salt minion with salt mine options |
| |
| .. literalinclude:: tests/pillar/minion_mine.sls |
| :language: yaml |
| |
| Salt minion with graphing dependencies |
| |
| .. literalinclude:: tests/pillar/minion_graph.sls |
| :language: yaml |
| |
| Salt minion behind http proxy |
| |
| .. code-block:: yaml |
| |
| salt: |
| minion: |
| proxy: |
| host: 127.0.0.1 |
| port: 3128 |
| |
| PKI CA |
| ~~~~~~ |
| |
| Salt minion with PKI CA |
| |
| .. literalinclude:: tests/pillar/minion_pki_ca.sls |
| :language: yaml |
| |
| Salt minion with PKI certificate |
| |
| .. literalinclude:: tests/pillar/minion_pki_cert.sls |
| :language: yaml |
| |
| |
| Salt control (cloud/kvm/docker) |
| ------------------------------- |
| |
| Salt cloud with local OpenStack provider |
| |
| .. literalinclude:: tests/pillar/control_cloud_openstack.sls |
| :language: yaml |
| |
| Salt cloud with Digital Ocean provider |
| |
| .. literalinclude:: tests/pillar/control_cloud_digitalocean.sls |
| :language: yaml |
| |
| Salt virt with KVM cluster |
| |
| .. literalinclude:: tests/pillar/control_virt.sls |
| :language: yaml |
| |
| |
| Usage |
| ===== |
| |
| Working with salt-cloud |
| |
| .. code-block:: bash |
| |
| salt-cloud -m /path/to/map --assume-yes |
| |
| Debug LIBCLOUD for salt-cloud connection |
| |
| .. code-block:: bash |
| |
| export LIBCLOUD_DEBUG=/dev/stderr; salt-cloud --list-sizes provider_name --log-level all |
| |
| |
| Read more |
| ========= |
| |
| * http://salt.readthedocs.org/en/latest/ |
| * https://github.com/DanielBryan/salt-state-graph |
| * http://karlgrz.com/testing-salt-states-rapidly-with-docker/ |
| * https://mywushublog.com/2013/03/configuration-management-with-salt-stack/ |
| * http://russell.ballestrini.net/replace-the-nagios-scheduler-and-nrpe-with-salt-stack/ |
| * https://github.com/saltstack-formulas/salt-formula |
| * http://docs.saltstack.com/en/latest/topics/tutorials/multimaster.html |
| |
| |
| salt-cloud |
| ---------- |
| |
| * http://www.blog.sandro-mathys.ch/2013/07/setting-user-password-when-launching.html |
| * http://cloudinit.readthedocs.org/en/latest/topics/examples.html |
| * http://salt-cloud.readthedocs.org/en/latest/topics/install/index.html |
| * http://docs.saltstack.com/topics/cloud/digitalocean.html |
| * http://salt-cloud.readthedocs.org/en/latest/topics/rackspace.html |
| * http://salt-cloud.readthedocs.org/en/latest/topics/map.html |
| * http://docs.saltstack.com/en/latest/topics/tutorials/multimaster.html |
| |
| |
| Documentation and Bugs |
| ====================== |
| |
| To learn how to install and update salt-formulas, consult the documentation |
| available online at: |
| |
| http://salt-formulas.readthedocs.io/ |
| |
| In the unfortunate event that bugs are discovered, they should be reported to |
| the appropriate issue tracker. Use Github issue tracker for specific salt |
| formula: |
| |
| https://github.com/salt-formulas/salt-formula-salt/issues |
| |
| For feature requests, bug reports or blueprints affecting entire ecosystem, |
| use Launchpad salt-formulas project: |
| |
| https://launchpad.net/salt-formulas |
| |
| You can also join salt-formulas-users team and subscribe to mailing list: |
| |
| https://launchpad.net/~salt-formulas-users |
| |
| Developers wishing to work on the salt-formulas projects should always base |
| their work on master branch and submit pull request against specific formula. |
| |
| https://github.com/salt-formulas/salt-formula-salt |
| |
| Any questions or feedback is always welcome so feel free to join our IRC |
| channel: |
| |
| #salt-formulas @ irc.freenode.net |