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. | ||||
| 
 | ||||
| ``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: | ||||
|  | ||||
							
								
								
									
										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', | ||||
|                 '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', | ||||
|  | ||||
							
								
								
									
										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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Nitin Madhok
						Nitin Madhok