Categories
Linux

Cheatsheet: Netplan-Example containing IPv4 and IPv6 configuration

In the example below you can review a netplan using IPv4 as well as IPv6. We’ve replaced the addresses with casual IPs.

# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      # Disable DHCP
      dhcp4: no
      dhcp6: no
      # Address configuration - multiple addresses can be added by adding a line 
      addresses:
        - 192.168.1.123/24
        - 123:4567:ab12:3:192:168:1:123/64
      # Gateways
      gateway4: 192.168.1.1
      gateway6: 123:4567:ab12:3::1
      # Nameservers - again you can add multiple lines
      nameservers:
        addresses:
          - 192.168.1.1
          - 192.168.1.2
          - 123:4567:ab12:3:192:168:1:1
          - 123:4567:ab12:3:192:168:1:2

You can apply your netplan by using the following command:

sudo netplan apply
Categories
Linux

Neue Partition mittels LVM erstellen (nicht erweitern)

Zuerst lassen wir uns die verfügbaren Disks anzeigen, um herauszufinden, auf welcher Disk wir die neue Partition erstellen:

fdisk -l

In unserem Beispiel gehen wir nun von der 2. Disk aus, die über /dev/sdb adressiert wird. Auf dieser Disk erstellen wir nun als erstes ein sogenanntes Physical Volume. Dazu gehen wir zuerst in die LVM-Befehlszeile:

sudo lvm

Anschließend können wir das Physical Volume erstellen:

pvcreate /dev/sdb

Sie können an dieser Stelle auch mehrere Physical Volumes erstellen, die Sie dann im nächsten Schritt zusammenfassen. Wenn Sie mehrere Volumes anlegen wollen, können Sie diese entweder mittels Leerzeichen getrennt an obigen Befehl ranhängen, oder aber den Befehl für jedes Volume entsprechend ausführen.

Das Ergebnis können wir folgendermaßen anzeigen:

pvdisplay /dev/sdb

Nun können wir die zuvor angelegten Physical Volumes zu einer Volume Group zusammenfassen. Dazu geben wir zuerst den Namen an und anschließend die Physical Volumes – wieder durch Leerzeichen getrennt. In unserem Fall haben wir nur eines:

vgcreate sql-vg /dev/sdb

Das Resultat können wir über folgenden Befehl abrufen:

vgdisplay sql-vg

Innerhalb der Volume Group können wir nun endlich die Logical Volumes erstellen – Unsere nachher in Unix sichtbaren Partitionen. Dabei geben wir die Größe der Partition, den Namen und die Volume Group an:

lvcreate -L 199.996G -n sqldata sql-vg

Die Größe wurde übrigens genommen, weil ursprünglich 200G (volle Größe der Volume Group) geplant waren, das aber als “zu groß” vom System abgelehnt wurde. Deswegen hab ich dann immer 1MB abgezogen und nochmal versucht. Bei 199.996G ging es dann und wurde auch aufgerundet vom System.

Das Resultat können wir wieder mit folgendem Befehl betrachten:

lvdisplay /dev/sql-vg/sqldata

Nun sind wir in der LVM-Befehlszeile fertig und können diese verlassen:

exit

Anschließend formatieren wir unsere neue logische Partition noch mittels folgendem Befehl (ext3):

mke2fs -j /dev/sql-vg/sqldata

Jetzt können wir die neue Partition noch mounten. In unserem Fall wollten wir die Partition direkt unter Root mounten. Dazu erstellen wir ein Verzeichnis am Zielort und mounten die Partition dann:

mkdir /sqldata
mount /dev/sql-vg/sqldata /sqldata

Damit wird die Partition nutzbar. In unserem Fall war es das Datenverzeichnis für unsere ersten Gehversuche mit MSSQL unter Linux.

Categories
Linux

OneLiner: Dateien im Unix-Betriebssystem finden

Um das zu erreichen, können Sie folgenden Befehl eingeben:

find / -iname "file.example" 2>/dev/null

Erkärung:
Einsprungsort
Dateinamen
Unterdrückung von “Access denied”-Fehlern

Categories
Linux

/boot Partition läuft voll

Wenn die /boot Partition nur noch über wenig freien Speicher verfügt, reicht es meistens aus, die alten Kernel Versionen zu löschen.

Gehen Sie hiebei wie folgt vor:

