Rootmanual:Lysatorfiera en dator

Från Lysators datorhandbok, den ultimata referensen.
Hoppa till navigering Hoppa till sök

Puppet

Rekommenderat är att använda Rootmanual:Puppet för att sätta upp maskinen. Vill man inte göra det av någon anledning finns manuella instruktioner nedan.

Innan installationen körs igång bör man dock se till att följande saker är fixade

  • Lägga till i DNS
  • Lägga till i netgroups i NIS:
   * Logga in på nis som root.
   * Sätt PATH till /lysator/bin:/usr/ccs/bin:$PATH.
   * Gå till /lysator/etc/nis/db/.
   * Checka ut netgroup: co -l netgroup
   * Lägg till en rad i filen för den nya datorn.
   * Checka in netgroup: ci -u netgroup
   * Gå till /lysator/etc/nis/.
   * Bygg om NIS-data: make 

Och efter att puppet har körts klart måste man även fixa en kerberos prinicpal till maskinen enligt nedan. Se till att köra kommandona på en solaris maskin då det brukar bli konstigt annars.

kadmin -p $USER/admin
<lösenord>
addprinc -randkey host/$HOST.lysator.liu.se
ktadd -k /root/krb5.keytab host/$HOST.lysator.liu.se
quit
scp /root/krb5.keytab $HOST/etc/krb5.keytab
rm /root/krb5.keytab


Nätverk

IPv4-adress 130.236.254.x
IPv4-nätmask 255.255.255.0 (/24)
IPv4-gateway 130.236.254.1
IPv6-adress 2001:6b0:17:f0a0::x (samma sista oktett som i IPv4-adressen)
IPv6 prefixlängd 64
Namnserver 2001:6b0:17:f0a0::e1 (resolver)

130.236.254.225 (resolver)

Namnserver 130.236.254.2 (ns-master)
Namnserver 130.236.254.4 (ns-slave)
DNS-domän lysator.liu.se

/etc/hosts: (och/eller /etc/inet/ipnodes på tillräckligt nya Solaris-burkar)

130.236.254.1           liunet-gw.lysator.liu.se        liunet-gw
130.236.254.2           ns-master.lysator.liu.se        ns-master
130.236.254.4           ns-slave.lysator.liu.se         ns-slave
130.236.254.5           ns.lysator.liu.se               ns
2001:6b0:17:f0a0::5     ns.lysator.liu.se               ns
130.236.254.7           nis.lysator.liu.se              nis
2001:6b0:17:f0a0::7     nis.lysator.liu.se              nis
130.236.254.25          hoover.lysator.liu.se           hoover loghost
130.236.254.125         as-master.lysator.liu.se        as-master
130.236.254.126         as-slave.lysator.liu.se         as-slave
130.235.254.225         resolver.lysator.liu.se         resolver
2001:6b0:17:f0a0::e1    resolver.lysator.liu.se         resolver

För icke-lysator datorer bör åtminstone dessa rader finnas:

130.236.254.1           liunet-gw.lysator.liu.se        liunet-gw
130.236.254.25          hoover.lysator.liu.se           hoover loghost
130.235.254.225         resolver.lysator.liu.se         resolver
2001:6b0:17:f0a0::e1    resolver.lysator.liu.se         resolver

NTP

Vi har tre NTP-servrar:

ntp1.lysator.liu.se
ntp2.lysator.liu.se
ntp3.lysator.liu.se

Dessa kan man t.ex. prata med genom att skriva en /etc/ntp.conf som ser ut så här:

server ntp1.lysator.liu.se iburst
server ntp2.lysator.liu.se iburst
server ntp3.lysator.liu.se iburst
logfile         /var/log/ntp.log
driftfile       /var/lib/ntp/ntp.drift
restrict default nomodify nopeer

NIS

domän lysator
server nis.lysator.liu.se
server ns-slave.lysator.liu.se

Som exempel är här /etc/yp.conf från Beatrix:

domain lysator server nis.lysator.liu.se
domain lysator server ns-slave.lysator.liu.se

För att saker faktiskt skall läsas från NIS också krävs det att det står så i /etc/nsswitch.conf också. T.ex. så här:

passwd:     files nis
shadow:     files
group:      files nis
netgroup:   nis
automount:  files nis

