Client Installation
Aus Vosp.info
Zurück zu OPSI
Inhaltsverzeichnis
MACs der Client-PCs finden
- Ziel: Erkennen und Einbinden neuer Clients.
- Automatisiert wird:
- /etc/dhcp/dhcpd.conf schreiben
- OPSI-Client hinzufügen
- OPSI-Client mit Software versorgen
- Automatisiert wird:
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.
Auf CentOS
Notwendige Pakete
yum install -y syslinux-tftpboot nmap
Struktur erstellen
mkdir -p /tftpboot/detect/tinycore-hd mkdir /tftpboot/detect/pxelinux.cfg
cp -v /usr/share/syslinux/pxelinux.0 . cp -v /usr/share/syslinux/memdisk .
tinycore
Ziel: tinycore soll sich per ssh steuern lassen.
tinycore remastern
- Das remastern kann auch auf einem anderen Rechner stattfinden.
- Das core.gz muss auf einem Clienten startbar sein
- Links:
- Pfade können sich ändern (08.04.2015)
- openssh besteht aus:
gcc_libs.tcz openssl-1.0.0.tcz openssh.tcz
Auf dem Server
mkdir ~/bin/remastertiny cd ~/bin/remastertiny wget http://tinycorelinux.net/5.x/x86/release/Core-current.iso -O ~/bin/remastertiny/core.iso mount -o loop core.iso /mnt cp -a /mnt/* /tftpboot/detect/tinycore-hd cp /tftpboot/detect/tinycore-hd/boot/core.gz .
chmod 644 core.gz
wget http://tinycorelinux.net/5.x/x86/tcz/gcc_libs.tcz wget http://tinycorelinux.net/5.x/x86/tcz/openssl-1.0.0.tcz wget http://tinycorelinux.net/5.x/x86/tcz/openssh.tcz mkdir tmp cd tmp zcat ../core.gz | cpio -i -H newc -d cd .. unsquashfs -f gcc_libs.tcz unsquashfs -f openssl-1.0.0.tcz unsquashfs -f openssh.tcz cd squashfs-root cp -a usr/ ../tmp cd ../tmp cd usr/local/etc/ssh/ cp sshd_config.example sshd_config find | cpio -o -H newc | gzip -2 > ../core.gz cp ../core.gz /tftpboot/detect/tinycore-hd/boot/
Einen Clienten mit dem neuen core.gz starten
Auf dem Clienten
sudo su passd
Billiges Passwortz vergeben
/usr/local/etc/init.d/openssh start
Es werden die sshd-keys generiert.
Auf dem Server
Das ganze ssh-Verzeichniss vom Clienten kopieren
cd ~/bin/remastertiny/tmp/usr/local/etc scp -r root@<Client-IP>:/usr/local/etc/ssh/ .
Das Homeverzeichniss des users tc kopieren
scp -r root@10.8.18.30:/home/tc /home
/tftpboot/detect/pxelinux.cfg/default
vim /tftpboot/detect/pxelinux.cfg/default
default core label core kernel tinycore-hd/boot/vmlinuz append initrd=tinycore-hd/boot/core.gz
/etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf
- Einfügen
# Global # filename detect # filename "detect/pxelinux.0"; # in der subnet definition #range detect # range <sehr großer range>;
Für den detect mode den range und den filename in der dhcpd.conf umschalten.
systemctl restart dhcpd.service
Scripte
delete-host <HOSTNAME>
#!/bin/bash __HOST=$1 __FQDN=$__HOST.$(hostname -d) __DHCPD_CONFIG=/etc/dhcp/dhcpd.conf echo "Deleting $__FQDN from OPSI and dhcpd.conf" opsi-admin -d method deleteClient $__FQDN sed -i "s#$(grep $__FQDN $__DHCPD_CONFIG)#$(grep $__FQDN $__DHCPD_CONFIG | sed "s#\([0-9A-Z][0-9A-Z]:\)\{5\}[0-9A-Z][0-9A-Z]#00:00:00:00:00:00#")#" $__DHCPD_CONFIG
detect-setup
#!/bin/bash # __PKGS sourcen aus ~/bin/PKGS.conf # Example: __PKGS="win7 cool-software uncool-software" if [ -f ~/bin/PKGS.conf ] then . ~/bin/PKGS.conf else echo "Pakage config ist missing" exit fi __NETWORK=<NETWORK>/24 __DHCPD_CONF=/etc/dhcp/dhcpd.conf __MAC="" __HOSTNAME="" __DOMAIN=$(hostname -d) if [ -d new_clients ] then echo "new_clients exists" exit else mkdir new_clients fi cp -a $__DHCPD_CONF $__DHCPD_CONF-$(date +%Y-%m-%d_%H-%M) for __MAC in $(nmap -n -sP $__NETWORK |grep MAC|awk '{print $3}') do # Setup dhcpd.conf echo $__MAC sed -i "0,/00:00:00:00:00:00/s//$__MAC/" $__DHCPD_CONF # grep new Hostname __HOSTNAME=$(grep $__MAC $__DHCPD_CONF |grep -oE win[0-9]*[0-9][0-9].$__DOMAIN|cut -d. -f1) echo $__HOSTNAME touch new_clients/$__HOSTNAME # Create new OPSI-Client __FQDN=$__HOSTNAME.$__DOMAIN opsi-admin -d method createClient "${$__HOSTNAME}" "${$__DOMAIN}" opsi-admin -d method setMacAddress "${$__FQDN}" "${$__MAC}" # Setup software for new Client for __PKG in $__PKGS do opsi-admin -d method setProductActionRequest $__PKG "${__FQDN}" setup done done