Merge pull request #58 from juiceinc/ssh-roster
Add salt.ssh state for installing and configuring salt-ssh
This commit is contained in:
commit
8100753f71
@ -35,6 +35,12 @@ Install a syndic.
|
|||||||
|
|
||||||
Install salt cloud.
|
Install salt cloud.
|
||||||
|
|
||||||
|
``salt.ssh``
|
||||||
|
------------
|
||||||
|
|
||||||
|
Install salt-ssh with roster file.
|
||||||
|
Configure pillar data under salt:ssh_roster to feed the template.
|
||||||
|
|
||||||
``Configuration``
|
``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']``
|
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:
|
reactor:
|
||||||
- 'deploy':
|
- 'deploy':
|
||||||
- /srv/salt/reactors/deploy.sls
|
- /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:
|
salt_cloud_certs:
|
||||||
aws:
|
aws:
|
||||||
|
12
salt/files/roster.jinja
Normal file
12
salt/files/roster.jinja
Normal file
@ -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',
|
'Debian': {'salt-master': 'salt-master',
|
||||||
'salt-minion': 'salt-minion',
|
'salt-minion': 'salt-minion',
|
||||||
'salt-syndic': 'salt-syndic',
|
'salt-syndic': 'salt-syndic',
|
||||||
'salt-cloud': 'salt-cloud'},
|
'salt-cloud': 'salt-cloud',
|
||||||
|
'salt-ssh': 'salt-ssh'},
|
||||||
'Ubuntu': {'salt-master': 'salt-master',
|
'Ubuntu': {'salt-master': 'salt-master',
|
||||||
'salt-minion': 'salt-minion',
|
'salt-minion': 'salt-minion',
|
||||||
'salt-syndic': 'salt-syndic',
|
'salt-syndic': 'salt-syndic',
|
||||||
'salt-cloud': 'salt-cloud'},
|
'salt-cloud': 'salt-cloud',
|
||||||
|
'salt-ssh': 'salt-ssh'},
|
||||||
'CentOS': {'salt-master': 'salt-master',
|
'CentOS': {'salt-master': 'salt-master',
|
||||||
'salt-minion': 'salt-minion',
|
'salt-minion': 'salt-minion',
|
||||||
'salt-syndic': 'salt-syndic',
|
'salt-syndic': 'salt-syndic',
|
||||||
'salt-cloud': 'salt-cloud'},
|
'salt-cloud': 'salt-cloud',
|
||||||
|
'salt-ssh': 'salt-ssh'},
|
||||||
'Amazon': {'salt-master': 'salt-master',
|
'Amazon': {'salt-master': 'salt-master',
|
||||||
'salt-minion': 'salt-minion',
|
'salt-minion': 'salt-minion',
|
||||||
'salt-syndic': 'salt-syndic',
|
'salt-syndic': 'salt-syndic',
|
||||||
'salt-cloud': 'salt-cloud'},
|
'salt-cloud': 'salt-cloud',
|
||||||
|
'salt-ssh': 'salt-ssh'},
|
||||||
'Fedora': {'salt-master': 'salt-master',
|
'Fedora': {'salt-master': 'salt-master',
|
||||||
'salt-minion': 'salt-minion',
|
'salt-minion': 'salt-minion',
|
||||||
'salt-syndic': 'salt-syndic',
|
'salt-syndic': 'salt-syndic',
|
||||||
'salt-cloud': 'salt-cloud'},
|
'salt-cloud': 'salt-cloud',
|
||||||
|
'salt-ssh': 'salt-ssh'},
|
||||||
'RedHat': {'salt-master': 'salt-master',
|
'RedHat': {'salt-master': 'salt-master',
|
||||||
'salt-minion': 'salt-minion',
|
'salt-minion': 'salt-minion',
|
||||||
'salt-syndic': 'salt-syndic',
|
'salt-syndic': 'salt-syndic',
|
||||||
'salt-cloud': 'salt-cloud'},
|
'salt-cloud': 'salt-cloud',
|
||||||
|
'salt-ssh': 'salt-ssh'},
|
||||||
'Gentoo': {'salt-master': 'app-admin/salt',
|
'Gentoo': {'salt-master': 'app-admin/salt',
|
||||||
'salt-minion': 'app-admin/salt',
|
'salt-minion': 'app-admin/salt',
|
||||||
'salt-syndic': 'app-admin/salt',
|
'salt-syndic': 'app-admin/salt',
|
||||||
|
13
salt/ssh.sls
Normal file
13
salt/ssh.sls
Normal file
@ -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
|
Loading…
Reference in New Issue
Block a user