Bygger du en tjänsteserver där bara root får logga in vill du istället ha:

passwd:     compat

och lägga till följande rader sist i /etc/passwd:

+@root:x::::/roots:
+:x:::::/bin/nologin

Samt (på Solaris) i /etc/shadow:

+::::::::

Kerberos

realm LYSATOR.LIU.SE
KDC as-master.lysator.liu.se
KDC as-slave.lysator.liu.se
adminserver as-master.lysator.liu.se

Detta skall antagligen skrivas in i /etc/krb5.conf (MIT-Kerberos på Linux) eller /etc/krb5/krb5.conf (Sun-Kerberos på Nexenta). Som exempel kan en sådan fil se ut så här (från Beatrix):

[libdefaults]
        default_realm = LYSATOR.LIU.SE

[realms]
        LYSATOR.LIU.SE = {
                kdc = as-master.lysator.liu.se
                kdc = as-slave.lysator.liu.se
                admin_server = as-master.lysator.liu.se
        }

[domain_realm]
        .lysator.liu.se = LYSATOR.LIU.SE

[logging]
        kdc = FILE:/var/log/krb5kdc.log
        admin_server = FILE:/var/log/kadmin.log
        default = FILE:/var/log/krb5lib.log
        kdc_rotate = {
                period = 1d
                version = 10
        }

[appdefaults]
        kinit = {
                renewable = true
                forwardable = true
        }

För att Kerberos skall fungera behövs en host-principal som datorn skall känna till nyckeln till. Den skapar man på den nya datorn så här (enligt inlägg 13295428) om man är root och har en admin-principal:

kadmin -p $USER/admin
<lösenord>
addprinc -randkey host/$HOST.lysator.liu.se
ktadd host/$HOST.lysator.liu.se
quit

PAM

För att faktiskt använda Kerberos behöver slå på det i PAM-konfigurationen. Se till att man kan logga in med både /etc/passwd och Kerberos, eftersom roots lösenord står i /etc/passwd och måste fungera även utan nätverk.

Ett exempel på PAM-konfiguration, från /etc/pam.d/system-authBeatrix:

#%PAM-1.0

auth       required     pam_env.so
auth       sufficient   pam_unix.so likeauth nullok
auth       sufficient   pam_krb5.so use_first_pass minimum_uid=100
auth       required     pam_deny.so

account    sufficient   pam_krb5.so minimum_uid=100
account    sufficient   pam_unix.so

password   required     pam_cracklib.so retry=3
password   sufficient   pam_krb5.so minimum_uid=100
password   sufficient   pam_unix.so nullok md5 shadow use_authtok
password   required     pam_deny.so

session    required     pam_limits.so
session    required     pam_krb5.so minimum_uid=100
session    sufficient   pam_unix.so

pam_krb5 av versioner högre än 1.0 har haft problem att prata med vår Sun-Kerberos. Om det inte går att logga in, kolla först att klockan går rätt. Om den gör det, testa att nedgradera.

Automontering

Mapar kommer ur NIS. Solaris kan plocka all nödvändig information ur mapen auto_master om /etc/auto.master innehåller +auto_master, medan Linux verkar behöva en lokal /etc/autofs/auto.master som innehåller:

Map Monteringspunkt
auto_lysator /mp
auto_home /home
auto_pkg /pkg

Dessutom skall det, av historiska skäl, finnas en symlänk /lysator -> /mp/lysator.

/pkg/local kommer att monteras från katalogen pkg-host:/export/pkg/${CPU}-${OSNAME}-${OSREL}, och de variablerna kan få lustiga värden som standard, så de kan behöva sättas för hand. Titta i loggarna efter vad den faktiskt försökte montera och misslyckades med.

Som exempel är här /etc/autofs/auto.master från Beatrix:

/home   yp:auto_home    nosuid,nodev
/mp     yp:auto_lysator nosuid,nodev
/pkg    yp:auto_pkg     nosuid,nodev -DOSREL=gentoo_unstable

För att den nya datorn skall få prata NFS krävs även att den är medlem i netgroupen lysator. För att uppdatera netgroups i NIS:

  • Logga in på nis som root.
  • Sätt PATH till /lysator/bin:/usr/ccs/bin:$PATH.
  • Gå till /lysator/etc/nis/db/.
  • Checka ut netgroup: co -l netgroup
  • Lägg till en rad i filen för den nya datorn.
  • Checka in netgroup: ci -u netgroup
  • Gå till /lysator/etc/nis/.
  • Bygg om NIS-data: make

