Linuxin keskitetty hallinta: Harjoitus 3

Nikolai Kleiman

 

Tehtävänanto

 

Tee tavallisia työpöydän asetuksia puppet moduleiksi. Laita ne versionhallintaan. Konfiguroi tyhjä kone, vaikkapa juuri bootattu live-USB, lataamalla puppet-asetukset versionhallinnasta.

 

Ympäristö

Harjoituksessa käytetään Xubuntu versio 16.04.1 (tiedosto xubuntu-16.04.1-desktop-amd64.iso). Koneena käytettiin VirtualBox ohjelmistoa ja host-koneena Dell Ultrabook (i7 CPU/8GB RAM/256GB SSD HDD). Agent-kone on asennettu samasta imagesta.  Alhaalla on verkkokonffi:

nkleiman@puppetmaster:~$ cat /etc/hosts

127.0.0.1       localhost

127.0.1.1       puppetmaster.local puppetmaster

10.0.0.5       puppet-agent.local puppet-agent

nkleiman@puppet-agent:~$ cat /etc/hosts

127.0.0.1       localhost

127.0.1.1       puppet-agent.local puppet-agent

10.0.0.1        puppetmaster.local

 

Harjoitus

 

Ympäristön pystyttäminen sekä konfigurointi

21:17 Käynnistin molemmat virtuaalikoneet ja tarkistin että verkko toimii:

PING puppet-agent.local (10.0.0.5) 56(84) bytes of data.

64 bytes from puppet-agent.local (10.0.0.5): icmp_seq=1 ttl=64 time=0.337 ms

64 bytes from puppet-agent.local (10.0.0.5): icmp_seq=2 ttl=64 time=0.264 ms

64 bytes from puppet-agent.local (10.0.0.5): icmp_seq=3 ttl=64 time=0.742 ms

 

21:18 Tarkistin myös agent-koneella että yhteys masteriin toimii:

nkleiman@puppet-agent:~$ ping puppetmaster.local

PING puppetmaster.local (10.0.0.1) 56(84) bytes of data.

64 bytes from puppetmaster.local (10.0.0.1): icmp_seq=1 ttl=64 time=0.681 ms

64 bytes from puppetmaster.local (10.0.0.1): icmp_seq=2 ttl=64 time=0.304 ms

64 bytes from puppetmaster.local (10.0.0.1): icmp_seq=3 ttl=64 time=0.441 ms

 

 

21:22 Pysäytin puppetmaster-palvelun ja poistin olemassa olevat sertifikaatit (Docker-projekti):

nkleiman@puppetmaster:~$ sudo service puppetmaster stop

nkleiman@puppetmaster:~$ sudo rm -r /var/lib/puppet/ssl

 

21:23 Käynnistin puppetmaster-palvelun:

nkleiman@puppetmaster:~$ sudo service puppetmaster start

 

21:25 Katsoin cert listaa master- koneella ja allekirjoitin agent-koneen varmennetta:

 

nkleiman@puppetmaster:~$ sudo puppet cert --sign puppet-agent.local

 

nkleiman@puppetmaster:~$ sudo puppet cert list --all

+ "puppet-agent.local" (SHA256) 4D:32:C0:4B:AE:98:AB:84:2F:D7:44:CB:01:90:E7:21:1F:13:72:2A:5D:32:21:FE:09:04:5F:30:0D:FF:59:B9

+ "puppetmaster.local" (SHA256) 89:68:57:53:71:FE:E6:38:00:BE:84:DA:61:12:14:BD:41:27:47:95:59:85:B7:92:73:03:DD:DF:1B:41:97:88 (alt names: "DNS:puppetmaster.local")

 

21:27 Ajoin testin agent-koneella:

 

nkleiman@puppet-agent:~$ sudo puppet agent --test

Info: Retrieving pluginfacts

Info: Retrieving plugin

Info: Caching catalog for puppet-agent.local

Notice: Finished catalog run in 0.03 seconds

 

21:29 Yhteys masterin ja agentin välillä toimii, joten voin edetä varsinaisen tehtäväannon kanssa.

 

Firefoxin sekä terminalin asetuksia Puppet moduuliksi