Mit folgendem Befehl kann man sich alle installierten – jedoch nicht verwendeten – Kernel anzeigen lassen:

kernelver=$(uname -r | sed -r 's/-[a-z]+//')
dpkg -l linux-{image,headers}-"[0-9]*" | awk '/ii/{print $2}' | grep -ve $kernelver

Alle in dieser nun angezeigten Liste können gelöscht werden. Um Diese zu löschen, muss folgender Befehl verwendet werden (Hier am Beispiel mit linux-image-4.4.0-104-generic):

sudo apt-get purge linux-image-4.4.0-104-generic

Man kann sich wenn man die letzten 2 Kernel behalten möchte, jedoch nicht sicher ist ob schon genug Speicher freigegeben wurde, mit folgendem Befehl die aktuellen Daten für die /boot Partition ausgeben lassen:

df -h /boot
Categories
Linux CentOS Zabbix

CentOS Zabbix Proxy: Neustartskript

Wir haben mehrere CentOS-basierte Zabbix-Proxies. Damit diese auch nach dem Neustart noch ihren Zweck erfüllen und nicht irgendwie in der Luft hängen, haben sich folgende Schritte etabliert.

nano /etc/rc.d/rc.local

Hinter diesem Pfad verbirgt sich ein Startup-Script. Dieses kann schon einige Zeilen enthalten. Wir ergänzen es einfach um folgende Einträge:

# eth1 ist die NIC in unser Netzwerk. eth0 ist die NIC mit Default Gateway in das zu überwachende Netz
# Zu Beginn starten wir diese NIC einmal neu, um sicherzustellen, dass sie aktiv ist
ifdown eth1
ifup eth1

# Dann setzen wir die Route für das Netz, in dem der Zabbix-Server letztendlich steht
ip route add [MgmtNetz]/[Hostbits] via [IP des Gateways der NIC] dev eth1 proto static metric 10
# Bsp.: ip route add 192.168.1.0/24 via 172.16.1.1 dev eth1 proto static metric 10

# SELinux Konfiguration “Eine Bastion gegen Angriffe”
setsebool zabbix_can_network 1
setsebool httpd_can_connect_zabbix 1

# Sicherstellen dass die Dienste laufen
systemctl start zabbix-proxy
systemctl start zabbix-agent
systemctl start postgresql

Anschließend stellen wir sicher, dass das Script ausführbar ist:

chmod +x /etc/rc.d/rc.local

Damit sollte der Proxy künftige Neustarts überleben.

Categories
Linux CentOS

CentOS 7: Neue Disk zu LVM Disk Group hinzufügen (Härtefall)

In einem relativ aktuellen Fall hatten wir das Problem, dass unter einer CentOS7-VM ein LVM-Volume volllief:

sudo lvm vgdisplay
 --- Volume group ---
 VG Name centos
 System ID
 Format lvm2
 Metadata Areas 3
 Metadata Sequence No 8
 VG Access read/write
 VG Status resizable
 MAX LV 0
 Cur LV 3
 Open LV 3
 Max PV 0
 Cur PV 3
 Act PV 3
 VG Size 1.27 TiB
 PE Size 4.00 MiB
 Total PE 332622
 Alloc PE / Size 332622 / 1.27 TiB
 Free PE / Size 0 / 0
 VG UUID xxxx

Nun wurde über Hyper-V eine weitere 500GB große Disk hinzugefügt. Diese muss nun zum logischen Volume hinzugefügt werden. Hierzu gehen wir erstmal in die LVM-Umgebung:

> Sudo LVM

Nach erneuter Eingabe des Passworts können wir loslegen. Über den Befehl lvmdiskscan können wir den Pfad der neuen Disk bestimmen:

lvm> lvmdiskscan
 /dev/centos/root [ 1.03 TiB]
 /dev/sda1 [ 200.00 MiB]
 /dev/centos/swap [ 2.00 GiB]
 /dev/sda2 [ 500.00 MiB]
 /dev/centos/home [ 247.25 GiB]
 /dev/sda3 [ 299.31 GiB] LVM physical volume
 /dev/sdb [ 500.00 GiB]
 /dev/sdc [ 500.00 GiB] LVM physical volume
 /dev/sdd1 [ 500.00 GiB] LVM physical volume
 4 disks
 2 partitions
 1 LVM physical volume whole disk
 2 LVM physical volumes

