Hlavní navigace

Nová softwarová sklizeň (28. 3. 2007)

Miroslav Suchý

Oblíbená sonda do světa (převážně) otevřeného softwaru. Dnes si pohodlně nastavíme virtualizační nástroj Xen, obejdeme klasický proces init, pohlídáme si, co dělá admin na svých počítačích, přesměrujeme si události na jiný X server, budeme tunelovat provoz přes DNS a nezapomeneme ani na blbinku.

XEN-tools

První věcí navážu na nedávný článek o XENu. Vedle již zmiňovaného Virt-manageru jsem objevil další nástroje pro podporu XENu. Sada nástrojů XEN-tools (3.2) pochází z dílny Debianu a proto se primárně zaměřuje na vytváření deb-based distribucí (pomocí debootstrap), nicméně umí i rpmstrap a zvládne tak i rpm-based distribuce. Poslední verze už umí instalovat hosty do fyzických diskových oddílů. Zásadní rozdíly oproti virt-manageru jsou dva: xen-tools nemají GUI a používají se výhradně parametry na příkazové řádce (zda je to výhoda nebo nevýhoda, nechám na vás) a tím, že se zaměřuje jen na jeden typ distribuce, je o něco mocnější – např. umí aktualizovat balíčky v offline hostovi.

btfs

Btfs (1.2) má sloužit jako init, který vytvoří základní prostředí, než se předá řízení klasickému initu. Btfs umí rozbalovat cpio archívy (komprimované i normální) a taky umí vytvoři tmpfs jako kořen pro základní práci.

Cft

Cft (0.2.0 – vyslovuj sift) hlídá administrátora zaznamenává všechny změny a akce které provedl během svého sezení. Cft bylo silně ovlivněno Gnomovským programem Sabayon. Cft se ale nezaměřuje na desktopové uživatelé v GUI, ale spíše na klasické adminy fungující ve staré dobré příkazové řádce. Jak to funguje, vám ozřejmí příklad:

# cft begin postfix
# yum -y install postfix
# vi /etc/postfix/main.cf
# chkconfig postfix on
# service postfix start
# cft finish postfix

Neboli na začátku začnete a na konci ukončíte cft transakci. Mezitím provádíte úplně normální práci admina. Souhrn změn si vypíšete takto:

# cft manifest postfix
    class postfix {
        package { 'postfix.i386':
          ensure => '2:2.3.3-2'
        }

        service { 'postfix':
            enable => 'true',
            pattern => 'postfix',
            ensure => 'running'
        }

        file { '/etc/aliases.db':
            group => 'smmsp',
            owner => 'root',
            mode => '0640',
            source => '/tmp/cft/postfix/after/etc/aliases.db'
        }

        file { '/etc/postfix/main.cf':
            group => 'root',
            owner => 'root',
            mode => '0644',
            source => '/tmp/cft/postfix/after/etc/postfix/main.cf'
        }
    }

Což je lidsky čitelný formát, shrnující vaše změny a s odkazy na kopie změněných souborů, a také je možné tento vstup předhodit programu Puppet. Jednoduše si tak můžete nakonfigurovat jeden stroj a pomocí výstupu z cft a puppet zduplikovat vaši práci na ostatních strojích (v kanceláři/u­čebně).

XevDevServer

XevDevServer (1.4.0) je malý program, který zachytává evdev události z klávesnice a myši a posílá je na cílový X server pomocí XTEST rozšíření. Autor to používá k vytvoření multi-seat prostředí (dvě klávesnice/my­ši/LCD/uživate­lé – jeden počítač). Stejná věc by měla jít nadefinovat v X.org pomocí normálního xorg.conf, ale tohle řešení je mi sympatické, protože bude fungovat na všech X serverech, vzhledem k tomu, že XTEST rozhraní je mezi námi již od roku 1994.

iodine

A pomalu se přesouváme k blbince. Ale zatím si ještě představíme zcela seriózní iodine (0.4.0), který umí tunelovat IPv4 provoz skrze DNS dotazy. A protože DNS dotazy nejsou zakázané snad nikde, tak to může být dobré řešení v silně omezené síti. Trochu nevýhodu vidím v nutnosti vytvoření TUN/TAP zařízení, které nemusíte být vždy schopni vytvořit.

Blbinka

Dneska vám představím první a zřejmě i poslední dungeon hru, která je celá napsaná v akcelerovaném OpenGL ASCII artu! Představují vám Goblin Hack!. Procházíte klasickým dungeonem a sbíráte různé dobroty, vyhýbáte se špatnostem (pozor na draky a jejich dechberoucí firebally). Cestou potkáte behemoty, vampýry a občas dokonce nějaké gobliny!

goblinhack

Goblin Hack!

Našli jste v článku chybu?