21:35 Loin uuden kansion wksenvset-moduulin varten:

 

nkleiman@puppetmaster:~$ cd /etc/puppet/

nkleiman@puppetmaster:/etc/puppet# mkdir -p manifests/modules/wksenvset/manifests/

nkleiman@puppetmaster:/etc/puppet# sudoedit /etc/puppet/modules/wksenvset/manifests/init.pp

 

nkleiman@puppetmaster:/etc/puppet/modules$ tree

 

___ helloworld

___ ___ manifests

___ ___ ___ init.pp

___ ___ templates

___     ___ mytemplate.erb

___ wksenvset

    ___ manifests

    ___ ___ init.pp

 

nkleiman@puppetmaster:/etc/puppet$ cat /etc/puppet/modules/wksenvset/manifests/init.pp

 

class wksenvset {

        $def_user="nkleiman"

 

        # set default home page

        file { '/etc/firefox/syspref.js':

                content => 'lockPref("browser.startup.homepage", "http://iltalehti.fi");\n\n',

        }

        # turn on colored prompt

        exec { 'turn-color-on':

                command => "/bin/sed -i 's/#force_color_prompt=yes/force_color_prompt=yes/' /home/$def_user/.bashrc"

        }

}

 

21:41 Muokkasin site.pp seuraavasti:

 

nkleiman@puppetmaster:/etc/puppet$ cat /etc/puppet/manifests/site.pp

class {"wksenvset":}

#include helloworld

 

Moduulin testaus

 

21:43 Ajoin testin agent-koneella:

 

nkleiman@puppet-agent:~$ sudo puppet agent --test

[sudo] password for nkleiman:

Info: Retrieving pluginfacts

Info: Retrieving plugin

Info: Caching catalog for puppet-agent.local

Info: Applying configuration version '1479158584'

Notice: /Stage[main]/Wksenvset/Exec[turn-color-on]/returns: executed successfully

Notice: Finished catalog run in 0.05 seconds

 

 

21:45 Kirjauduin ulos ssh-istunnosta ja kirjauduin heti takaisin:

 

nkleiman@puppet-agent:~$ logout

Connection to 10.0.0.5 closed.

nkleiman@puppetmaster:~$ ssh 10.0.0.5

nkleiman@10.0.0.5's password:

Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-45-generic x86_64)

 

 * Documentation:  https://help.ubuntu.com

 * Management:     https://landscape.canonical.com

 * Support:        https://ubuntu.com/advantage

 

39 packages can be updated.

24 updates are security updates.

 

Last login: Mon Nov 14 23:51:35 2016 from 10.0.0.1

nkleiman@puppet-agent:~$

nkleiman@puppet-agent:~$

 

21:47 Avasin Firefox-selaimen agent-koneessa ja tarkistin että oletussivu on tullut masterilta

 

 

21:49 Ajoin testin agent-koneella uudestaan:

 

nkleiman@puppet-agent:~$ sudo puppet agent --test

Info: Retrieving pluginfacts

Info: Retrieving plugin

Info: Caching catalog for puppet-agent.local

Info: Applying configuration version '1479160522'

Notice: /Stage[main]/Wksenvset/Exec[turn-color-on]/returns: executed successfully

Notice: Finished catalog run in 0.03 seconds

 

 

21:51 Avasin Firefox-selaimen agent-koneessa ja tarkistin että toinen oletussivu on tullut masterilta

 

 

 

Tallennus versionhallintaan

 

21:55 Loin uuden kansion wksenvset-repo varten ja kopioin sinne kaikki tarvittavat tiedostot:

 

nkleiman@puppetmaster:/etc/puppet$ cd

nkleiman@puppetmaster:~$ cp –r /etc/puppet/modules/wksenvset .

nkleiman@puppetmaster:~$ cd wksenvset$ cd

nkleiman@puppetmaster:~/wksenvset$ echo “# wksenvset” > README.md

 

21:56 Loin uuden repon GitHubissa:

21:57 Tietolähteen alustaminen sekä tiedostojen lisäys:

 

nkleiman@puppetmaster:~$ git add .

nkleiman@puppetmaster:~$ git commit ” wksenvset module”

