Difference between revisions of "Linuxi administreerimine eksamiabi 2014"

From ICO wiki
(1. Puppet abil tuleb teha lihtsaid asju)
 
(90 intermediate revisions by 6 users not shown)
Line 1: Line 1:
__FORCETOC__
+
= Eksami näidiste lehe Sisukord =
 
Eksami ajal saab veel kaitsta laboreid, kuid soovitav on need enne eksamit ära kaitsta, kuna eksam on päris pingeline.
 
Eksami ajal saab veel kaitsta laboreid, kuid soovitav on need enne eksamit ära kaitsta, kuna eksam on päris pingeline.
  
Line 43: Line 43:
  
 
= 1. Puppet abil tuleb teha lihtsaid asju =
 
= 1. Puppet abil tuleb teha lihtsaid asju =
Loo kasutaja kjk212 koos kodukasutaga
+
== Loo kasutaja kjk212 koos kodukasutaga ==
  
 
Loo serveris '''''/etc/puppet/manifests/classes/users.pp''''' fail, sisuga
 
Loo serveris '''''/etc/puppet/manifests/classes/users.pp''''' fail, sisuga
 +
<source lang="php">
 +
class users {
 
  user { 'kjk212':
 
  user { 'kjk212':
 
   ensure => present,
 
   ensure => present,
Line 54: Line 56:
 
  managehome => true,
 
  managehome => true,
 
       }
 
       }
}
+
}
 +
</source>
 +
 
 +
Failis ''''/etc/puppet/manifests/site.pp'''' <br>
 +
lisa ''''include users'''' kliendi node alla
 +
 
 +
<source lang="php">
 +
import "classes/*"
 +
node 'desktop.planet.zz' inherits basenode {
 +
include users
 +
}
 +
</source>
 +
 
 +
== Paigalda pakk apache2 ja htop ning eemalda cowsay ==
 +
 
 +
Loo serveris '''''/etc/puppet/manifests/classes/tarkvara.pp''''' fail sisuga
 +
<source lang="php">
 +
class tarkvara {
 +
        package { ['htop', 'apache2']: ensure => latest, }
 +
        package { 'cowsay': ensure => absent,}
 +
}
 +
</source>
  
Paigalda pakk apache2
+
Failis ''''/etc/puppet/manifests/site.pp'''' <br>
 +
lisa ''''include tarkvara'''' kliendi node alla
  
Paigalda pakk htop
+
<source lang="php">
 +
import "classes/*"
 +
node 'desktop.planet.zz' inherits basenode {
 +
include tarkvara
 +
}
 +
</source>
  
Loo serveris '''''/etc/puppet/manifests/classes/users.pp''''' , sisuga
+
== Tekita fail, mille sisu on ==
class tarkvara {
+
Tekita fail, mille sisu on selle ülesande tekst asukohta /var/eksam/yl1.txt<br>
        package { 'htop': ensure => latest, }
+
Sea loodud faili omanikuks eespool loodud kasutaja ja grupiks audio. Sea õigused selliselt, et kasutaja saab kõike teha ja grupp lugeda/kirjutada. Teised ei saa midagi teha
        package { 'apache2': ensure => present,}
 
}
 
 
 
Seejärel include tarkvara
 
Tekita fail, mille sisu on selle ülesande tekst asukohta /var/eksam/yl1.txt
 
  
 
Loo serveris '''''/etc/puppet/manifests/classes/fail.pp''''' , sisuga
 
Loo serveris '''''/etc/puppet/manifests/classes/fail.pp''''' , sisuga
class lihtne {
+
<source lang="php">
  file { "/etc/issue":  
+
class lihtne {
 +
  file { "/var/eksam/yl1.txt":  
 
                 ensure => present,  
 
                 ensure => present,  
 
                 mode => 760,  
 
                 mode => 760,  
 
                 owner => kjk212,  
 
                 owner => kjk212,  
 
                 group => audio,  
 
                 group => audio,  
                 content => Loo kasutaja kjk212 koos kodukasutaga
+
                 content => "Tekita fail, mille sisu on selle ülesande tekst asukohta /var/eksam/yl1.txt
Paigalda pakk apache2
+
  Sea loodud faili omanikuks eespool loodud kasutaja ja grupiks audio. Sea õigused selliselt, et kasutaja saab kõike teha ja grupp lugeda/kirjutada. Teised ei saa midagi teha."
Paigalda pakk htop
 
Tekita fail, mille sisu on selle ülesande tekst asukohta /var/eksam/yl1.txt
 
  Sea loodud faili omanikuks eespool loodud kasutaja ja grupiks audio. Sea õigused selliselt, et kasutaja saab kõike teha ja grupp lugeda/kirjutada. Teised ei saa midagi teha.
 
 
                 }
 
                 }
 
  }
 
  }
