Puppet moduli, joka asentaa SSH palvelimen. Moduli asettaa myös SSH palvelimen asetustiedoston, jossa SSH palvelun porttinumero on vaihdettu 2222:n.
Modulin perusversio
Modulin rakenne:
xubuntu@xubuntu:~/puppet/modules$ tree
.
└── sshport
├── files
│ └── sshd_config
└── manifests
└── init.pp
3 directories, 2 files
Modulin init.pp tiedoston sisältö:
class sshport { package { 'openssh-server': ensure => present, allowcdrom => true, } file { '/etc/ssh/sshd_config': ensure => file, source =>"puppet:///modules/sshport/sshd_config", require => Package['openssh-server'], } service { 'ssh': ensure => running, enable => true, hasstatus => true, subscribe => [Package['openssh-server'], File['/etc/ssh/sshd_config']], require => File['/etc/ssh/sshd_config'], } } Modulin suorittaminen:
xubuntu@xubuntu:~/puppet$ sudo puppet apply --modulepath modules/ -e 'include sshport'
Modulin testaaminen:
xubuntu@xubuntu:~/puppet/modules/sshport$ ssh -p 2222 xubuntu@localhost xubuntu@localhost's password:
Permission denied, please try again.
Modulin toteutus template tiedostoa käyttämällä
Vaihtoehtoinen toteutus modulista, jossa SSH palvelimen asetustiedosto luodaan käyttämällä template tiedostoa. Template tiedostossa porttimäärityksen sisältävä riville tehdään interpolaatio modulissa käytetystä muuttujasta. SSH portin numero määritetään modulissa muuttujalla $port.
Modulin rakenne:
xubuntu@xubuntu:~/puppet/modules$ tree
.
└── sshport
├── files
│ └── sshd_config
├── manifests
│ └── init.pp
└── templates
└── sshd_config.erb
Modulin init.pp tiedoston sisältö:
class sshport {
$port='2562'
package { 'openssh-server':
ensure => present,
allowcdrom => true,
}
file { '/etc/ssh/sshd_config':
ensure => file,
content => template('sshport/sshd_config.erb'),
require => Package['openssh-server'],
}
service { 'ssh':
ensure => running,
enable => true,
hasstatus => true,
subscribe => [Package['openssh-server'], File['/etc/ssh/sshd_config']],
require => File['/etc/ssh/sshd_config'],
}
}
Modulin sshd_config.erb tiedosto on samanlainen kuin normaali SSH palvelimen asetustiedosto. Poikkeuksena porttimäärityksen sisältä rivi, jossa on seuraavanlainen muuttuja interpolaatio:
Port <%= port %>
Modulin suorittaminen:
xubuntu@xubuntu:~/puppet$ sudo puppet apply --modulepath modules/ -e 'include sshport'
Modulin testaaminen:
xubuntu@xubuntu:~/puppet$ ssh -p 2562 xubuntu@localhost
xubuntu@localhost's password:
Permission denied, please try again.
Lähteet
Vogeraal, Bram 2012. Module attachmentgenie/ssh. Puppet Forge.
http://forge.puppetlabs.com/attachmentgenie/ssh
About
Tätä dokumenttia saa kopioida ja muokata GNU General Public License (versio 2 tai uudempi) mukaisesti.
http://www.gnu.org/licenses/gpl.html
Pohjana Tero Karvisen Linux-kurssi, www.iki.fi/karvinen
Avainsanat: Puppet module, ssh, templates, Xubuntu