E-post finns i /mp/mail. För att program skall hitta den skapar man lämpligtvis en symlänk från /var/mail.

/pkg

/pkg installerar paket i /pkg/<paket>/<plattform>/<version>/ och upprätthåller en symlänkfarm från /pkg/local till dessa. /usr/local skall vara en symlänk till /pkg/local, och som sades i avsnittet om automontering ovan är denna unik för varje plattform. Om det redan finns en dator med samma plattform som den nyinstallerade, titta vilken /pkg/local den monterar, annars hitta på en egen.

I pkg-host:/export/pkg/ ligger alla katalogen som kan monteras som /pkg/local. De pekas ut av symlänkar från pkg-host:/export/pkg/local/${CPU}-${OSNAME}-${OSREL}. Exempel: Beatrix har plattformen sparc64-Linux-gentoo_unstable. Den monterar alltså pkg-host:/export/pkg/local/sparc64-Linux-gentoo_unstable/pkg/local. pkg-host:/export/pkg/local/sparc64-Linux-gentoo_unstable är sedan en symlänk till pkg-host:/export/pkg/local-sparc-gentoo_unstable, där det finns en symlänkfarm som pekar in i /pkg/<paket>/sparc-gentoo_unstable/<version>/.

Plattformsnamnet sparc-gentoo_unstable, som används i sökvägar under /pkg/<paket>, kommer från scriptet /pkg/pkgadmin/all/default/bin/pkgarch, som måste modifieras till att ge rätt utdata om en ny plattform kommer till.

Till slut, för att inte alla skall behöva lägga till /pkg/local i sin PATH skall det finnas en symlänk /usr/local -> /pkg/local.

Loggning

Syslog loggas över nätverk till Hoover. Detta kan t.ex. åstadkommas genom att konfigurera Syslog-NG så här i /etc/syslog-ng/syslog-ng.conf:

options {
        chain_hostnames(off);
        flush_lines(0);
        stats_freq(43200);
};
source src { unix-stream("/dev/log"); internal(); file("/proc/kmsg"); };
destination messages { file("/var/log/messages"); };
destination loghost { tcp("loghost.lysator.liu.se"); };
log { source(src); destination(messages); };
log { source(src); destination(loghost); };

Logga gärna via TCP, för att minska risken att meddelanden försvinner.

För vanlig syslog, åtminstone på linux så redigerar man /etc/syslog.conf så här:

*.debug             @loghost

syslogd brukar logga en "mark timestamp" periodiskt. Hur ofta kan variera. Vi övervakar med Nagios att det skrivs något till sysloggen från varje maskin tillräckligt ofta, så stäng inte av den här funktionen. En "mark timestamp" bör skickas minst en gång i timmen. Om datorn kör Solaris 10 eller något annat operativsystem som vägrar skicka "mark timestamps" till loghost kan du skapa ett crontabentry som gör det:

 17 * * * * /usr/bin/logger mark

(Välj en godtycklig siffra i stället för 17, så att inte alla datorer loggar ett mark exakt samtidigt.)

Mail

Maskiner ska normalt inte hantera mail lokalt. Om de gör det så ska de vara rätt konfigurerade. Vad som är rätt vid varje given tidpunkt frågar man i Root-mötet.

Andra maskiner ska låta mail.lysator.liu.se hantera dess mail. Mail som går till root på den lokala maskinen (så som cron-output) ska leveras till root+hostname@lysator.liu.se.

Om du vill att andra rötter ska slippa se de mailen, sätt upp ett alias för root+hostname på mailservern.

På solaris måste man slå på sendmail en aning. Man bör definiera SMART_HOST till mail.lysator.liu.se i konfigurationsfilen sendmail läser. Den ska läsa /etc/mail/local.cf om man gjort netservices limited. Detta bör fixas i antingen jumpstartmiljön eller cfengine.

Nagios

Hur man konfigurerar nagios att övervaka en ny maskin.

CFEngine

Hur man lägger in CFEngine på en maskin, och hur man skriver regler.