Add salt.ssh state for installing and configuring salt-sshtags/v0.57.0
@@ -35,6 +35,12 @@ Install a syndic. | |||
Install salt cloud. | |||
``salt.ssh`` | |||
------------ | |||
Install salt-ssh with roster file. | |||
Configure pillar data under salt:ssh_roster to feed the template. | |||
``Configuration`` | |||
================= | |||
Every option available in the templates can be set in pillar. Settings under 'salt' will be overridden by more specific settings under ``salt['master']``, ``salt['minion']`` or ``salt['cloud']`` |
@@ -45,6 +45,12 @@ salt: | |||
reactor: | |||
- 'deploy': | |||
- /srv/salt/reactors/deploy.sls | |||
ssh_roster: | |||
prod1: | |||
host: host.example.com | |||
user: ubuntu | |||
sudo: True | |||
priv: /etc/salt/ssh_keys/sshkey.pem | |||
salt_cloud_certs: | |||
aws: |
@@ -0,0 +1,12 @@ | |||
# | |||
# This file is managed by Salt! Do not edit by hand! | |||
# | |||
{%- set roster = salt['pillar.get']('salt:ssh_roster') -%} | |||
{%- if roster %} | |||
{%- for host, options in roster.items() %} | |||
{{ host }}: | |||
{%- for k, v in options.items() %} | |||
{{ k }}: {{ v }} | |||
{%- endfor %} | |||
{% endfor %} | |||
{%- endif -%} |
@@ -2,27 +2,33 @@ | |||
'Debian': {'salt-master': 'salt-master', | |||
'salt-minion': 'salt-minion', | |||
'salt-syndic': 'salt-syndic', | |||
'salt-cloud': 'salt-cloud'}, | |||
'salt-cloud': 'salt-cloud', | |||
'salt-ssh': 'salt-ssh'}, | |||
'Ubuntu': {'salt-master': 'salt-master', | |||
'salt-minion': 'salt-minion', | |||
'salt-syndic': 'salt-syndic', | |||
'salt-cloud': 'salt-cloud'}, | |||
'salt-cloud': 'salt-cloud', | |||
'salt-ssh': 'salt-ssh'}, | |||
'CentOS': {'salt-master': 'salt-master', | |||
'salt-minion': 'salt-minion', | |||
'salt-syndic': 'salt-syndic', | |||
'salt-cloud': 'salt-cloud'}, | |||
'salt-cloud': 'salt-cloud', | |||
'salt-ssh': 'salt-ssh'}, | |||
'Amazon': {'salt-master': 'salt-master', | |||
'salt-minion': 'salt-minion', | |||
'salt-syndic': 'salt-syndic', | |||
'salt-cloud': 'salt-cloud'}, | |||
'salt-cloud': 'salt-cloud', | |||
'salt-ssh': 'salt-ssh'}, | |||
'Fedora': {'salt-master': 'salt-master', | |||
'salt-minion': 'salt-minion', | |||
'salt-syndic': 'salt-syndic', | |||
'salt-cloud': 'salt-cloud'}, | |||
'salt-cloud': 'salt-cloud', | |||
'salt-ssh': 'salt-ssh'}, | |||
'RedHat': {'salt-master': 'salt-master', | |||
'salt-minion': 'salt-minion', | |||
'salt-syndic': 'salt-syndic', | |||
'salt-cloud': 'salt-cloud'}, | |||
'salt-cloud': 'salt-cloud', | |||
'salt-ssh': 'salt-ssh'}, | |||
'Gentoo': {'salt-master': 'app-admin/salt', | |||
'salt-minion': 'app-admin/salt', | |||
'salt-syndic': 'app-admin/salt', |
@@ -0,0 +1,13 @@ | |||
{% from "salt/package-map.jinja" import pkgs with context %} | |||
ensure salt-ssh is installed: | |||
pkg.installed: | |||
- name: {{ pkgs['salt-ssh'] }} | |||
ensure roster config: | |||
file.managed: | |||
- name: {{ pkgs.get('config_path', '/etc/salt') }}/roster | |||
- source: salt://salt/files/roster.jinja | |||
- template: jinja | |||
- require: | |||
- pkg: ensure salt-ssh is installed |