Seejärel siin failis => '''''/etc/puppet/manifests/site.pp lisame'''''
+
</source>
include lihtne
+
Kui kausta pole olemas, mille sisse fail tuleb luua lisa peale classi algust ''class lihtne {'' veel read
 
+
<source lang="php">
Sea loodud faili omanikuks eespool loodud kasutaja ja grupiks audio. Sea õigused selliselt, et kasutaja saab kõike teha ja grupp lugeda/kirjutada. Teised ei saa midagi teha
+
file { [ "/var/eksam/" ]:
 +
ensure => directory,
 +
}
 +
</source>
  
= 2. Puppet_abil_teenuse_seadistamine_keerulisem =
+
Failis ''''/etc/puppet/manifests/site.pp'''' <br>
 
+
lisa ''''include lihtne'''' kliendi node alla
/etc/puppet/manifests/site.pp
 
 
 
Lisa include apachesrv
 
  
 
<source lang="php">
 
<source lang="php">
 
import "classes/*"
 
import "classes/*"
node 'client1.lab1' inherits basenode {
+
node 'desktop.planet.zz' inherits basenode {
include apachesrv
+
include lihtne
 
}
 
}
 +
</source>
  
# /etc/puppet/manifests/classes/apache.pp
+
= 2. Puppet abil teenuse seadistamine keerulisem =
 +
== Paigalda www.planet.zz virtualhost ==
 +
Esmalt lisa apache konfimise moodul
 +
<source lang="php">
 +
puppet module install puppetlabs/apache
 +
</source>
 +
ja host faili modimiseks
 +
<source lang="php">
 +
puppet module install puppetlabs/stdlib
 +
</source>
  
</source>
+
Veendu, et mujal ei ole puppetis apache tarkvara pailgalduse käsku
 +
 
 +
Faili ''''/etc/puppet/manifests/classes/apache.pp'''' sisuks pane
 +
<source lang="php">
 
class apachesrv {
 
class apachesrv {
 
class { 'apache': }
 
class { 'apache': }
Line 114: Line 149:
 
content => "www.planet.zz\n<br\n>Server tootab\n",
 
content => "www.planet.zz\n<br\n>Server tootab\n",
 
}
 
}
 +
}
 +
</source>
 +
Kui pole dns-i, siis saab lisada hosts faili vastava rea lisades puppetis apache konfi lõppu enne } read
 +
<source lang="php">
 +
file_line { 'host_planet':
 +
ensure => present,
 +
line => "127.0.0.1 www.planet.zz",
 +
path => '/etc/hosts',
 +
}
 +
</source>
  
file_line { 'host_weeb':
+
Failis ''''/etc/puppet/manifests/site.pp'''' <br>
ensure => present,
+
lisa ''''include apachesrv'''' kliendi node alla
line => "127.0.0.1 weeb",
+
 
path => '/etc/hosts',
+
<source lang="php">
 +
import "classes/*"
 +
node 'desktop.planet.zz' inherits basenode {
 +
include apachesrv
 +
}
 +
</source>
 +
 
 +
== Paigalda ntp teenus ==
 +
Esmalt lisa ntp konfimise moodul
 +
<source lang="php">
 +
puppet module install puppetlabs/ntp
 +
</source>
 +
 
 +
Faili ''''/etc/puppet/manifests/classes/ntpsrv.pp'''' sisuks pane
 +
<source lang="php">
 +
class ntpserver {
 +
class { '::ntp':
 +
servers => [ 'ntp.eenet.ee', 'ntp.ut.ee' ],
 +
panic => false, #Hea kasutada virtuaalmasinate puhul.
 
}
 
}
 
}
 
}
 +
</source>
  
= 3. Linux_paigalduse_parandamine_(lihtne) =
+
Failis ''''/etc/puppet/manifests/site.pp'''' <br>
 +
lisa ''''include ntpsrv'''' kliendi node alla
  
= 4. Linux_paigalduse_parandamine_(raske) =
+
<source lang="php">
 +
import "classes/*"
 +
node 'desktop.planet.zz' inherits basenode {
 +
include ntpserver
 +
}
 +
</source>
  
Kui on antud vmdk või vdi failina ketas, siis VirtualBoxis külge ühendamiseks tee järgnev:
+
== Paigalda BIND teenus ==
 +
Süsteemi seaded üle vaadata!<br/>
 +
.bashrc
 +
export LC_ALL=C
 +
Puppet DNS (BIND9) Module <ref name="bind">http://forge.puppetlabs.com/ajjahn/dns</ref>
 +
puppet module install ajjahn/dns
 +
 
 +
Kui on varem paigaldatud apache moodul või mõni muu, mis sisaldab 'concat'-i tuleb kasutada
 +
