Merge "SSHD Service extensions"
This commit is contained in:
commit
ccb78ad309
@ -48,3 +48,7 @@ mod 'systemd',
|
|||||||
mod 'opendaylight',
|
mod 'opendaylight',
|
||||||
:git => 'https://github.com/dfarrell07/puppet-opendaylight',
|
:git => 'https://github.com/dfarrell07/puppet-opendaylight',
|
||||||
:ref => 'master'
|
:ref => 'master'
|
||||||
|
|
||||||
|
mod 'ssh',
|
||||||
|
:git => 'https://github.com/saz/puppet-ssh',
|
||||||
|
:ref => 'v3.0.1'
|
||||||
|
@ -15,47 +15,45 @@
|
|||||||
#
|
#
|
||||||
# == Class: tripleo::profile::base::sshd
|
# == Class: tripleo::profile::base::sshd
|
||||||
#
|
#
|
||||||
# SSH profile for tripleo
|
# SSH composable service for TripleO
|
||||||
#
|
#
|
||||||
# === Parameters
|
# === Parameters
|
||||||
#
|
#
|
||||||
# [*bannertext*]
|
# [*bannertext*]
|
||||||
# The text used within SSH Banner
|
# The text used within /etc/issue and /etc/issue.net
|
||||||
# Defaults to hiera('BannerText')
|
# Defaults to hiera('BannerText')
|
||||||
#
|
#
|
||||||
|
# [*motd*]
|
||||||
|
# The text used within SSH Banner
|
||||||
|
# Defaults to hiera('MOTD')
|
||||||
|
#
|
||||||
class tripleo::profile::base::sshd (
|
class tripleo::profile::base::sshd (
|
||||||
$bannertext = hiera('BannerText', undef),
|
$bannertext = hiera('BannerText', undef),
|
||||||
|
$motd = hiera('MOTD', undef),
|
||||||
) {
|
) {
|
||||||
|
|
||||||
|
include ::ssh
|
||||||
|
|
||||||
if $bannertext {
|
if $bannertext {
|
||||||
$action = 'set'
|
$filelist = [ '/etc/issue', '/etc/issue.net', ]
|
||||||
} else {
|
file { $filelist:
|
||||||
$action = 'rm'
|
ensure => file,
|
||||||
|
backup => false,
|
||||||
|
content => $bannertext,
|
||||||
|
owner => 'root',
|
||||||
|
group => 'root',
|
||||||
|
mode => '0644'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
package {'openssh-server':
|
if $motd {
|
||||||
ensure => installed,
|
file { '/etc/motd':
|
||||||
}
|
ensure => file,
|
||||||
|
backup => false,
|
||||||
augeas { 'sshd_config_banner':
|
content => $motd,
|
||||||
context => '/files/etc/ssh/sshd_config',
|
owner => 'root',
|
||||||
changes => [ "${action} Banner /etc/issue" ],
|
group => 'root',
|
||||||
notify => Service['sshd']
|
mode => '0644'
|
||||||
}
|
}
|
||||||
|
|
||||||
file { '/etc/issue':
|
|
||||||
ensure => file,
|
|
||||||
backup => false,
|
|
||||||
content => $bannertext,
|
|
||||||
owner => 'root',
|
|
||||||
group => 'root',
|
|
||||||
mode => '0600'
|
|
||||||
}
|
|
||||||
|
|
||||||
service { 'sshd':
|
|
||||||
ensure => 'running',
|
|
||||||
enable => true,
|
|
||||||
hasstatus => false,
|
|
||||||
require => Package['openssh-server'],
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
---
|
---
|
||||||
features:
|
features:
|
||||||
- Added manifest and template to enable configuration of sshd_config
|
- Added /etc/issue & /etc/issue.net parameters
|
||||||
|
- Added MOTD banner parameters
|
||||||
|
- Added external module saz-ssh to allow management of sshd_config
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright 2016 Red Hat, Inc.
|
# Copyright 2017 Red Hat, Inc.
|
||||||
# All Rights Reserved.
|
# All Rights Reserved.
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
@ -13,18 +13,64 @@
|
|||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
#
|
#
|
||||||
|
# Unit tests for tripleo::profile::base::sshd
|
||||||
|
#
|
||||||
|
|
||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
|
|
||||||
describe 'tripleo::profile::base::sshd' do
|
describe 'tripleo::profile::base::sshd' do
|
||||||
|
|
||||||
context 'with banner configured' do
|
shared_examples_for 'tripleo::profile::base::sshd' do
|
||||||
it do
|
|
||||||
is_expected.to contain_file('/etc/issue').with({
|
context 'it should do nothing' do
|
||||||
'owner' => 'root',
|
it do
|
||||||
'group' => 'root',
|
is_expected.to contain_class('ssh')
|
||||||
'mode' => '0600',
|
is_expected.to_not contain_file('/etc/issue')
|
||||||
})
|
is_expected.to_not contain_file('/etc/issue.net')
|
||||||
|
is_expected.to_not contain_file('/etc/motd')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with issue and issue.net configured' do
|
||||||
|
let(:params) {{ :bannertext => 'foo' }}
|
||||||
|
it do
|
||||||
|
is_expected.to contain_file('/etc/issue').with({
|
||||||
|
'content' => 'foo',
|
||||||
|
'owner' => 'root',
|
||||||
|
'group' => 'root',
|
||||||
|
'mode' => '0644',
|
||||||
|
})
|
||||||
|
is_expected.to contain_file('/etc/issue.net').with({
|
||||||
|
'content' => 'foo',
|
||||||
|
'owner' => 'root',
|
||||||
|
'group' => 'root',
|
||||||
|
'mode' => '0644',
|
||||||
|
})
|
||||||
|
is_expected.to_not contain_file('/etc/motd')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with motd configured' do
|
||||||
|
let(:params) {{ :motd => 'foo' }}
|
||||||
|
it do
|
||||||
|
is_expected.to contain_file('/etc/motd').with({
|
||||||
|
'content' => 'foo',
|
||||||
|
'owner' => 'root',
|
||||||
|
'group' => 'root',
|
||||||
|
'mode' => '0644',
|
||||||
|
})
|
||||||
|
is_expected.to_not contain_file('/etc/issue')
|
||||||
|
is_expected.to_not contain_file('/etc/issue.net')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
on_supported_os.each do |os, facts|
|
||||||
|
context "on #{os}" do
|
||||||
|
let (:facts) {
|
||||||
|
facts
|
||||||
|
}
|
||||||
|
it_behaves_like 'tripleo::profile::base::sshd'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user