nkleiman@puppetmaster:~$ git remote add origin https://github.com/nickatfi/wksenvset.git

nkleiman@puppetmaster:~$ git config --global credential.helper cache

nkleiman@puppetmaster:~$ git push -u origin master

 

 

22:02 Agent-koneella kloonasin wksenvset-repon kotikansiooni:

 

git clone https://github.com/nickatfi/wksenvset.git

 

nkleiman@puppet-agent:~/wksenvset$

nkleiman@puppet-agent:~/wksenvset$ tree

 

___ wksenvset

    ___ manifests

    ___ ___ init.pp

    ___ README.md

 

 

22:04 Loin README.md ja kirjoitin sinne seuraavat tiedot:

 

# wksenvset

 

0. git clone https://github.com/nickatfi/wksenvset

1. Edit hosts file and put correct ip address for the puppet server

2. sudo agent_install.sh

 

 

22:06 Kopioin /etc/hosts - sekä puppet.conftiedostot  wksenvset-kansioon:

 

nkleiman@puppet-agent:~$ cd

nkleiman@puppet-agent:~/wksenvset$ sudo cp /etc/hosts etc.hosts

nkleiman@puppet-agent:~/wksenvset$ sudo cp /etc/puppet/puppet.conf puppet.agent.conf

 

 

22:08 Lisäsin tiedostot sekä tallensin muutokset versionhallinataan:

 

nkleiman@puppet-agent:~/wksenvset$ git add README.md puppet.agent.conf

nkleiman@puppet-agent:~/wksenvset$ git push -u origin master

 

 

22:12 Loin agent_install.sh Bash-scriptin:

 

nkleiman@puppet-agent:~/wksenvset$ cat agent_install.sh

 

#!/bin/bash

apt-get update

apt-get -y install puppet

 

service puppet stop

cp -f etc.hosts /etc/hosts

cp -f puppet.agent.conf /etc/puppet/puppet.conf

 

puppet agent _enable

service puppet start

 

22:16 Lisäsin skriptille suoritusoikeden:

 

nkleiman@puppet-agent:~/wksenvset$ chmod +x agent_install.sh

nkleiman@puppet-agent:~/wksenvset$ tree

 

___ agent_install.sh

___ etc.hosts

___ puppet.agent.conf

___ README.md

___ wksenvset

    ___ manifests

    ___ ___ init.pp

    ___ README.md

 

 

22:18 Lisäsin tiedoston sekä tallensin muutokset versionhallinataan:

 

nkleiman@puppet-agent:~/wksenvset$ git add agent_install.sh

nkleiman@puppet-agent:~/wksenvset$ git push -u origin master

 

 

 

 

Tyhjän koneen konfigurointi sekä testaus

 

 

22:20 Poistin kaikki tiedostot sekä poistin puppet-ohjelmaa

 

nkleiman@puppet-agent:~/wksenvset$ cd

nkleiman@puppet-agent:~$ sudo rm rf wksenvset

nkleiman@puppet-agent:~$ sudo apt-get purge puppet

 

 

 

22:24 Agent-koneella kloonasin wksenvset-repon kotikansiooni:

 

git clone https://github.com/nickatfi/wksenvset.git

 

nkleiman@puppet-agent:~/wksenvset$ tree

___ agent_install.sh

___ etc.hosts

___ puppet.agent.conf

___ README.md

___ wksenvset

    ___ manifests

    ___ ___ init.pp

    ___ README.md

 

Otincolored prompt” pois päältä:

 

22:28 Tarkistin puppetmasterin ip-osoitteen ja ajoin agent_install.sh-skriptin:

 

 

22:32 Avasin Firefox-selaimen agent-koneessa ja tarkistin että apple.fi -oletussivu on tullut masterilta:

 

 

 

Lähteet

[1] http://terokarvinen.com/2016/firefox-system-wide-settings-etcfirefoxsyspref-js

[2] http://terokarvinen.com/2016/aikataulu-linuxin-keskitetty-hallinta-ict4tn011-10-loppusyksy-2016

 

Tietoa

Tätä dokumenttia saa kopioida ja muokata GNU General Public License (versio 2 tai uudempi) mukaisesti. http://www.gnu.org/licenses/gpl.html