puppet module install ajjahn/dns --ignore-dependencies
 +
 
 +
Konfiguratsioon:
 +
fail /etc/puppet/manifests/classes/dns.pp
 +
<source lang="php">
 +
class testdns {
 +
  include dns::server
 +
 
 +
  # Forward Zone
 +
  dns::zone { 'planet.zz':
 +
    soa => "ns1.planet.zz",
 +
    soa_email => 'admin.planet.zz',
 +
    nameservers => ["ns1"]
 +
  }
 +
 
 +
  # Reverse Zone
 +
  dns::zone { '56.168.192.IN-ADDR.ARPA':
 +
    soa => "ns1.planet.zz",
 +
    soa_email => 'admin.planet.zz',
 +
    nameservers => ["ns1"]
 +
  }
 +
 
 +
  # A Records:
 +
  dns::record::a {
 +
    'client':
 +
      zone => 'planet.zz',
 +
      data => ["192.168.56.101"],
 +
      ptr => true;
 +
  }
 +
 
 +
  # CNAME Record:
 +
  dns::record::cname {'www':
 +
    zone => 'planet.zz',
 +
    data => 'client.planet.zz',
 +
  }
 +
 
 +
}</source>
 +
 
 +
fail /etc/puppet/manifests/site.pp
 +
<source lang="php">
 +
node 'client.planet.zz' {
 +
        include testdns
 +
}</source>
 +
 
 +
Testimine klientarvutis:
 +
nslookup www.planet.zz 192.168.56.101
 +
Vastus:
 +
<source lang="bash">
 +
Server: 192.168.56.101
 +
Address: 192.168.56.101#53
 +
 
 +
www.planet.zz canonical name = client.planet.zz.
 +
Name: client.planet.zz
 +
Address: 192.168.56.101
 +
</source>
 +
 
 +
= 3. Linux paigalduse parandamine (lihtne) =
 +
==Teil ununes root parool ära ja student kasutaja pole administraatorite grupis. (vana admin läks töölt ära ja parooli keegi ei mäleta)==
 +
Reset root password (Ubuntu Linux) without CD<ref name="faqforge">http://www.faqforge.com/linux/reset-root-password-ubuntu-linux-without-cd</ref>
 +
 
 +
Algkäivitamise ajal hoia all Shift või tee aktiivseks muudmoodi GRUB alglaadijas Ubuntu xxx (recovery mode) rida (nool alla). Ära vajuta [Enter]!<br/>
 +
Vajuta [e] selle rea muutmiseks<br/>
 +
Otsi rida, mis sisaldab ''linux /boot/vmlinuz-3.2.0-18-generic root=UUID=b8b64ed1-ae94-43c6-92\d2-a19dfd9a727e ro recovery nomodeset''<br/>
 +
Asenda ''ro recovery nomodeset'' järgnevaga: ''rw init=/bin/bash''<br/>
 +
