Better Configuration and State Modularitymaster
openssh | openssh | ||||
======= | ======= | ||||
Install and configure an openssh server. | |||||
openssh | |||||
------- | |||||
Install openssh and set up the daemon, install a useful banner as well | |||||
States | |||||
------ | |||||
``openssh`` | |||||
Installs the ``openssh`` package and service. | |||||
``openssh.config`` | |||||
Installs the configuration file included in this formula (under "openssh/files"). | |||||
``openssh.banner`` | |||||
Installs a banner that users see when SSH-ing in. |
{% from "openssh/map.jinja" import openssh with context %} | |||||
include: | |||||
- openssh | |||||
sshd_banner: | |||||
file.managed: | |||||
- name: {{ openssh.banner }} | |||||
- source: {{ openssh.banner_src }} | |||||
- template: jinja |
{% from "openssh/map.jinja" import openssh with context %} | |||||
include: | |||||
- openssh | |||||
sshd_config: | |||||
file.managed: | |||||
- name: {{ openssh.sshd_config }} | |||||
- source: {{ openssh.sshd_config_src }} | |||||
- watch_in: | |||||
- service: {{ openssh.service }} | |||||
{% from "openssh/map.jinja" import openssh with context %} | |||||
openssh: | openssh: | ||||
pkg: | |||||
- installed | |||||
{% if grains['os_family'] == 'Debian' %} | |||||
- name: openssh-server | |||||
{% endif %} | |||||
pkg.installed: | |||||
- name: {{ openssh.server }} | |||||
service.running: | service.running: | ||||
- enable: True | - enable: True | ||||
- name: ssh | |||||
- name: {{ openssh.service }} | |||||
- require: | - require: | ||||
- pkg: openssh | |||||
- file: sshd_banner | |||||
- watch: | |||||
- file: sshd_config | |||||
sshd_config: | |||||
file.managed: | |||||
- name: /etc/ssh/sshd_config | |||||
- source: salt://openssh/files/sshd_config | |||||
- pkg: {{ openssh.server }} | |||||
sshd_banner: | |||||
file.managed: | |||||
- name: /etc/ssh/banner | |||||
- source: salt://openssh/files/banner | |||||
- template: jinja |
{% set openssh = salt['grains.filter_by']({ | |||||
'Debian': { | |||||
'server': 'openssh-server', | |||||
'service': 'ssh', | |||||
'sshd_config': '/etc/ssh/sshd_config', | |||||
'sshd_config_src': 'salt://openssh/files/sshd_config', | |||||
'banner': '/etc/ssh/banner', | |||||
'banner_src': 'salt://openssh/files/banner', | |||||
}, | |||||
'RedHat': { | |||||
'server': 'openssh-server', | |||||
'service': 'sshd', | |||||
'sshd_config': '/etc/ssh/sshd_config', | |||||
'sshd_config_src': 'salt://openssh/files/sshd_config', | |||||
'banner': '/etc/ssh/banner', | |||||
'banner_src': 'salt://openssh/files/banner', | |||||
}, | |||||
}, merge=salt['pillar.get']('openssh:lookup')) %} |