Linux keskitetty hallinta homework3

a) SSHD. Konfiguroi SSH uuteen porttiin Puppetilla.

Loin CentOS koneella sshd moduulin joka vaihtaa SSH demonin porttiin 2222. Halusin moduulin olevan mahdollisimman simppeli.

Ensimmäinen testi

Koneella on SSH palvelin portissa 22.

Tavoitetila

Koneen SSH palvelin kuuntelee vain portissa 2222.

Moodulin sisältö

Ensin varmistetaan SSH palvelimen olemassaolon.

package { ‘openssh-server’:
ensure => ‘latest’,
allow_virtual => ‘true’,
}

Sitten sen päällä oleminen.

service { ‘sshd’:
ensure => ‘running’,
enable => ‘true’,
}

Ja lopulta vaihdamme /etc/ssh/sshd_config tiedostoon portin.

file { ‘/etc/ssh/sshd_config’:
content => template(‘sshd/sshd_config.erb’),
require => Package[‘openssh-server’],
notify => Service[‘sshd’],
}

Full module:

https://github.com/EeJM/puppet/tree/master/modules/sshd

c) Etusivu uusiksi. Vaihda Apachen oletusweppisivu (default website) Puppetilla.

Aiemmin tekemäni Apache moduulini tekee tämän. https://github.com/EeJM/puppet/tree/master/modules/apache

d) Vapaaehtoinen vaikea. Tee uusi määritelty tyyppi (defined type), joka tekee Apachen nimipohjaisia virtuaalipalvelimia (name based virtualhost). Voit simuloida nimipalvelun toimintaa käsin hosts-tiedostolla.

Tein apache moduuliini määritellyn tyypin nimeltä apachevhost, joka sisältää kolme file tyyppiä. Ensimmäinen tiedosto on konfiguraatiotiedosto virtuaalihostille, toinen on hakemisto jonne tämä nettisivu tulee ja kolmas on simppeli index.html tiedosto nettisivuhakemistoon.

Tämä toimii toistaiseksi vain Red Hat pohjaisissa koneissa, sillä en onnistunut käyttämään määritellyn tyypin sisällä muuttujia, joita pystyin normaalisti tyypeissä käyttämään. Esimerkiksi en voinut tehdä ” require => Package[‘$apache’], vaan jouduin lisäämään suoraan oikean paketin nimen määriteltyyn tyyppiin.

define apachevhost {
file { “/etc/httpd/conf.d/${title}.conf”:
ensure => ‘present’,
mode => ‘0644’,
content => template(“apache/vhost.conf.erb”),
require => Package[‘httpd’],
notify => Service[‘httpd’],
}

file { “/var/www/${title}/”:
ensure => ‘directory’,
mode => ‘0755’,
}

file { “/var/www/${title}/index.html”:
ensure => ‘present’,
mode => ‘0644’,
content => “This is a virtualhost ${title}\n”
}
}

Lopputesti

Moduuli loi onnistuneesti testsite.eeromikkonen.com ja testsite2.eeromikkonen.com virtuaalihostit. Muokkasin /etc/hosts tiedostoon nämä osoitteet ja hain ne onnistuneesti “curl testsite.eeromikkonen.com” joka palautti “This is a virtualhost testsite”.

Moduuli githubissa:

https://github.com/EeJM/puppet/tree/master/modules/apache

Lähteet:

https://docs.puppet.com

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.