Vihje: US klaviatuuril '=' on `´ nupp ning '/' on -_<br/>
 +
Vajuta käivitamiseks [F10]<br/>
 +
Arvuti käivitub ning logitakse sisse juurkasutaja õigustes.<br/>
 +
Parooli vahetamiseks sisesta käsk
 +
passwd
 +
ning lähtesta root parool. Tee serverile reset (Restarti saab teha nii: Virtualboxi menüüst machine ja Insert Ctrl-Alt-Del).
 +
 
 +
Testimise jaoks kirjuta terminali käsk (mitte sudo -i, kuna see küsib kasutaja parooli juurkasutaja asemel):
 +
su -
 +
 
 +
==Teie server tõsteti valesse VLANi (virtualboxis teise võrku)==
 +
==Teie server tõsteti teise võrku, mille IP on teine ja võrgu administraator unustas teile seda öelda ja läks puhkusele (tehke nii, et töötaks)==
 +
==Praktikal olev tudeng rikkus ära faili, kus määratakse alglaadimisel ühendatavad kettajaod ja failisüsteemid==
 +
Katki tehti /etc/fstab
 +
 
 +
Kui on antud katki tehtud ketas, siis tuleb see eelnevalt külge ühendada: https://wiki.itcollege.ee/index.php/Linuxi_administreerimine_eksamiabi_2014#4._Linux_paigalduse_parandamine_.28raske.29
 +
 
 +
Kontrollida, mis nime all lisatud ketas süsteemis on
 +
fdisk -l
 +
 
 +
Seejärel tuleb ketas mountida ajutisse kausta
 +
mkdir /tmp/eksam
 +
mount /dev/sdb1 /tmp/eksam
 +
/dev/sdb1 on lisatud ketta esimene partitsioon
 +
 
 +
Katki tehtud töös oleva arvuti fstab parandamiseks ava see käsuga:
 +
nano /etc/fstab
 +
või kui tegu lisatud ja mountitud kettaga:
 +
nano /tmp/eksam/etc/fstab
 +
 
 +
Töötav fstab võiks välja näha selline:
 +
<source lang="bash">
 +
# /etc/fstab: static file system information.
 +
#
 +
# Use 'blkid' to print the universally unique identifier for a
 +
# device; this may be used with UUID= as a more robust way to name devices
 +
# that works even if disks are added and removed. See fstab(5).
 +
#
 +
# <file system> <mount point>  <type>  <options>      <dump>  <pass>
 +
# / was on /dev/sda1 during installation
 +
UUID=9edff746-7198-40f6-bcf4-c0f6a1af8ab9 /              ext4    errors=remount-ro 0      1
 +
# swap was on /dev/sda5 during installation
 +
UUID=afd69f4d-5c96-4d75-a298-68e54c4607bd none            swap    sw              0      0
 +
</source>
 +
UUID=... asemel võib kasutada ka seadme nime /dev/sda1, /dev/sdb2 jne
 +
Seega võib töötav rida välja näha ka selline
 +
<source lang="bash">/dev/sdb1      /var/lab        ext4    defaults        0      0 </source>
 +
 
 +
*<file system>UUID viitab konkreetsele kettale, /dev/sdb1 viitab tegelikult füüsilisele ühenduspesale
 +
*<mount point> - kuhu on seade külge ühendatud, juurkaust '/', saaleala 'none' jne
 +
*<type> failisüsteemi tüüp, võib olla auto, üritatakse ära arvata, ext3/ext4/swap jne
 +
*<options> noexec, readonly, acl, trim (ssd) jne
 +
*<dump> legacy pärast
 +
*<pass> kas teha kettakontrolli iga x käivituse tagant
 +
 
 +
==Praktikal olev tudeng tegi katki puppet paigalduse (ja on endaga täitsa rahul) Tehke korda ja selgitage, mida ta valesti tegi.==
 +
 
 +
= 4. Linux paigalduse parandamine (raske) =
 +
 
 +
Kui on antud vmdk või vdi failina ketas või katki tehtud teise virtuaalmasina ketas, siis VirtualBoxis külge ühendamiseks tee järgnev:
  
 
Virtuaalmasin lülita välja<br/>
 
Virtuaalmasin lülita välja<br/>
 +
 +
'''!! Kui on kasutusel snapshotid, siis tuleb teha katkisest masinast kas clone või kõik snapshotid kustutada, et alles jääks vaid üks vmdk fail. Vastasel korral ei ole võimalik õiget virtuaalmasina ketast järgmises punktis külge ühendada !!'''<br/>
 
Machine->Settings Storage->Controller: Sata->Add a hard disk (parempoolne pluss nupuga ikoon)<br/>
 
Machine->Settings Storage->Controller: Sata->Add a hard disk (parempoolne pluss nupuga ikoon)<br/>
 
Choose existing disk<br/>
 
Choose existing disk<br/>
Näita kätte õppejõult saadud fail<br/>
+
Näita kätte õppejõult saadud fail või teise virtuaalmasina ketas (kloonitud masina või ilma snapshotita masina!)<br/>
 
OK<br/>
 
OK<br/>
 
Käivita virtuaalmasin<br/>
 
Käivita virtuaalmasin<br/>
Line 139: Line 342:
 
Kui partitsioonitabel on katki peaks tulema ka teade "Disk /dev/sdb doesn't contain a valid partition table"
 
Kui partitsioonitabel on katki peaks tulema ka teade "Disk /dev/sdb doesn't contain a valid partition table"
  
*Praktikal olev tudeng rikkus ära kõvaketta kettajagude tabeli. Taastage süsteem.
 
http://www.dedoimedo.com/computers/linux-data-recovery.html
 
  
Tiri testdisk<ref name="testdisk">http://www.cgsecurity.org/wiki/TestDisk http://www.cgsecurity.org/wiki/TestDisk</ref>
+
== dd abil kirjutati esimesed 512 baiti üle ==
 +
*loe läbi eelnev peatükk
 +
*testdisk abil taastada partitsioonitabel vt järgmine peatükk
 +
*taastada GRUB alglaadur kas käsitsi töötava ketta pealt kopeerides või 'grub-install' käsu abil:
 +
 
 +
1) UNIX / Linux: Copy Master Boot Record (MBR) <ref name="mbr">http://www.cyberciti.biz/faq/howto-copy-mbr/</ref> - ei tööta?!
 +
kopeerime bootstrapi töötavalt kettalt faili
 +
dd if=/dev/sda of=/tmp/mbrsda.bak bs=512 count=1
 +
kopeerime töötava ketta bootstrap osa katkisele kettale
 +
dd if=/tmp/mbrsda.bak of=/dev/sdb bs=446 count=1
 +
 
 +
 
 +
2) Ühenda ketas mnt kausta <ref name="grub2">http://www.howtogeek.com/114884/how-to-repair-grub2-when-ubuntu-wont-boot/</ref>
 +
mount /dev/sdb1 /mnt
 +
Installi grubi bootloader
 +
grub-install --boot-directory=/mnt/boot /dev/sdb
 +
ühenda ketas lahti tagasi
 +
umount /dev/sdb1
 +
 
 +
==Praktikal olev tudeng rikkus ära kõvaketta kettajagude tabeli. Taastage süsteem==
 +
How to recover partitions and data using Linux - Tutorial<ref name="dedo">http://www.dedoimedo.com/computers/linux-data-recovery.html</ref>
 +
 
 +
Tiri testdisk<ref name="testdisk">http://www.cgsecurity.org/wiki/TestDisk</ref>
 
  apt-get install testdisk
 
  apt-get install testdisk
 
Käivita testdisk
 
Käivita testdisk
Line 156: Line 379:
 
Vajuta Enter ja siis Write
 
Vajuta Enter ja siis Write
 
  fdisk -l
 
  fdisk -l
peaks nüüd näitama taastatud partitsiooni.
+
peaks nüüd näitama taastatud partitsiooni.<br/>
 +
Et ilma taaskäivituseta parandatud kettale ligi pääseda, siis tuleb fdisk abil partitsiooniinfo kettale sünkroniseerida.
 +
fdisk /dev/sdb
 +
w
  
*Praktikal olev tudeng kustustas ühelt kettalt palju pilte ja kettajagude tabeli. Taastage pildid.
+
==Praktikal olev tudeng kustustas ühelt kettalt palju pilte ja kettajagude tabeli. Taastage pildid.==
 +
Paigalda photorec <ref name="photorec">http://www.cgsecurity.org/wiki/PhotoRec</ref> (testdisk paketis)
 +
apt-get install testdisk
 +
Käivita photorec
 +
photorec
 +
Vali õige kettaseade (/dev/sdb) [Proceed]<br/>
 +
[Search]<br/>
 +
Vali 'unknown' partitsioon<br/>
 +
Vali failisüsteemi tüüp [ext2/ext3]<br/>
 +
Vali kaust kuhu salvestatakse taastatud failid ja vajuta [C]<br/>
 +
Taastatud failid asuvad valitud kaustas alamkaustas [recup_dir.1] vms.
  
 +
==Praktikal olev tudeng "konfigureeris" ehk saboteeris teie labor 2 teenuse ära - Tehke korda ja selgitage, mida ta valesti tegi.==
 +
Personaalne..
  
*Praktikal olev tudeng "konfigureeris" ehk saboteeris teie labor 2 teenuse ära - Tehke korda ja selgitage, mida ta valesti tegi.
+
==Kasutatud materjal==
 +
<references/>

Latest revision as of 15:10, 17 January 2014

Eksami näidiste lehe Sisukord

Eksami ajal saab veel kaitsta laboreid, kuid soovitav on need enne eksamit ära kaitsta, kuna eksam on päris pingeline.


Linux eksam on praktiline, koosneb neljast osast:

#1._Puppet_abil_tuleb_teha_lihtsaid_asju (kasutaja, kaust/fail teatud sisu ja õigustega, paigaldada pakke) 10p 10min

#2._Puppet_abil_teenuse_seadistamine_keerulisem 15p 15min (kui apache seadistamine, siis eemaldage paki apache kirjeldus)

#3._Linux_paigalduse_parandamine_.28lihtne.29 15p 10min

#4._Linux_paigalduse_parandamine_.28raske.29 9p 25min


1. Näiteülesanded:

  • Loo kasutaja kjk212 koos kodukasutaga
  • Paigalda pakk apache2
  • Paigalda pakk htop
  • Tekita fail, mille sisu on selle ülesande tekst asukohta /var/eksam/yl1.txt
  • Sea loodud faili omanikuks eespool loodud kasutaja ja grupiks audio. Sea õigused selliselt, et kasutaja saab kõike teha ja grupp lugeda/kirjutada. Teised ei saa midagi teha.

2. Näiteküsimused


3. Linux paigalduse parandamine (lihtne) 15min

  • Teil ununes root parool ära ja student kasutaja pole administraatorite grupis. (vana admin läks töölt ära ja parooli keegi ei mäleta)
  • Teie server tõsteti valesse VLANi (virtualboxis teise võrku)
  • Teie server tõsteti teise võrku, mille IP on teine ja võrgu administraator unustas teile seda öelda ja läks puhkusele (tehke nii, et töötaks)
  • Praktikal olev tudeng rikkus ära faili, kus määratakse alglaadimisel ühendatavad kettajaod ja failisüsteemid
  • Praktikal olev tudeng tegi katki puppet paigalduse (ja on endaga täitsa rahul) Tehke korda ja selgitage, mida ta valesti tegi.


4. Linux paigalduse parandamine (raske) 20min

  • Praktikal olev tudeng rikkus ära kõvaketta kettajagude tabeli. Taastage süsteem.
  • Praktikal olev tudeng kustustas ühelt kettalt palju pilte ja kettajagude tabeli. Taastage pildid.
  • Praktikal olev tudeng "konfigureeris" ehk saboteeris teie labor 2 teenuse ära - Tehke korda ja selgitage, mida ta valesti tegi.

1. Puppet abil tuleb teha lihtsaid asju

Loo kasutaja kjk212 koos kodukasutaga

Loo serveris /etc/puppet/manifests/classes/users.pp fail, sisuga

class users {
 user { 'kjk212':
  	ensure => present,
 	uid	=> '1500',
 	gid	=> 'root',
 	shell	=> '/bin/sh',
 	home	=> '/home/kjk212',
 	managehome => true,
       }
}

Failis '/etc/puppet/manifests/site.pp'
lisa 'include users' kliendi node alla

import "classes/*"
node 'desktop.planet.zz' inherits basenode {
	include users
}

Paigalda pakk apache2 ja htop ning eemalda cowsay

Loo serveris /etc/puppet/manifests/classes/tarkvara.pp fail sisuga

class tarkvara { 
         package { ['htop', 'apache2']: ensure => latest, } 
         package { 'cowsay': ensure => absent,} 
}

Failis '/etc/puppet/manifests/site.pp'
lisa 'include tarkvara' kliendi node alla

import "classes/*"
node 'desktop.planet.zz' inherits basenode {
	include tarkvara
}

Tekita fail, mille sisu on

Tekita fail, mille sisu on selle ülesande tekst asukohta /var/eksam/yl1.txt
Sea loodud faili omanikuks eespool loodud kasutaja ja grupiks audio. Sea õigused selliselt, et kasutaja saab kõike teha ja grupp lugeda/kirjutada. Teised ei saa midagi teha

Loo serveris /etc/puppet/manifests/classes/fail.pp , sisuga

class lihtne {
 file { "/var/eksam/yl1.txt": 
                ensure => present, 
                mode => 760, 
                owner => kjk212, 
                group => audio, 
                content => "Tekita fail, mille sisu on selle ülesande tekst asukohta /var/eksam/yl1.txt
 Sea loodud faili omanikuks eespool loodud kasutaja ja grupiks audio. Sea õigused selliselt, et kasutaja saab kõike teha ja grupp lugeda/kirjutada. Teised ei saa midagi teha."
                }
 }

Kui kausta pole olemas, mille sisse fail tuleb luua lisa peale classi algust class lihtne { veel read

file { [ "/var/eksam/" ]:
		ensure => directory,
	}

Failis '/etc/puppet/manifests/site.pp'
lisa 'include lihtne' kliendi node alla

import "classes/*"
node 'desktop.planet.zz' inherits basenode {
	include lihtne
}

2. Puppet abil teenuse seadistamine keerulisem

Paigalda www.planet.zz virtualhost

Esmalt lisa apache konfimise moodul

puppet module install puppetlabs/apache

ja host faili modimiseks

puppet module install puppetlabs/stdlib

Veendu, et mujal ei ole puppetis apache tarkvara pailgalduse käsku

Faili '/etc/puppet/manifests/classes/apache.pp' sisuks pane

class apachesrv {
	class { 'apache': }
 
	apache::vhost { 'www.planet.zz':
		port	=> '80',
		docroot => '/var/www/www.planet.zz',
	}
	file { "/var/www/www.planet.zz/index.html":
		ensure => present,
		content => "www.planet.zz\n<br\n>Server tootab\n",
	}
}

Kui pole dns-i, siis saab lisada hosts faili vastava rea lisades puppetis apache konfi lõppu enne } read

	file_line { 'host_planet':
		ensure => present,
		line => "127.0.0.1 www.planet.zz",
		path => '/etc/hosts',
	}

Failis '/etc/puppet/manifests/site.pp'
lisa 'include apachesrv' kliendi node alla

import "classes/*"
node 'desktop.planet.zz' inherits basenode {
	include apachesrv
}

Paigalda ntp teenus

Esmalt lisa ntp konfimise moodul

puppet module install puppetlabs/ntp

Faili '/etc/puppet/manifests/classes/ntpsrv.pp' sisuks pane

class ntpserver {
	class { '::ntp':
		servers => [ 'ntp.eenet.ee', 'ntp.ut.ee' ],
		panic => false, #Hea kasutada virtuaalmasinate puhul.
	}
}

Failis '/etc/puppet/manifests/site.pp'
lisa 'include ntpsrv' kliendi node alla

import "classes/*"
node 'desktop.planet.zz' inherits basenode {
	include ntpserver
}

Paigalda BIND teenus

Süsteemi seaded üle vaadata!
.bashrc

export LC_ALL=C

Puppet DNS (BIND9) Module [1]

puppet module install ajjahn/dns

Kui on varem paigaldatud apache moodul või mõni muu, mis sisaldab 'concat'-i tuleb kasutada

puppet module install ajjahn/dns --ignore-dependencies

Konfiguratsioon: fail /etc/puppet/manifests/classes/dns.pp

class testdns {
  include dns::server

  # Forward Zone
  dns::zone { 'planet.zz':
    soa => "ns1.planet.zz",
    soa_email => 'admin.planet.zz',
    nameservers => ["ns1"]
  }

  # Reverse Zone
  dns::zone { '56.168.192.IN-ADDR.ARPA':
    soa => "ns1.planet.zz",
    soa_email => 'admin.planet.zz',
    nameservers => ["ns1"]
  }

  # A Records:
  dns::record::a {
    'client':
      zone => 'planet.zz',
      data => ["192.168.56.101"],
      ptr => true;
  }

  # CNAME Record:
  dns::record::cname {'www':
    zone => 'planet.zz',
    data => 'client.planet.zz',
  }

}

fail /etc/puppet/manifests/site.pp

node 'client.planet.zz' {
        include testdns
}

Testimine klientarvutis:

nslookup www.planet.zz 192.168.56.101

Vastus:

Server:		192.168.56.101
Address:	192.168.56.101#53

www.planet.zz	canonical name = client.planet.zz.
Name:	client.planet.zz
Address: 192.168.56.101

3. Linux paigalduse parandamine (lihtne)

Teil ununes root parool ära ja student kasutaja pole administraatorite grupis. (vana admin läks töölt ära ja parooli keegi ei mäleta)

Reset root password (Ubuntu Linux) without CD[2]

Algkäivitamise ajal hoia all Shift või tee aktiivseks muudmoodi GRUB alglaadijas Ubuntu xxx (recovery mode) rida (nool alla). Ära vajuta [Enter]!
Vajuta [e] selle rea muutmiseks
Otsi rida, mis sisaldab linux /boot/vmlinuz-3.2.0-18-generic root=UUID=b8b64ed1-ae94-43c6-92\d2-a19dfd9a727e ro recovery nomodeset
Asenda ro recovery nomodeset järgnevaga: rw init=/bin/bash
Vihje: US klaviatuuril '=' on `´ nupp ning '/' on -_
Vajuta käivitamiseks [F10]
Arvuti käivitub ning logitakse sisse juurkasutaja õigustes.
Parooli vahetamiseks sisesta käsk

