Fabric-server
Jag använder Debian för alla mina servrar, och jag kommer att förklara varför vid ett senare tillfälle.
Först måste vi installera ”Fabric”, den server som ska användas för att installera virtuella servrar. Helst bör den inte vara tillgänglig för någon annan än den person som ska administrera den. Det är inget märkligt med det – vi gör en standardinstallation, men avmarkerar det grafiska gränssnittet och väljer ”Öppen SSH-server”.
Efter att vi har installerat operativsystemet måste vi göra några inställningar. Låt oss därför logga in som root.
Grundläggande konfiguration
Skapa språkinställningar
Ställ in systemspråket på engelska för att göra det lättare att upptäcka problem i loggfilerna:
apt install locales-all
localectl set-locale LANG=en_US.utf8
localectl status
Uppdatera Debian och installera de nödvändiga administrationsverktygen
apt update
apt install wget sudo screen nmap telnet tcpdump rsync net-tools dnsutils htop \
apt-transport-https vim gnupg lsb-release
Skapa nano /etc/sudoers.d/10-nopasswd och lägg till:
%emir ALL=(ALL) NOPASSWD: ALL
Konfigurera VIM
Öppna nano /etc/vim/vimrc och ersätt hela innehållet med:
runtime! debian.vim
syntax on
set background=dark
au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
filetype plugin indent on
set encoding=utf-8
set nobackup
set nowritebackup
set showcmd
set updatetime=300
set showmatch
set ignorecase
set smartcase
set incsearch
set tabstop=2
set softtabstop=2
set shiftwidth=2
set expandtab
if filereadable("/etc/vim/vimrc.local")
source /etc/vim/vimrc.local
endif
Skapa en Vim-konfigurationsfil med nano ~/.vimrc och lägg till följande:
set mouse=
set nocompatible
set cursorline
set nocursorcolumn
set nowrap
set showmode
set hlsearch
set wildmenu
set wildmode=list:longest
set wildignore=*.docx,*.jpg,*.png,*.gif,*.pdf,*.pyc,*.exe,*.flv,*.img,*.xlsx
Starta om systemet och logga in som vanlig användare. I mitt fall emir.
Ställ in samma Vim-användarinställningar som ovan för den aktuella användaren.
Virtualisering
Konfigurera mappar
sudo mkdir -p /srv/virt/vmdisks
sudo mkdir -p /srv/virt/iso
Kontrollera om virtualisering stöds
egrep -c '(vmx|svm)' /proc/cpuinfo
grep -E --color '(vmx|svm)' /proc/cpuinfo
När du kör ovanstående kommandon för att kontrollera om virtualisering är aktiverad eller inte kommer utdata att vara större än noll. Om så inte är fallet måste du först starta om systemet och gå in i systemets BIOS. Aktivera virtualiseringen och starta sedan upp operativsystemet, där du återigen kör ovanstående kommando för att bekräfta detta.
Install QEMU-KVM & Libvirt
sudo apt install qemu-system libvirt-daemon-system qemu-kvm \
libvirt-clients libvirt-daemon-system bridge-utils dnsmasq virtinst \
libvirt-daemon virt-manager net-tools
Aktivera nätverket och ställ in automatisk omstart
sudo virsh net-start default
sudo virsh net-autostart default
sudo modprobe vhost_net
lsmod | grep vhost
# if vhost_net does not exist in /etc/modules run:
sudo echo "vhost_net" | sudo tee -a /etc/modules
Skapa ett nätverk av broar
Även om KVM levereras med ett nätverksgränssnitt av typen ”virbr0” som är konfigurerat från början, kan vi inte komma åt den virtuella KVM-maskinen från värddatorn via någon annan dator i nätverket på grund av det IP-intervall som tilldelats av detta gränssnitt. Därför ska vi skapa vårt eget fullbridge-gränssnitt över värdsystemets fysiska nätverkskort, som kommer att ha IP-adressintervallet för vårt nätverk.
Hitta det fysiska nätverksgränssnitt som är anslutet till ditt värdsystem och som du vill använda för bryggan ip a och redigera filen för ditt nätverksgränssnitt sudo vim /etc/network/interfaces.
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eno1
auto br0
iface br0 inet static
address 10.115.100.2/24
gateway 10.115.100.1
bridge_ports eno1
bridge_stp off
bridge_fd 0
bridge_maxwait 0
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 8.8.8.8 8.8.4.4
dns-search yourdomain.com
Andra skivan
Läs det här kapitlet om du, precis som jag, använder en separat hårddisk för virtuella maskiner.
Du kan kontrollera om hårddisken har lästs in av servern på flera olika sätt:
Med kommandot dmesg kan du se de senaste händelserna på servern. Enheten bör ha tilldelats en /dev/-beteckning (t.ex. /dev/sdc).
dmesg
En annan metod du kan använda är att kontrollera om det finns en ny enhet i listan i fdisk:
fdisk -l
Oavsett vilken metod du väljer bör enheten visas om operativsystemet har upptäckt den. Om du använder dmesg och enheten har varit ansluten under en längre tid kan du behöva koppla bort och ansluta den på nytt.
När du har kontrollerat att enheten har identifierats av operativsystemet måste du formatera den med den metod du föredrar. (fdisk/parted/etc.) Efter att du har formaterat enheten måste du skapa ett filsystem på den, varefter den är redo att monteras. Se längst ner i det här inlägget för en steg-för-steg-guide om du inte är bekant med formaterings- och filsystemskapningsprocessen.
Skapa en katalog där den nya enheten ska monteras (jag använder den befintliga katalogen /srv):
sudo mkdir -p /new/drive/
Montera enheten i den nya katalogen:
sudo mount /dev/sdb1 /new/drive
Se till att lägga till följande i sudo vim /etc/fstab om du vill att monteringen ska finnas kvar efter en omstart av datorn:
/dev/sdb1 /new/drive ext4 defaults 0 1
Till exempel: (Om vi antar att den nya enheten är /dev/sdb, att du vill använda ext4 som filsystem och att du planerar att använda hela disken)
sudo parted /dev/sdb
mklabel
gpt # label type
mkpart
srv # partition name
ext4 # File system type (ext3,ext4,etc.)
1 # Partition Starting point
100% # Partition ending point
quit # exit parted
sudo mkfs.ext4 /dev/sdb1
Skapa en lagringspool
En lagringspool kan skapas med hjälp av kommandoradsverktyget virsh. Med kommandoradsverktyget virsh kan du ange alla parametrar. I det här exemplet heter poolen vmdisks:
sudo virsh pool-define-as \
--name vmdisks \
--type dir \
--target /srv/virt/vmdisks
sudo virsh pool-start --build vmdisks
sudo virsh pool-autostart vmdisks
sudo virsh pool-list --all
Avsluta med att granska informationen om lagringspoolen:
sudo virsh pool-info vmdisks
Användbara kommandon
sudo virsh console VM (or ID) # Escape character is ^] (Ctrl + ])
sudo virsh destroy VM # force shutdown
sudo virsh shutdown VM
sudo virsh start VM
sudo virsh edit VM
sudo virsh undefine VM # delete VM and then delete disk if actuellt
sudo virsh list --all
sudo virsh vncdisplay VM
Konfigurera SSH-inloggning med nycklar
Skapa ett nyckelpar på klienten macshine:
ssh-keygen
Överför den offentliga nyckeln till målmaskinen:
ssh-copy-id -i ~/.ssh/id_rsa.pub root@{IP-ADDRESS-OR-FQDN}
Andra sätt att överföra pub-nyckeln
Du kan kopiera den offentliga nyckeln med scp och sedan köra:
cat id_rsa.pub >> ~/.ssh/authorized_keys
Eller från Windows:
type $env:USERPROFILE\.ssh\id_rsa.pub | ssh {IP-ADDRESS-OR-FQDN} "cat >> .ssh/authorized_keys"
Min design
| Server | IPv4-adress | IPv6-adress | Beskrivning |
|---|---|---|---|
| gateway | 10.115.100.1 | fd55:cdbc:12df::1/64 | fire |
| fabric | 10.115.100.2 | fd55:cdbc:12df::2/64 | KVM host |
| ca | 10.115.100.3 | fd55:cdbc:12df::3/64 | Certifikatserver |
| dc01 | 10.115.100.4 | fd55:cdbc:12df::4/64 | Domänkontrollant (PDC) |
| dc02 | 10.115.100.5 | fd55:cdbc:12df::5/64 | Andra domänkontrollanten |
| srv01 | 10.115.100.6 | fd55:cdbc:12df::6/64 | Applikationsserver |
| srv02 | 10.115.100.7 | fd55:cdbc:12df::7/64 | HA-applikationsserver |
| 10.115.100.8 | fd55:cdbc:12df::8/64 | E-postserver |
Virtuella servrar
När det gäller virtuella servrar kommer vi att installera en certifikatserver och två domänkontrollanter (Dans), två databaser (MariaDB) servrar för hög tillgänglighet, e-postserver med webbmail (iRedMail), den Nextcloud server och Diaspora server. Alla tjänster körs på Debian servrar. Även om vi kan sköta allt från Debian, så kommer vi till slut att använda Windows 11 med RSAT, bara för att visa att det fungerar.
Det finns flera sätt att installera en virtuell server. Vi kan använda VLC för grafisk installation (praktiskt om man installerar Windows). Du kan välja att installera från en ISO-bild som finns på servern eller via internet. Jag brukar installera Debian server via internet och utan grafiskt gränssnitt.
Nu ska vi installera vår första virtuella server. Jag väljer certifikatserver ->