Mit dieser Disk werde ich das Beispiel durchmachen, Sie aber zur Verdeutlichung auch immer rot markieren. Als erstes wollen wir erreichen, dass die Disk über den LVM verwendet werden kann. Hierzu verwenden wir folgenden Befehl:

lvm> lvm pvcreate /dev/sdb
 Physical volume "/dev/sdb" successfully created

Führen wir nun erneut den Befehl lvmdiskscan aus, so sehen wir, dass die neue Disk hinzugefügt wurde:

lvm> lvmdiskscan
 /dev/centos/root [ 1.03 TiB]
 /dev/sda1 [ 200.00 MiB]
 /dev/centos/swap [ 2.00 GiB]
 /dev/sda2 [ 500.00 MiB]
 /dev/centos/home [ 247.25 GiB]
 /dev/sda3 [ 299.31 GiB] LVM physical volume
 /dev/sdb [ 500.00 GiB] LVM physical volume
 /dev/sdc [ 500.00 GiB] LVM physical volume
 /dev/sdd1 [ 500.00 GiB] LVM physical volume
 3 disks
 2 partitions
 2 LVM physical volume whole disks
 2 LVM physical volumes

Jetzt können wir die Disk nehmen, und sie unserer bestehenden LVM-Gruppe hinzufügen. Den Gruppennamen bekommt man über den Befehl vgdisplay heraus:

lvm> vgdisplay
 --- Volume group ---
 VG Name centos
 System ID
 Format lvm2
 Metadata Areas 3
 Metadata Sequence No 8
 VG Access read/write
 VG Status resizable
 MAX LV 0
 Cur LV 3
 Open LV 3
 Max PV 0
 Cur PV 3
 Act PV 3
 VG Size 1.27 TiB
 PE Size 4.00 MiB
 Total PE 332622
 Alloc PE / Size 332622 / 1.27 TiB
 Free PE / Size 0 / 0
 VG UUID x6THwj-1ybf-7UZD-GSb4-OJU0-ByTg-dyQL7h

Somit können wir folgenden Befehl abfeuern:

vgextend "centos" /dev/sdb
Volume group "centos" successfully extended

Sollten hier schon Fehlermeldungen wie diese hier kommen:

Couldn't create temporary text file name.
Backup of volume group centos metadata failed.

…so werden wir nachher noch was beachten müssen. Dies tritt vor allem dann auf, wenn das bestehende Volume wirklich komplett voll ist.

Nachdem nun die Gruppe vergrößert wurde, muss das Volume entsprechend vergrößert werden. Bei uns war es das root-Volume, dessen Pfad wir über den Befehl lvmdiskscan schon ausmachten:

lvm> lvmdiskscan
 /dev/centos/root [ 1.03 TiB]
 /dev/sda1 [ 200.00 MiB]
 /dev/centos/swap [ 2.00 GiB]
 /dev/sda2 [ 500.00 MiB]
 /dev/centos/home [ 247.25 GiB]
 /dev/sda3 [ 299.31 GiB] LVM physical volume
 /dev/sdb [ 500.00 GiB] LVM physical volume
 /dev/sdc [ 500.00 GiB] LVM physical volume
 /dev/sdd1 [ 500.00 GiB] LVM physical volume
 3 disks
 2 partitions
 2 LVM physical volume whole disks
 2 LVM physical volumes

Wir müssen uns nun also die zukünftige Größe des Volumes erschließen. Dies geschieht in zwei Schritten:

lvm> vgdisplay
 --- Volume group ---
 VG Name centos
 System ID
 Format lvm2
 Metadata Areas 4
 Metadata Sequence No 9
 VG Access read/write
 VG Status resizable
 MAX LV 0
 Cur LV 3
 Open LV 3
 Max PV 0
 Cur PV 4
 Act PV 4
 VG Size 1.76 TiB
 PE Size 4.00 MiB
 Total PE 460621
 Alloc PE / Size 332622 / 1.27 TiB
 Free PE / Size 127999 / 500.00 GiB
 VG UUID x6THwj-1ybf-7UZD-GSb4-OJU0-ByTg-dyQL7h