passwd

ning lähtesta root parool. Tee serverile reset (Restarti saab teha nii: Virtualboxi menüüst machine ja Insert Ctrl-Alt-Del).

Testimise jaoks kirjuta terminali käsk (mitte sudo -i, kuna see küsib kasutaja parooli juurkasutaja asemel):

su -

Teie server tõsteti valesse VLANi (virtualboxis teise võrku)

Teie server tõsteti teise võrku, mille IP on teine ja võrgu administraator unustas teile seda öelda ja läks puhkusele (tehke nii, et töötaks)

Praktikal olev tudeng rikkus ära faili, kus määratakse alglaadimisel ühendatavad kettajaod ja failisüsteemid

Katki tehti /etc/fstab

Kui on antud katki tehtud ketas, siis tuleb see eelnevalt külge ühendada: https://wiki.itcollege.ee/index.php/Linuxi_administreerimine_eksamiabi_2014#4._Linux_paigalduse_parandamine_.28raske.29

Kontrollida, mis nime all lisatud ketas süsteemis on

fdisk -l

Seejärel tuleb ketas mountida ajutisse kausta

mkdir /tmp/eksam
mount /dev/sdb1 /tmp/eksam

/dev/sdb1 on lisatud ketta esimene partitsioon

Katki tehtud töös oleva arvuti fstab parandamiseks ava see käsuga:

nano /etc/fstab

või kui tegu lisatud ja mountitud kettaga:

nano /tmp/eksam/etc/fstab

Töötav fstab võiks välja näha selline:

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda1 during installation
UUID=9edff746-7198-40f6-bcf4-c0f6a1af8ab9 /               ext4    errors=remount-ro 0       1
# swap was on /dev/sda5 during installation
UUID=afd69f4d-5c96-4d75-a298-68e54c4607bd none            swap    sw              0       0

UUID=... asemel võib kasutada ka seadme nime /dev/sda1, /dev/sdb2 jne Seega võib töötav rida välja näha ka selline

/dev/sdb1       /var/lab        ext4    defaults        0       0
  • <file system>UUID viitab konkreetsele kettale, /dev/sdb1 viitab tegelikult füüsilisele ühenduspesale
  • <mount point> - kuhu on seade külge ühendatud, juurkaust '/', saaleala 'none' jne
  • <type> failisüsteemi tüüp, võib olla auto, üritatakse ära arvata, ext3/ext4/swap jne
  • <options> noexec, readonly, acl, trim (ssd) jne
  • <dump> legacy pärast
  • <pass> kas teha kettakontrolli iga x käivituse tagant

Praktikal olev tudeng tegi katki puppet paigalduse (ja on endaga täitsa rahul) Tehke korda ja selgitage, mida ta valesti tegi.

