CentOS 7 OPSI
Zurück zu OPSI
Inhaltsverzeichnis
- 1 Ziele
- 2 Installation Host
- 3 Installation CT
- 4 Planänderung: OPSI goes bare iron
- 5 OPSI Pakete
- 6 Andere Helfer
- 7 Probleme
- 8 Windows updaten
Ziele
- OPSI-Server mit Samba Domain im NT4 Style
- LXC-Host auf Basis von CentOS 7
Installation Host
Boot vom ISO/CD
Installation vom ISO in eine VirtualBox 4.13.8 Debian Jessie
- Partitionierung
- Manuell auswählen
- /boot : 250M, ext4 auswählen
- / im LVM: 7 GB, ext4 auswählen, lässt sich resizen
- volume group maximieren
- Manuell auswählen
ssh starten
systemctl start sshd
IP herausfinden
ip addr
Basispakete installieren
yum install vim wget net-tools bridge-utils bash-completion rsync
Name des Trägersystems
carrier steht für das LXC-Hostsystem und ist eine willkürliche Definition.
hostname set-hostname <hostname>-carrier
vim /etc/hosts
10.255.255.1 <hostname>-carrier.<domain>.local <hostname>-carrier
LXC installieren
rpm -Uhv http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
yum install lxc lxc-templates
Ergebnisse sollten alle grün sein.
lxc-checkconfig
Bridges
- https://der-linux-admin.de/2015/01/centos-7-libvirt-lxc-container-mit-public-ip-und-externem-netzwerk/
- http://en.wikipedia.org/wiki/Private_network
Unnötiges löschen
yum erase NetworkManager dhclient
Bug /etc/resolv.conf
Wird dauernd überschrieben, obwohl NM und dhclient gelöscht sind.
vim /etc/sysconfig/network-scripts/ifcfg-lo
DEVICE=lo IPADDR=127.0.0.1 NETMASK=255.0.0.0 NETWORK=127.0.0.0 # If you're having problems with gated making 127.0.0.0/8 a martian, # you can change this to something else (255.255.255.255, for example) BROADCAST=127.255.255.255 ONBOOT=yes NAME=loopback NM_CONTROLLED=NO
Verbindung des Carriers mit dem internet
Anpassen an die örtlichen Begebenheiten
vim /etc/sysconfig/network-scripts/ifcfg-enp0s3
TYPE="Ethernet" BOOTPROTO="static" IPADDR=192.168.0.127 NETMASK=255.255.255.0 GATEWAY=192.168.0.240 DEFROUTE="yes" IPV4_FAILURE_FATAL="no" NAME="enp0s3" UUID="658e7fd0-5ce5-488c-a1f5-9e9e8c3c2c22" ONBOOT="yes" DNS1=127.0.0.1 IPV6INIT=no HWADDR=08:00:27:54:2A:5E NOZEROCONF=yes NM_CONTROLLED="no" #PEERDNS=yes #PEERROUTES=yes
Verbindung der CTs ins Internet
vim /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0 TYPE=Bridge IPV4_FAILURE_FATAL=no IPADDR=10.255.255.1 PREFIX=24 #NETMASK=255.255.255.0 ONBOOT=yes BOOTPROTO=static NM_CONTROLLED=no DELAY=0 STP=yes NOZEROCONF=yes NM_CONTROLLED=NO
Verbindung der CTs ins Intranet
br1
vim /etc/sysconfig/network-scripts/ifcfg-br1
DEVICE=br1 TYPE=Bridge DEFROUTE=yes IPV4_FAILURE_FATAL=no ONBOOT=yes BOOTPROTO=none NM_CONTROLLED=no DELAY=0 STP=yes NOZEROCONF=yes NM_CONTROLLED=NO
Physische Netzwerkkarte der Bridge br1 hinzufügen
vim /etc/sysconfig/network-scripts/ifcfg-enp0s8
HWADDR=08:00:27:06:28:E0 TYPE=Ethernet BOOTPROTO=none IPV4_FAILURE_FATAL=no NAME=enp0s8 UUID=e2120a43-de79-4da8-8d6e-afe702b0b17d ONBOOT=yes BRIDGE=br1 NOZEROCONF=yes NM_CONTROLLED=NO
Forwarding
vim /etc/sysctl.conf net.ipv4.ip_forward = 1
sysctl -p /etc/sysctl.conf
Firewall
Ich bin mit firewalled nicht vetraut und nutze iptables.
systemctl stop firewalld.service systemctl disable firewalld.service
yum -y install iptables-services
iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE
Regel abspeichern
service iptables save
systemctl start iptables.service systemctl status iptables.service
Avahi ausschalten
Zeroconf wird nicht benötigt.
systemctl stop avahi-daemon.socket systemctl disable avahi-daemon.socket
systemctl stop avahi-daemon.service systemctl disable avahi-daemon.service
LV für LXC erstellen
lvcreate -L+40G -n lxc centos
mkfs.ext4 /dev/centos/lxc
blkid|grep lxc >> /etc/fstab
vim /etc/fstab /dev/disk/by-uuid/<uuid> /var/lib/lxc ext4 defaults 1 2
SELINUX in permissiven Modus versetzen
vim /etc/selinux/config
Ändern von
SELINUX=enforcing
in
SELINUX=permissive
Zum Aktivieren der SELINUX Änderung muss der Host neu gestartet werden.
reboot
Wenn alles läuft, kann mensch immer noch daran rumschrauben.
Überprüfen
Netzwerk
ifconfig
Passt alles?
route
Avahi wirklich weg?
cat /etc/resolv.conf
Alles wie gewünscht?
ping heise.de
Funktioniert die Namensauflösung?
brctl show
Bridges und Interface O.K.?
iptables -L -v -t nat
MASQUERADE am passenden Interface
Installation CT
debootstrap
Auch hier, <hostname>-lnx01 ist eine willkürliche Definition
lxc-create -t centos -n <hostname>-lnx01
- t = Template
- n = Containername, ist ebenfalls CT-Hostname
Passwort ändern
BUG BIG BUG BIG BUG
- https://lists.linuxcontainers.org/pipermail/lxc-devel/2014-September/010261.html
- https://github.com/lxc/lxc/pull/342
Container braucht ewig, bis er läuft, wenn er denn läuft (30 min)
Die LXC-Leute haben den Bug GESCHLOSSEN! Im Spetember 2014!
Ich kotze!!!!! Es gibt nen Patch für lxc-1.0.8, aktuell ist 1.07
Planänderung: OPSI goes bare iron
Hostname und /etc/hosts
<hostname>-lnx01 ist eine willkürliche Definition
hostnamectl set-hostname <hostname>-lnx01
vim /etc/hosts
<Inhalt anpassen>
Netzwerk ändern
vim /etc/sysconfig/network-scripts/ifcfg-enp0s8
HWADDR=08:00:27:06:28:E0 NM_CONTROLLED="no" IPADDR=10.180.18.1 PREFIX=24 TYPE=Ethernet BOOTPROTO=none IPV4_FAILURE_FATAL=no NAME=enp0s8 UUID=e2120a43-de79-4da8-8d6e-afe702b0b17d ONBOOT=yes #BRIDGE=br1 NOZEROCONF=yes
br0 und br1 starten nicht mehr beim booten.
ONBOOT=no
OPSI Installation
yum install dhcp-common dhcp bind
yum install -y xinetd => fehlgeschlagen, hat unter CentOS 6 aber auch funktioniert
yum install -y samba samba-client => ohne MySQL-Server
yum install -y python-pyasn1
LV ändern
umount /var/lib/lxc
lvremove /dev/centos/lxc
lvcreate -L+50G -n local centos
mkfs.ext4 /dev/centos/local
Überprüfen
lvdisplay
blkid |grep local >> /etc/fstab
vim /etc/fstab
/etc/fstab anpassen
mkdir /local
mount -a
OPSI Pakete
activate_license
Die ini bezieht sich auf den Depotserver
vim /var/lib/opsi/config/depots/<hostname>.<domain>.local.ini
[activate_license-install] productkey = ["<Windows Volume LIcence Key"] setkey = ["yes"]
windomain
Download at
[windomain-install] account_ou = [] domain = ["<samba-domain>"] method = ["auto"] password = ["<password für user, der ein joindomain durchführen kann>"] primarywinsserver = [] samba_domain = ["true"] = default ist false secondarywinsserver = [] username = ["<user, der ein joindomain durchführen kann>"]
win7
unattende install
- Password für den Administrator ändern
- Default ist nt123, in der Datei unattend.xml zwei mal vorhanden.
- Beide male durch das selbe, neue ersetzen.
vim /var/lib/opsi/depot/win7/custom/unattend.xml
Andere Helfer
BGInfo
- https://technet.microsoft.com/de-de/sysinternals/bb897557.aspx
- Zeigt verschiedenste Daten auf dem Desktopn an
- Hier reduziert auf Hostname und IP
- Die Exe und das configfile liegen im Share tools
- Ein User mit Schreibrechten ruft das Script auf und konfiguriert es. Dazu /timer:NULL weglassen.
- Beispielconfig:
<UserName>@<HostName> IP: <IP Adress>
- /accepteula impliziert die Annahme der EULA.
- Kost nix, darf überall verwendet werden, Download nur bei MS.
- Details: siehe EULA im Download
vim /local/samba/netlogon/logon.cmd
\\<domain-server>\tools\BGInfo \\<domain-server>\tools\conf.bgi /timer:Null /accepteula
- smb.conf Ausschnitt
[tools] comment = Kleine Helfer path = /local/samba/shares/tools guest ok = no writeable = no browseable =no write list = @ntadm
Probleme
samba 4 classic primary controller
- nur root kann Client connecten
Beschreibung
Der user domadmin wurde währen der Installation erstellt und zur Gruppe ntadmin hinzugefügt.
D.h., seine Promary Group ist domadmin, seine secondary ntadmin
Die Gruppe ntadmin wurde per net groupmap add.... auf Domain Admins gemappt.
Syntax O.K., Ergebniss schlecht, es funzt nicht.
Der User domadmin ist kein Admin, auch nicht auf den Windowsclients.
Lösung
net groupmap delete netgroup="Domain Admins"
ntadmin ist nicht mehr auf "Domain Admins" gemappt.
addgroup ntadm
net groupmap add nfgroup="Domain Admins" unixgroup=ntadm rid=512 type=d
Benutzer domadmin der Gruppe ntadm hinzugefügt.
Alles O.K.
Vor der Änderung
Ich hatte einen Bentzer domjoin angelegt, legitimiert durch domadmin.
net rpc rights grant 'DOMAIN\domjoin' SeMachineAccountPrivilege -U domadmin
Dieser konnte keinen Client mit der Domain connecten.
Nach dem neuen Mapping auf ntadm einen neuen User angelegt.
useradd join smbpasswd -a join net rpc rights grant 'DOMAIN\join' SeMachineAccountPrivilege -U domadmin
Alles O.K.
Warum? Keine Ahnung. Vielleicht die Reihenfolge der Gruppen in /etc/group. Dort steht ntadmin vor domadmin
Windows updaten
Work in Progress
- Ansätze => wsusoffline für OPSI
- http://www.wsusoffline.net/
- http://trac.dass-it.de/pub/wiki/opsi#wsusoffline
Geht nicht
- Repos für RedHat 7 (hoffentlich auch für CentOS 7 => nope. /usr/bin/groupadd fehlt! Symlink nütz nichts
- http://software.opensuse.org/download/package?project=home:dassit:opsi:opsi4&package=wsusoffline
Lösung
Paket als rpm downloaden
yum install epel-release (da gibt es auch openvpn her, doppelt nützlich)
yum install xmlstarlet md5deep
rpm -i wsusoffline-8.0.0.1144-1.1 => klappt immer noch nicht, /usr/bin/groupadd fehlt.
rpm -i wsusoffline-8.0.0.1144-1.1 --nodeps
Scheint trotzdem zu funktionieren.
Windows 7 32bit Updates ziehen
wsus-download-updates.sh w61 deu
Wenn nicht, wsusoffline mit einem Windowsclienten durchführen
http://download.wsusoffline.net/wsusoffline954.zip => oder neuer
- Die Daten in ein OPSI-Packet packen (siehe dass-it), sollte gehen.
- Oder per logon.cmd ausführen.
Links
- Commandozeilenargumente
- http://wiki.oppserver.net/index.php/WSUSOFFLINE_INSTALL_FAQ_AUF_DEBIAN_SQUEEZE
- Interessanter Thread
- http://forums.wsusoffline.net/viewtopic.php?f=9&t=3737
- Wsusoffline Forum
- http://forums.wsusoffline.net/viewforum.php?f=1