lvm> lvdisplay /dev/centos/root
 --- Logical volume ---
 LV Path /dev/centos/root
 LV Name root
 VG Name centos
 LV UUID 6wSo4q-yRO7-dZiZ-TwBf-QYeq-iTjf-O1Uk6Z
 LV Write Access read/write
 LV Creation host, time localhost.localdomain, 2016-03-14 13:42:03 +0100
 LV Status available
 # open 1
 LV Size 1.03 TiB
 Current LE 268814
 Segments 3
 Allocation inherit
 Read ahead sectors auto
 - currently set to 8192
 Block device 253:0

Addieren wir die aktuelle Größe des Volumes mit dem neu gewonnenen freien Speicherplatz (127999 + 268814), so bekommen wir als Endergebnis die neue Größe des Laufwerks (396813). Sofern es vorher keine Fehlermeldung bei Ausführung des Befehls vgextend “centos” /dev/sdb gab, so können Sie nun mit folgendem Befehl das Volume erweitern:

lvm> lvresize -l 396813 /dev/centos/root
Size of logical volume centos/root changed from 1.03 TiB (268814 extents) to 1.51 TiB (396813 extents).
Logical volume root successfully resized.

Anderenfalls müssen wir noch das Autobackup deaktivieren, was aber durch eine kleine Abänderung des Befehls noch in der selben Line möglich ist:

lvm> lvresize -A n -l 396813 /dev/centos/root
 Size of logical volume centos/root changed from 1.03 TiB (268814 extents) to 1.51 TiB (396813 extents).
 WARNING: This metadata update is NOT backed up
 Logical volume root successfully resized.

Abschließend muss noch das Dateisystem erweitert werden. Dies erfolgt über den folgenden Befehl (außerhalb der LVM-Umgebung):

> sudo xfs_growfs /dev/centos/root

Das sollte es gewesen sein. Überprüfen kann man es mit dem Befehl df -h:

df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 1.6T 1.1T 500G 68% /
devtmpfs 5.8G 0 5.8G 0% /dev
tmpfs 5.8G 8.0K 5.8G 1% /dev/shm
tmpfs 5.8G 8.3M 5.8G 1% /run
tmpfs 5.8G 0 5.8G 0% /sys/fs/cgroup
/dev/sda2 494M 134M 361M 28% /boot
/dev/sda1 200M 9.5M 191M 5% /boot/efi
/dev/mapper/centos-home 248G 33M 248G 1% /home
tmpfs 1.2G 0 1.2G 0% /run/user/1001
Categories
3CX Linux

3CX auf Debian installieren

Installation von Debian

VM mittels aktuellstem Debian 10 “Buster” ohne GUI installieren.

Mit dem Befehl …

ip addr

… prüfen, ob man die gewünschte IP-Adresse hat.

Falls das nicht der Fall ist, muss die IP-Adresse entsprechend angepasst werden:

nano /etc/network/interfaces
auto eth0
iface eth0 inet static
address [IP]
netmask [SNM]
gateway [GW]

Es müssen alle weiteren, nicht gebrauchten Netzwerke deaktiviert bzw. gelöscht werden.

Danach muss die sources.list folgendermaßen bearbeitet werden:

nano /etc/apt/sources.list
# deb cdrom:[...]
# deb cdrom:[...]

deb http://deb.debian.org/debian/ buster main
deb-src http://deb.debian.org/debian/ buster main

deb http://security.debian.org/debian-security buster/updates main contrib
deb-src http://security.debian.org/debian-security buster/updates main contrib

deb http://deb.debian.org/debian/ buster-updates main contrib
deb-src http://deb.debian.org/debian/ buster-updates main contrib

Wichtig ist, dass die “deb cdrom…”-Zeilen per ‘#’ auskommentiert werden.

Danach folgende Befehle ausführen:

apt install -y gnupg
wget -O- http://downloads-global.3cx.com/downloads/3cxpbx/public.key | apt-key add -
echo "deb http://downloads-global.3cx.com/downloads/debian buster main" | tee /etc/apt/sources.list.d/3cxpbx.list
apt update
apt install -y 3cxpbx

Danach sollten Sie die 3CX über folgende URL erreichen:

HTTP://[IPADDRESSE]:5015/?V=2

Wenn man die Maschine zwischendrin neustartet, ist der Assistent nicht mehr erreichbar. Reinitialisieren und dadurch wieder erreichbar machen kann man ihn über folgenden Befehl:

sudo /usr/sbin/3CXWizard --cleanup