4. Linux paigalduse parandamine (raske)

Kui on antud vmdk või vdi failina ketas või katki tehtud teise virtuaalmasina ketas, siis VirtualBoxis külge ühendamiseks tee järgnev:

Virtuaalmasin lülita välja

!! Kui on kasutusel snapshotid, siis tuleb teha katkisest masinast kas clone või kõik snapshotid kustutada, et alles jääks vaid üks vmdk fail. Vastasel korral ei ole võimalik õiget virtuaalmasina ketast järgmises punktis külge ühendada !!
Machine->Settings Storage->Controller: Sata->Add a hard disk (parempoolne pluss nupuga ikoon)
Choose existing disk
Näita kätte õppejõult saadud fail või teise virtuaalmasina ketas (kloonitud masina või ilma snapshotita masina!)
OK
Käivita virtuaalmasin
Kontrolli, et arvuti näitab lisatud ketast (juurkasutaja õigustes!)

fdisk -l

Uus ketas peaks tekkima /dev/sdb või sdc-na.
Kui partitsioonitabel on katki peaks tulema ka teade "Disk /dev/sdb doesn't contain a valid partition table"


dd abil kirjutati esimesed 512 baiti üle

  • loe läbi eelnev peatükk
  • testdisk abil taastada partitsioonitabel vt järgmine peatükk
  • taastada GRUB alglaadur kas käsitsi töötava ketta pealt kopeerides või 'grub-install' käsu abil:

