OPSI/Installation: Unterschied zwischen den Versionen

Aus Vosp.info
Wechseln zu:Navigation, Suche
(Anmerkungen)
(Anmerkungen)
Zeile 440: Zeile 440:
  
 
=== Anmerkungen ===
 
=== Anmerkungen ===
/opt/pcbin
+
''/opt/pcbin'' und das dazugehörige samba-share ''[opt_pcbin]'' ist eine OPSI-Altlast, die der Hersteller los werden will.<br>
und das dazugehörige samba-share [opt_opsi] ist eine OPSI-Altlast, die der Hersteller los werden will.<br>
 
 
[https://forum.opsi.org/viewtopic.php?f=6&t=3145 Paket winxppro ohne Verzeichnisstruktur in /opt/pcbin/install]
 
[https://forum.opsi.org/viewtopic.php?f=6&t=3145 Paket winxppro ohne Verzeichnisstruktur in /opt/pcbin/install]
  

Version vom 27. September 2014, 08:50 Uhr

Ziel

Am Ende der Installation wird ein Host mit folgenen Funktionen zur Verfügung stehen.

Primär

  • OPSI-Server ohne mysql
  • PrimaryDomainController (PDC im NT4 Style)
  • dhcp-Server
  • name-Server


Sekundär

  • openvpn
  • Backup wichtiger Userdaten
  • Squid für Black- & Withelisting

Eckdaten

  • Hostname: opsi-1-lnx01
  • Netzwerkname: opsi-1.local
  • Domain-Name: opsi-1
  • IP zum OPSI-Netzwerk: 10.8.190.1 (optional zusätzlich 10.8.190.10)

Namenskonventionen in AD für Computer, Domänen, Standorte und Organisationseinheiten

Starten mit Livesystem

Rechner mit GRML vom USB-Stick starten

Das Live-System grml bietet mit grml-debootstrap mehr Komfort als das Debian-debbotstrap.
grml-debootstrap

Speicher vorbereiten

Festplatten automatisch partitionierern

[1]

sfdisk /dev/sda < my.layout

Nur ein Beispiel
my.layout


# partition table of /dev/sda
unit: sectors

/dev/sda1 : start=     2048, size=   497664, Id=83, bootable
/dev/sda2 : start=   501758, size=1953021954, Id= 5
/dev/sda3 : start=        0, size=        0, Id= 0
/dev/sda4 : start=        0, size=        0, Id= 0
/dev/sda5 : start=   501760, size=1953021952, Id=8e


RAID 1 erzeugen (mirror)

mdadm --create --verbose /dev/md0 --level=mirror --raid-devices=2 /dev/sda1 /dev/sdb1

LVM erzeugen

Physical Volume erzeugen.

pvcreate /dev/md0

Wir erzeugen die Volumegroup opsi_system. Diese besteht aus einem physical volume.

vgcreate opsi_system /dev/md0

Danach zwei logical volumes, eins für / und eins für /local

lvcreate -L 20G -n lv_root opsi_system
lvcreate -L 50G -n lv_local opsi_system

-L Größe des Volumes. G für Gigabyte
-n = Name des Volumes

mkfs.ext4 /dev/opsi_system/lv_root
mkfs.ext4 /dev/opsi_system/lv_local

Grundsystem installieren

grml-debootstrap --target /dev/opsi_system/lv_root --grub /dev/sda

grub2 auch auf /dev/sdb installieren

Dafür brauchen wir ein chroot in das neue System.

  • /dev/opsi_system/lv_root auf /mnt mounten


mount -t proc none /mnt/proc
mount -o bind /dev /mnt/dev
mount -t sysfs sys /mnt/sys
chroot /mnt /bin/bash

In der Chroot-Umgebung ausführen

grub-install --recheck --no-floppy/dev/sdb

Chroot verlassen

exit

Erststart des Systems

  • USB Stick <Bootmedium> entfernen.
reboot

Keyboard layout einstellen

dpkg-reconfigure console-data

Im ncurses-Menu auswählen.

  • Select keymap from arch list => O.K.
  • qwertz => O.K.
  • German => O.K.
  • Standard => O.K.
  • latin1 => O.K.

Sprache einstellen

dpkg-reconfigure locales

de_DE.UTF-8 auswählen und als default einstellen

Host bequem machen

Bash-completion

apt-get install bash-completion

Farbiges Promt

vim ~/.bashrc

export PS1='\[\033[0;31m\]\u\[\033[0;36m\]@\h:\[\033[0m\]\w\$ '
  • [0;36m] Türkis (cyan)
  • [0;32m] Grün (green)
  • [0;31m] Rot (red)
  • Meine Farbregeln
    • Vor dem Promt: rot für root und grün für user.
    • Hinter dem Promt: rot für Produktivserver, türkis für Testrechner und grün für Privatrechner/Workstations.


Meine .bashrc für root auf einem Testrechner.

# ~/.bashrc: executed by bash(1) for non-login shells.

export PS1='\[\033[0;31m\]\u\[\033[0;36m\]@\h:\[\033[0m\]\w\$ '
export LS_OPTIONS='--color=auto'
eval "`dircolors`"
alias ls='ls $LS_OPTIONS'
alias ll='ls $LS_OPTIONS -l'
alias l='ls $LS_OPTIONS -lA'

# Some more alias to avoid making mistakes:
alias rm='rm -i'
# bash-completion
. /etc/bash_completion

Host vorbereiten

Hostname

Wir nennen diesen Rechner opsi-1-lnx01

vim /etc/hostname

opsi-1 eintragen

Hosts Datei

Der Name wird mit der IP verknüpft, die die Verbindung zum OPSI-Netzwerk bereitstellt.

vim /etc/hosts

Folgene Zeile einfügen (entsprechend Installation#Eckdaten)

10.8.190.1 opsi-1.opsi-1-lnx01.local opsi-1-lnx01

Prüfen mit folgendem Befehl

getent hosts $(hostname -f)

Das Ergebniss muss ausehen wie die eingefügte Zeile in /etc/hosts

10.8.190.1 opsi-1-lnx01.opsi-1.local opsi-1-lnx01

Server Software installieren

nameserver

apt-get install bind9 dnsutils
zone file
mkdir /etc/bind/zones

Die Dateien opsi-1.local.zone und 190.8.10.in-addr.arpa im Verzeichniss /etc/bind/zones erzeugen.

  • opsi-1.local.zone => Zuständig für die Namensauflösung (Auflösen eines Namens in eine IP)
  • 190.8.10.in-addr.arpa.zone => Zuständig für reverse mapping (Auflösung der IP in einen Hostnamen)
zones einbinden

Eine Zone wird in

vim /etc/bind/named.conf.local 

eingebunden.

//
// Do any local configuration here
//
 
// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918"; 


zone "opsi-1.local" {
        type master;
        file "/etc/bind/zones/opsi-1.local.zone";
};

zone "190.8.10.in-addr.arpa" {
        type master;
        file "/etc/bind/zones/190.8.10.in-addr.arpa.zone";
};
/etc/bind/zones/opsi-1.local.zone
; Kopf Start
; BIND zone file for opsi-1.local
;
$TTL    604800
@       IN      SOA     opsi-1-lnx01.opsi-1.local. admin.opsi-1.local. (
                        2014091001      ; Serial => JahrMonatTag0-99, ist willkürlich bis 4,294,967,295
                         604800         ; Refresh in Sekunden
                          86400         ; Retry in Sekunden
                        2419200         ; Expire in Sekunden
                         604800 )       ; Negative Cache TTL in Sekunden
;
@       IN      NS      opsi-1-lnx01.opsi-1.local.
; Kopf Ende
; Ab hier werden die Namen aufgelöst.
gw                      IN A    10.8.190.1

opsi-1-lnx01            IN A    10.8.190.10
server                  CNAME   opsi-1
wpad                    CNAME   opsi-1
printer01               IN A    10.8.17.31

win01                   IN A    10.8.17.101
win02                   IN A    10.8.17.102
win03                   IN A    10.8.17.103
win04                   IN A    10.8.17.104
win05                   IN A    10.8.17.105
/etc/bind/zones/190.8.10.in-addr.arpa.zone
;
; BIND zone file for 190.8.10.in-addr.arpa zone
;
$TTL    604800
@       IN      SOA     opsi-1-lnx01.opsi-1.local. admin.opsi-1.local. (
                       20140601801     ; Serial
                        604800         ; Refresh
                         86400         ; Retry
                       2419200         ; Expire
                        604800 )       ; Negative Cache TTL
;
@       IN      NS      opsi-1-lnx01.opsi-1.local.

1                       IN PTR  gw.opsi-1.local. 

10                      IN PTR  opsi-1-lnx01.opsi-1.local.

31                      IN PTR  printer01.opsi-1.local.

101                     IN PTR  win01.opsi-1.local.
102                     IN PTR  win02.opsi-1.local.
103                     IN PTR  win03.opsi-1.local.
104                     IN PTR  win04.opsi-1.local.
DHCP-Client anpassen

Wenn der Server seine incoming IP über dhcp bezieht:
Damit unsere /etc/resolv.conf nicht andauernt überschrieben wird, muss das Verhalten des isc-dhcp-client geändert werden.

vim /etc/dhcp/dhclient.conf

Im Block request auskommentieren:

  • domain-name
  • domain-name-servers
  • domain-search
  • host-name
  • dhcp6.name-servers
  • dhcp6.domain-search,
  • netbios-name-servers

Damit haben wir noch ein paar weitere requests abgeschaltet. Sollte nicht schaden.

DHCP

apt-get install isc-dhcp-server
/etc/default/isc-dhcp-server

In /etc/default/isc-dhcp-server das etsprechende Netzwerkinterface eintragen, auf dem der DHCP-Server auf Anfragen lauschen soll.

vim /etc/default/isc-dhcp-server

In die Zeile

INTERFACES=""

das entsprechende Interface eintragen.
WICHTIG: Nur ein Interface darf rein, da die nc-opsi Tools darauf zurückgreifen!

INTERFACE="eth0"
/etc/dhcp/dhcpd.conf

Einträge für die Zone 10.8.190.0/24

vim /etc/dhcp/dhcpd.conf
ddns-update-style none;
# Ist der offizielle DHCP-Server für alles in 10.8.190.0/24
authoritative;
# DNS-Domain-Name in der /etc/resolv.conf des Clienten
# Das ist nicht die Windows Domain
option domain-name "opsi-1.local";
# Nameserver
option domain-name-servers 10.8.190.10;

default-lease-time 600;
max-lease-time 7200;
log-facility local7;

subnet 10.8.190.0 netmask 255.255.255.224 {
   # Der Range für nicht unten aufgeführte Computer per default abgeschaltet.
   # range 10.8.190.230 10.8.190.245;
   option routers 10.8.190.1;
   option broadcast-address 10.8.190.255;
   default-lease-time 600;
   max-lease-time 7200;
}


# Bei dieser Config werden die IPs über den nameserver aufgelöst.

host win00 { hardware ethernet 08:00:07:26:c0:a5  fixed-address win00.opsi-1.local; }

Abhängigkeiten installieren

-y beantwortet die Frage nach dem "Soll installiert werden?" mit "Ja"

apt-get install -y wget lsof host python-mechanize p7zip-full cabextract openbsd-inetd samba samba-common smbclient cifs-utils samba-doc

In diesem Beispiel wird OPSI ohne mysql installiert

OPSI installieren

Hinzufügen des Repositories

echo "deb http://download.opensuse.org/repositories/home:/uibmz:/opsi:/opsi40/Debian_7.0 ./" >> /etc/apt/sources.list.d/opsi.list

Signatur des Repositories importieren

wget -O - http://download.opensuse.org/repositories/home:/uibmz:/opsi:/opsi40/Debian_7.0/Release.key | apt-key add -

Der Erfolg kann mit

apt-key list

überprüft werden
Paketliste aktualisieren

apt-get update

System upgraden

apt-get upgrade -y

Die eigentlichen OPSI-Pakete installieren

apt-get install -y opsi-atftpd
apt-get install -y opsi-depotserver
apt-get install -y opsi-configed


MACs der Client-PCs finden

PXE-Boot

In diesem HowTo wird TinyCore eingesetzt.
Der große Vorteil liegt im per default eingesetzten dhcp-Clienten, der ein gebootetes TinyCore automatisch mit einer IP versorgt.

apt-get install syslinux nmap

Folgende Verzeichnisse erstellen

mkdir -p /tftpboot/lookmac/pxelinux.cfg
mkdir -p /tftpboot/lookmac/tinycore
cp /usr/lib/syslinux/memdisk /tftpboot/lookmac/
cp /usr/lib/syslinux/pxelinux.0 /tftpboot/lookmac/

Im Verzeichniss /tftpboot/lookmac/pxelinux.cfg die Datei default erstellen.

vim /tftpboot/lookmac/pxelinux.cfg/default

Inhalt

default core
label core
 kernel tinycore/boot/vmlinuz
 append  initrd=tinycore/boot/core.gz

Ein TinyCore Iso downloaden.

wget http://tinycorelinux.net/5.x/x86/release/Core-current.iso -O /tftpboot/lookmac/core.iso

ISO bearbeiten

Der Timeout des Startmenues liegt bei 300 Sekunden, der soll auf 3 Sekunden verkürzt werden.

Mit Tools wie z.B. isomaster lässt sich ein ISO einfach bearbeiten. Im Verzeichniss /boot/isolinux/ liegt die Datei isolinux.cfg

timeout 300 ändern in timeout 3 oder weniger.
timeout 0 ist nicht empfehlenswert, immerhin steht uns jetzt ein TinyCore mit allen Möglichkeiten zur Verfügung.
Das sollten wir uns erhalten.

Das ISO mounten

mount -o loop  core.iso /tftpboot/lookmac/tinycore

/etc/dhcp/dhcp.conf anpassen

In der /etc/dhcp/dhcp.conf folgendes Änderung durchführen.

#       range 10.8.190.15 10.8.190.30;
      range 10.8.190.15 10.8.190.254;
       
#        filename "linux/pxelinux.0";
        filename "lookmac/pxelinux.0";

MACs finden

nmap -sP 10.8.190.0//24 -n|grep MAC|awk '{print $3}'

Das Ergebniss des Scans wird in /etc/dhcp/dhcp.conf eingetragen.

Der folgende Befehl ersetzt NUR den ERSTEN Treffer des Suchstings.

sed -i '0,/00:00:00:00:00:00/s//00:1f:16:0d:7d:26/' /etc/dhcp/dhcp.conf

/etc/dhcp/dhcp.conf zurück setzen

In der /etc/dhcp/dhcp.conf folgendes Änderung durchführen.

       range 10.8.190.15 10.8.190.30;
#       range 10.8.190.15 10.8.190.254;
        
        filename "linux/pxelinux.0";
#         filename "lookmac/pxelinux.0";

samba

Bei der Installation von OPSI werden wir gefragt, ob wir Änderungen an der smb.conf zulassen wollen:
Wenn "ja", dann wurden folgende Zeilen eingefügt:

[opsi_depot]
  available = yes
  comment = opsi depot share (ro)
  path = /var/lib/opsi/depot
  oplocks = no
  follow symlinks = yes
  level2 oplocks = no
  writeable = no
  invalid users = root

[opsi_depot_rw]
  available = yes
  comment = opsi depot share (rw)
  path = /var/lib/opsi/depot
  oplocks = no
  follow symlinks = yes
  level2 oplocks = no
  writeable = yes
  invalid users = root

[opsi_images]
  available = yes
  comment = opsi ntfs images share (rw)
  path = /var/lib/opsi/ntfs-images
  oplocks = no
  level2 oplocks = no
  writeable = yes
  invalid users = root

[opsi_config]
  available = yes
  comment = opsi config share
  path = /var/lib/opsi/config
  writeable = yes
  invalid users = root

[opsi_workbench]
  available = yes
  comment = opsi workbench
  path = /home/opsiproducts
  writeable = yes
  invalid users = root
  create mask = 0660
  directory mask = 0770

Anmerkungen

/opt/pcbin und das dazugehörige samba-share [opt_pcbin] ist eine OPSI-Altlast, die der Hersteller los werden will.
Paket winxppro ohne Verzeichnisstruktur in /opt/pcbin/install

Scripte

User automatisch anlegen: Entwurf


login=<USER>
pass=<PASSWRD>
options="" # zum Beispiel das Homeverzeichniss, die shell (/bin/false, /bin/bash)

useradd $login $options
echo -ne "$pass\n$pass\n" | smbpasswd -a -s $login


Mit net rpc rights grant den Benutzern winadmin alle Rechte und joindom "SeMachineAccountPrivilege" geben.
Altetnativ:

net rpc groupmap add ntgroup="Domain Admins" unixgroup=ntadmin rid=512 type=d

Der bekannte winadmin muss alternativ der Gruppe ntadmin angehören.
Dann muss kein net rpc rights grant .... ausgeführt werden.

net rpc groupmap add ntgroup="Domain Users" unixgroup=ntuser rid=513 type=d

Table 12.1. Well-Known User Default RIDs
Samba Docu: Table 12.1. Well-Known User Default RIDs


Später mal

OPSI

OPSI Installation Anleitung
opsi-getting-started-stable-en.pdf Anleitung auf English
opsi-getting-started-stable-de.pdf Anleitung auf Deutsch