Tehtäväksi anto:
Tee tavallisia työpöydän asetuksia puppet moduleiksi. Laita ne versionhallintaan. Konfiguroi tyhjä kone, vaikkapa juuri bootattu live-USB, lataamalla puppet-asetukset versionhallinnasta.
Teen tehtävän kotiläppärillä USB Live Xubuntu 16.04 LTS (64-bit)
Aloitan Firefox asetuksista. Firefox joutuu käynnistämään ja sulkemaan, niin päätin kirjoittaa kommentit tänne Chrome:n kautta. Asennan Google Chrome.
Lataan 64-bit Chrome
$wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
Asennan ladatun paketin pakottamalla asentamaan riippuvuudet.
$sudo dpkg -i --force-depends google-chrome-stable_current_amd64.deb
Tuli virheilmoitus:
dpkg: google-chrome-stable: dependency problems, but configuring anyway as you requested:
google-chrome-stable depends on libappindicator1; however:
Package libappindicator1 is not installed.
Pakotan silti asentamaan:
$sudo apt-get install -f
Asennus valmis.
Muokan Firefox konfiguraatiota:
$sudoedit /etc/firefox/syspref.js
Lisän sinne rivi:
lockPref(‘browser.startup.homepage’, “http://gomummi.com”);
Kun käynnistän Firefox se aukea just täällä sivulla.
Sitten siirryn varsinaiseen tehtävän
Minun puppet module:
user@hp:~$ cd /etc/puppet/modules
user@hp:/etc/puppet/modules$ ls
user@hp:/etc/puppet/modules$ sudo mkdir firefox
user@hp:/etc/puppet/modules$ cd firefox
user@hp:/etc/puppet/modules/firefox$ sudo mkdir manifests
user@hp:/etc/puppet/modules/firefox$ cd manifests/
user:/etc/puppet/modules/firefox/manifests$ sudoedit init.pp
Teen kopion Firefox:in konfiguration tiedostoa moduliin ja muokkan sen:
$ sudo cp -f /etc/firefox/syspref.js /etc/puppet/modules/firefox/syspref.js
$ sudoedit /etc/puppet/modules/firefox/syspref.js
$ sudo puppet apply -e ‘class{firefox:}’
Error: Could not find template ‘firefox/syspref.js’ at /etc/puppet/modules/firefox/manifests/init.pp:3 on node hp.home
Error: Could not find template ‘firefox/syspref.js’ at /etc/puppet/modules/firefox/manifests/init.pp:3 on node hp.home
Verheilmoituksesta sain seville että puppet ei löydä template:ia. Luon oma templates kansio ja vien sinne syspref.js tiedoston.
user@hp:/etc/puppet/modules/firefox$ ls
manifests syspref.js
user@hp:/etc/puppet/modules/firefox$ sudo mkdir templates
user@hp:/etc/puppet/modules/firefox$ sudo cp -f syspref.js templates/syspref.js
user@hp:/etc/puppet/modules/firefox/templates$ sudo puppet apply -e ‘class{firefox:}’
Notice: Compiled catalog for hp.home in environment production in 0.26 seconds
Notice: /Stage[main]/Firefox/File[/etc/firefox/syspref.js]/content: content changed ‘{md5}94904e3bebbde58b343fddb4d9be6acc’ to ‘{md5}ae7b6316698c28c8df62997e9824b98b’
Notice: Finished catalog run in 0.09 seconds
Nyt voin poistaa vanhan syspref.js tiedoston väärästä paikasta:
user@hp:/etc/puppet/modules/firefox/templates$ cd ..
user@hp:/etc/puppet/modules/firefox$ ls
manifests syspref.js templates
user@hp:/etc/puppet/modules/firefox$ sudo rm -rf syspref.js
user@hp:/etc/puppet/modules/firefox$ ls
manifests templates
user@hp:/etc/puppet/modules/firefox$ sudo puppet apply -e ‘class{firefox:}’
Notice: Compiled catalog for hp.home in environment production in 0.24 seconds
Notice: Finished catalog run in 0.04 seconds
user@hp:/etc/puppet/modules/firefox$
Module toimii moitettomasti.
Asennan Git ja laitan sinne käyttäjän tiedot ja aika viive 1 tunti:
$ git config –global user.email “xelsinki@hotmail.com”
$ git config –global user.name “Aleksandr Pantsesnyi”
$ git config –global credential.helper “cache –timeout=3600”
Menin GitHub.com:iin, kirjauduin omaan tiliin ja loin uuden repositorin firefox. Painamalla Clone Repository sain URL:iin. https://github.com/xelsinki/firefox.git . Luon kotihakemistoon kansion git ja kloonan sinne repository GitHub.com:ista
user@hp:/etc/puppet/modules/firefox$ cd ~
user@hp:~$ mkdir git
user@hp:~$ cd git
user@hp:~/git$ git clone https://github.com/xelsinki/firefox.git
Cloning into ‘firefox’…
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
Checking connectivity… done.
Kopioin modulini git repositoriin:
user@hp:~/git/firefox$ cp -r /etc/puppet/modules/firefox .
Huomasin että kopioin koko kansion. File Managerissa copy/paste:malla laitoin manifests ja templates kansiot oikean paikaan ja poistin tyhjän kansion. Nyt se näyttää tällaiselta.
user@hp:~/git$ tree
.
└── firefox
├── LICENSE
├── manifests
│ └── init.pp
└── templates
└── syspref.js
3 directories, 3 files
Kansiosta firefox lisään muutoksia repositoriin ja kirjoitan kommentin:
user@hp:~/git/firefox$ git add .
user@hp:~/git/firefox$ git commit
[master 07e5dd5] This is firefox puppet module for configurating a start page in firefox browser
2 files changed, 12 insertions(+)
create mode 100644 manifests/init.pp
create mode 100644 templates/syspref.js
user@hp:~/git/firefox$
Tarkistan git:
user@hp:~/git/firefox$ git log
Lähteet:
Opettajamme ohjeet: http://terokarvinen.com/2016/publish-your-project-with-github
Git – the simple guide: http://rogerdudler.github.io/git-guide/
Markdown basic syntax: https://guides.github.com/features/mastering-markdown/#syntax