SSH-demoni Puppet-moduulina

Palvelintenhallinta-kurssilla ensimmäisenä viikkotehtävänä oli jonkin demonin asentaminen. Tunnilla ehdittiin jo tehdä Apachen Puppet-moduuli, joten nyt piti sitten tehdä jotain muuta. Tunnilla loin itselleni GitHub-repositoryn, mutta vielä ei MarkDown luonnistunut, joten julkaisen kotitehtävän vielä täällä.

a) Asenna jokin muu demoni kuin Apache. Raportoi, miten rakensit, selvitit ja testasit kunkin osan (esim. sudo puppet resource, puppet describe, lähteet…). Julkaise myös modulisi lähdekoodi niin, että sen voi helposti ottaa käyttöön.

Ensimmäisenä päätin poistaa kaikki vanhat asennukset, sillä en ole tehnyt aikaisempia kotitehtäviä live-tikulla, vaan asentanut ne koneelleni. Poistin Apachen, MySQL:n ja OpenSSH:n komennoilla

sudo apt-get purge apache2* mysql-server mysql-client openssh-client openssh-server

Tähden käyttö poistossa on vaarallista, jos et varmasti tiedä mitä aiot poistaa.

Ensin asensin Puppetin ja Treen. komennoilla

sudo apt-get update
sudo apt-get install puppet tree

Hetken mietin kuinka lähteä tuota SSH-moduulia tekemään ja löysin yhden Teron ohjeista. Lähdin liikkeelle siitä, että asensin ensin openssh-serverin, jotta saisin kaikki tarvittavat tiedot Puppetia varten tutkimalla luotuja tiedostoja. Asennus tutulla komennolla

sudo apt-get install openssh-server

Menin kansioon /etc/ssh/ ja siellä editoin sshd_config-tiedostoa komennolla

cd /etc/ssh/ 
sudoedit sshd_config

ja lisäsin yhden rivin tiedoston loppuum, rajoitin maksimi kirjautumisyritykset 3 kappaleeseen. Kuva alla

sshd_config.png

Tämän jälkeen loin Puppetia varten uuden moduulin sshd ja kopiooin tuon tiedoston moduulin templates-kansioon. Tarkistin vielä kansiorakenteen Tree-ohjelmalla.

cd /etc/puppet/modules/
sudo mkdir sshd
cd sshd/
sudo mkdir templates
cd /etc/ssh
sudo cp sshd_config /etc/puppet/modules/sshd/templates/
tree
.
├── etckeeper-commit-post
├── etckeeper-commit-pre
├── manifests
├── modules
│   └── sshd
│       └── templates
│           └── sshd_config
└── puppet.conf
4 directories, 4 files

Tutkin sshd_config tiedostoa komennolla

sudo puppet resource file /etc/ssh/sshd_config

Tuloksesta saa helposti muokattua moduulia varten tarvittavat rivit, kun määrittelen tuon konfigurointi-tiedoston.

file { '/etc/ssh/sshd_config':
 ensure => 'file',
 content => '{md5}888320981fe1d47f676dd670f38bd743',
 ctime => '2017-10-29 15:40:16 +0200',
 group => '0',
 mode => '644',
 mtime => '2017-10-29 15:40:16 +0200',
 owner => '0',
 type => 'file',
}

Ensin pitää luoda alikansio manifests sshd-kansioon komennolla

cd /etc/puppet/modules/sshd/
sudo mkdir manifests

Ja alkaa luomaan moduulia komennolla

cd /etc/puppet/modules/sshd/manifests
sudoedit init.pp

Tämän jälkeen pitää vielä luoda Puppetin manifests-kansioon site.pp-tiedosto komennolla

cd /etc/puppet/manifests
sudoedit site.pp

Tiedostoon lisätään yksi rivi

include sshd

ja tallennetaan.

Sitten vielä poistan äsken asentamani OpenSSH:n komennolla

sudo apt-get purge openssh*

Ja testataan moduuli ajamalla se komennolla

sudo puppet apply -e 'class {sshd:}'

 

Ja tulos oli seuraava

Notice: Compiled catalog for kuusi.xx.xxxxx.fi in environment production in 0.42 seconds
Notice: /Stage[main]/Sshd/Package[openssh-server]/ensure: ensure changed 'purged' to 'present'
Notice: /Stage[main]/Sshd/File[/etc/ssh/sshd_config]/content: content changed '{md5}bd3a2b95f8b4b180eed707794ad81e4d' to '{md5}888320981fe1d47f676dd670f38bd743'
Notice: /Stage[main]/Sshd/Service[ssh]: Triggered 'refresh' from 1 events
Notice: Finished catalog run in 5.27 seconds

Toimiko siis komento, tarkistetaan menemällä kansioon /etc/ssh/ ja tarkistamalla siellä olevan sshd_config-tiedoston sisältö komennoilla

cd /etc/ssh/
sudoedit sshd_config

Ja viimeisellä rivillä näkyy tekemäni maksimi  3 kirjautumisen rivi. Eli template toimi. Ssh-kansio myös löytyi etc/-kansiosta, joten asennus oli onnistunut.

Lopuksi tein vielä Teron ohjeiden mukaan Githubiin viennin. Repository tehtiinkin jo tunnilla, samoin kuin ensimmäiset Apache moduulit, joten teen vain asennuksen ja tiedostojen kopioinnin Githubiin. Tekemäni moduuli ja löytyy Githubista.

Lähteet

Lisenssi

Tätä tekstiä saa kopioida ja muokata GNU General Public License v3 mukaan. http://www.gnu.org/licenses/gpl-3.0.html

 

 

 

Advertisements

2 thoughts on “SSH-demoni Puppet-moduulina

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s