1) UNIX / Linux: Copy Master Boot Record (MBR) [3] - ei tööta?! kopeerime bootstrapi töötavalt kettalt faili

dd if=/dev/sda of=/tmp/mbrsda.bak bs=512 count=1

kopeerime töötava ketta bootstrap osa katkisele kettale

dd if=/tmp/mbrsda.bak of=/dev/sdb bs=446 count=1


2) Ühenda ketas mnt kausta [4]

mount /dev/sdb1 /mnt

Installi grubi bootloader

grub-install --boot-directory=/mnt/boot /dev/sdb

ühenda ketas lahti tagasi

umount /dev/sdb1

Praktikal olev tudeng rikkus ära kõvaketta kettajagude tabeli. Taastage süsteem

How to recover partitions and data using Linux - Tutorial[5]

Tiri testdisk[6]

apt-get install testdisk

Käivita testdisk

testdisk

Loo uus logifail [Create]
Vali kettaseade, mida parandada (/dev/sdb)
Vali partitsioonitabeli tüüp [Intel/PC]
Vali [Analyse]
[Quick Search]
Arvatavasti pole tegu Vista või uuema all tehtud partitsiooniga, seega vasta 'N'

Testdisk1.png

Viimases reas näitab leitud partitsiooni infot Vajuta Enter ja siis Write

fdisk -l

peaks nüüd näitama taastatud partitsiooni.
Et ilma taaskäivituseta parandatud kettale ligi pääseda, siis tuleb fdisk abil partitsiooniinfo kettale sünkroniseerida.

fdisk /dev/sdb
w

Praktikal olev tudeng kustustas ühelt kettalt palju pilte ja kettajagude tabeli. Taastage pildid.

Paigalda photorec [7] (testdisk paketis)

apt-get install testdisk

Käivita photorec

photorec

Vali õige kettaseade (/dev/sdb) [Proceed]
[Search]
Vali 'unknown' partitsioon
Vali failisüsteemi tüüp [ext2/ext3]
Vali kaust kuhu salvestatakse taastatud failid ja vajuta [C]
Taastatud failid asuvad valitud kaustas alamkaustas [recup_dir.1] vms.

Praktikal olev tudeng "konfigureeris" ehk saboteeris teie labor 2 teenuse ära - Tehke korda ja selgitage, mida ta valesti tegi.

Personaalne..

Kasutatud materjal