Proxmox: Unterschied zwischen den Versionen
Zeile 183: | Zeile 183: | ||
: '''4.''' "Rollback" drücken | : '''4.''' "Rollback" drücken | ||
------> | ------> | ||
+ | |||
+ | ==Firewall== | ||
+ | Grundaufbau: | ||
+ | <pre> | ||
+ | ### BEGIN INIT INFO | ||
+ | # Provides: kmyfirewall | ||
+ | # Required-Start: $all | ||
+ | # Required-Stop: $all | ||
+ | # Default-Start: 2 3 4 5 | ||
+ | # Default-Stop: 0 1 6 | ||
+ | # Short-Description: Start iptables firewall | ||
+ | # Description: Enable iptables firewall rules from kmyfirewall | ||
+ | ### END INIT INFO | ||
+ | |||
+ | #!/bin/bash | ||
+ | case $1 in | ||
+ | start) | ||
+ | echo "starte firewall" | ||
+ | ;; | ||
+ | stop) | ||
+ | echo "stoppe firewall" | ||
+ | ;; | ||
+ | esac | ||
+ | </pre> | ||
+ | |||
+ | Das ist eine Standard-Firewall mit 2 Interfaces | ||
+ | |||
+ | <pre> | ||
+ | ### BEGIN INIT INFO | ||
+ | # Provides: kmyfirewall | ||
+ | # Required-Start: $all | ||
+ | # Required-Stop: $all | ||
+ | # Default-Start: 2 3 4 5 | ||
+ | # Default-Stop: 0 1 6 | ||
+ | # Short-Description: Start iptables firewall | ||
+ | # Description: Enable iptables firewall rules from kmyfirewall | ||
+ | ### END INIT INFO | ||
+ | |||
+ | #!/bin/bash | ||
+ | WAN=vmbr0 | ||
+ | INT=vmbr1 | ||
+ | |||
+ | case $1 in | ||
+ | start) | ||
+ | echo "starte firewall" | ||
+ | |||
+ | echo "forward" | ||
+ | /bin/echo 1 > /proc/sys/net/ipv4/ip_forward | ||
+ | #ip_conntrack_ftp | ||
+ | #ip_conntrack | ||
+ | |||
+ | echo "flush" | ||
+ | iptables -F | ||
+ | iptables -t nat -F | ||
+ | iptables -t mangle -F | ||
+ | iptables -P INPUT DROP | ||
+ | iptables -P OUTPUT DROP | ||
+ | iptables -P FORWARD DROP | ||
+ | |||
+ | echo "e&r" | ||
+ | iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT | ||
+ | iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT | ||
+ | iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT | ||
+ | |||
+ | echo "lo" | ||
+ | iptables -A OUTPUT -o lo -j ACCEPT | ||
+ | iptables -A INPUT -i lo -j ACCEPT | ||
+ | |||
+ | echo "in/output WAN" | ||
+ | iptables -A OUTPUT -o $WAN -m state --state NEW -j ACCEPT #allesraus | ||
+ | iptables -A INPUT -i $WAN -p tcp --dport 53 -m state --state NEW -j ACCEPT #DNS | ||
+ | iptables -A INPUT -i $WAN -p icmp --icmp-type 8 -j ACCEPT #ping | ||
+ | iptables -A INPUT -i $WAN -p tcp --dport 8472 -m state --state NEW -j ACCEPT #SSH | ||
+ | iptables -A INPUT -i $WAN -p tcp --dport 80 -m state --state NEW -j ACCEPT #http | ||
+ | iptables -A INPUT -i $WAN -p tcp --dport 443 -m state --state NEW -j ACCEPT #https | ||
+ | iptables -A INPUT -i $WAN -p tcp --dport 8006 -m state --state NEW -j ACCEPT #WEBINTERFACE | ||
+ | iptables -A INPUT -i $WAN -p tcp --dport 5900:5999 -m state --state NEW -j ACCEPT #VNC-Portrange | ||
+ | iptables -A INPUT -i $WAN -p tcp --dport 3128 -m state --state NEW -j ACCEPT #SPICE | ||
+ | #iptables -A INPUT -i $WAN -p udp --dport 5404 -m state --state NEW -j ACCEPT #CMAN | ||
+ | #iptables -A INPUT -i $WAN -p udp --dport 5405 -m state --state NEW -j ACCEPT #CMAN | ||
+ | |||
+ | echo "in/out INT" | ||
+ | iptables -A INPUT -j ACCEPT -i $INT -m state --state NEW | ||
+ | iptables -A OUTPUT -j ACCEPT -o $INT -m state --state NEW | ||
+ | |||
+ | echo "forward" | ||
+ | iptables -A FORWARD -j ACCEPT -i $WAN -o $WAN -m state --state NEW | ||
+ | iptables -A FORWARD -j ACCEPT -i $WAN -o $INT -m state --state NEW | ||
+ | iptables -A FORWARD -j ACCEPT -o $WAN -i $INT -m state --state NEW | ||
+ | iptables -A FORWARD -j ACCEPT -i $INT -o $INT -m state --state NEW | ||
+ | |||
+ | echo "log" | ||
+ | iptables -A INPUT -j LOG --log-prefix "--iptables-in--" | ||
+ | iptables -A OUTPUT -j LOG --log-prefix "--iptables-out--" | ||
+ | iptables -A FORWARD -j LOG --log-prefix "--iptables-for--" | ||
+ | |||
+ | ;; | ||
+ | stop) | ||
+ | echo "stoppe firewall" | ||
+ | iptables -F | ||
+ | iptables -P INPUT ACCEPT | ||
+ | iptables -P OUTPUT ACCEPT | ||
+ | iptables -P FORWARD ACCEPT | ||
+ | ;; | ||
+ | esac | ||
+ | </pre> | ||
=Troubleshoot= | =Troubleshoot= |
Version vom 9. Mai 2014, 06:53 Uhr
Infos - Hostsystem
- über die URL: https://HOST-IP:8006/ kann man auf das Webinterface zugreifen.
- Die klassische Ansicht zeigt links die Server/VM-Liste und in der Mitte die verschiedenen Monitore/Parameter sowie Einstellungsmöglichkeiten.
- unten befindet sich der Serverlog, welcher die aktuellen Prozesse/Aufgaben anzeigt.
Neue VM anlegen/löschen
- 1. Man klickt den Knotenpunkt an
- 2. Auf den "Erstelle VM"-Button oben rechts klicken
- 3. Die jeweiligen Spezifikationen eintragen
- 4. VM wird normalerweise automatisch danach gestartet, wenn nicht -> starten!
- 5. Die VM in der Hostliste links auswählen und danach auf "Konsole" oben rechts klicken. (dafür muss Java installiert sein, siehe Troubleshoot)
- 6. Nun seht ihr ein neues Browserfenster, mit der grafischen Ausgabe der VM.
- 7. Fertig installieren.
- 8. VM herunterfahren
- 9. Vm anklicken, Optionen auswählen, Bootreihenfolge per Doppelklick anpassen!
- 10. anwählen der VM, und einen Klick auf "Entfernen" oben rechts, führt zum löschen der VM
Storage über webinterface
- 1. "Rechenzentrum" anwählen
- 2. zum Reiter "Storage" wechseln
- 3. "Hinzufügen/entfernen/Bearbeiten" nach belieben drücken
- 4. Wählt euer Storagetyp (NFS/iSCSI/Directory/etc...)
- 5. Wählt bei Inhalt alles aus und setzt "Max Backups" nach oben. (Dieser Parameter gibt die maximale Anzahl an mlgichen Backups auf dem Speicher an.)
Storage über Konsole mounten
template/isos
cd /var/lib/vz rm -r iso/ && ln -s /mnt/MOUNTPUNKFÜRDEINEISOS/ iso
bestehende VMs
cd /var/lib/vz rm -r images/ && ln -s /mnt/MOUNTPUNKFÜRDEINEVMS/ images
Danach müssen noch die confs kopiert werden.
/etc/pve/qemu-server/ vom originalsystem kopieren oder auch mounten cd /etc/pve/ rm -r qemu-server/ && ln -s /mnt/MOUNTPUNKFÜRDEINEVMCONFS/ qemu-server
ACHTUNG: wenn die confs kopiert werden, müssen die Pfadangaben überarbeitet werden!
Migration
Rechtsklick auf die VM und "Migration" auswählen, dazu muss ein weiterer Knoten bekannt sein. (Knoten = ProxmoxVE-Host)
Image einfügen
1. auf dem Host System das gewünscht Image (raw/.img) hinterlegen
2. eine neue VM anlegen und den gewünschten Typ anlegen! (qcow2/raw/vmdk)
3. Bei Bedarf das Image konvertieren:
qemu-img -f raw -O qcow2 input.img output.qcow2
4. Das Image mit dem erstellen Datenspeicher ersetzen:
cp input.img ../"VM-ID"/vm-"VM-ID"-disk-1.qcow2 Beispiel: cp input.img ../101/vm-101-disk-1.qcow2
5. vm starten
Storage einfügen
Backup
Grundsätzlich gibt es 3 Arten, eine VM zu backupen.
- 1. stop-mode (Da wird die VM komplett heruntergefahren. lange downtime)
- 2. suspend-mode (VM wird in den Ruhemodus versetzt. kurze Downtime)
- 3. snapshot-mode (VM bleibt aktiv beim Backup)
webinterface
Backup erstellen
- 1. VM anwählen
- 2. zum Reiter "Backup" wechseln
- 3. "Backup starten" auswählen
- 4. Kompression, Storage und mode angeben
- 5. Wenn das Backup fertig ist, seht ihr nun einen Eintrag in der "Backup-Liste" (Beispiel hier: VM: -101 seven-)
- (eventuell noch den Storage oben rechts anpassen...
Backup aufspielen
- oben rechts euer Backup-Storage auswählen!
- 1. In der Hostleiste links, muss das Backupverzeichnis geöffnet werden
- 2. Danach auf den Reiter "Inhalt" wechseln
- 3. Hier ist eine Liste mit Images/Backups/Snapshots/etc. zu sehen
- 4. Backup anwählen, und zurückspieln
Snapshot live
erstellen
- 1. VM anwählen
- 2. zum Reiter "Snapshots" wechseln
- 3. "Snapshot erstellen" auswählen
- 4. Beschreibung und Name eingeben.
rollback
- 1. VM anwählen
- 2. zum Reiter "Snapshots" wechseln
- 3. gewünschtes Snapshot auswählen
- 4. "Rollback" drücken
console
Backup erstellen
- 1. als root einloggen
- 2. VM-ID der zu backupenden VM auswählen
- 3. Kompression, Storage und mode angeben
- 4. Backup erstellen:
vzdump $VMID --remove 0 --mode $MODE --compress $COMP --storage $STOR --node $HOSTSYSTEM mode-usage: snapshot | stop | suspend compress-usage: 0 | 1 | gzip | lzo (lzo is default) storage: im webinterface kann man die gemounteten Storages einsehen
Beispiel:
vzdump 102 --remove 0 --mode stop --compress lzo --storage bucket-one --node moxxie
Backup aufspielen
- Das Backup auf dem Storage suchen. Bei mir wurde das Verzeichnis "dump" erstellt. (bucket-one ist hier der gemountete Speicher)
- 1. lzop -d -c /mnt/pve/bucket-one/dump/vzdump-qemu-102-2013_11_07-13_40_03.vma.lzo|vma extract -v -r /var/tmp/vzdumptmp161098.fifo - /var/tmp/vzdumptmp161098
- 2. "zurückspielen"
- 3. VM-ID und Storage auswählen
- 4. (Das ist btw auch ein Weg die VM zu kopieren)
Firewall
Grundaufbau:
### BEGIN INIT INFO # Provides: kmyfirewall # Required-Start: $all # Required-Stop: $all # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start iptables firewall # Description: Enable iptables firewall rules from kmyfirewall ### END INIT INFO #!/bin/bash case $1 in start) echo "starte firewall" ;; stop) echo "stoppe firewall" ;; esac
Das ist eine Standard-Firewall mit 2 Interfaces
### BEGIN INIT INFO # Provides: kmyfirewall # Required-Start: $all # Required-Stop: $all # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start iptables firewall # Description: Enable iptables firewall rules from kmyfirewall ### END INIT INFO #!/bin/bash WAN=vmbr0 INT=vmbr1 case $1 in start) echo "starte firewall" echo "forward" /bin/echo 1 > /proc/sys/net/ipv4/ip_forward #ip_conntrack_ftp #ip_conntrack echo "flush" iptables -F iptables -t nat -F iptables -t mangle -F iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP echo "e&r" iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT echo "lo" iptables -A OUTPUT -o lo -j ACCEPT iptables -A INPUT -i lo -j ACCEPT echo "in/output WAN" iptables -A OUTPUT -o $WAN -m state --state NEW -j ACCEPT #allesraus iptables -A INPUT -i $WAN -p tcp --dport 53 -m state --state NEW -j ACCEPT #DNS iptables -A INPUT -i $WAN -p icmp --icmp-type 8 -j ACCEPT #ping iptables -A INPUT -i $WAN -p tcp --dport 8472 -m state --state NEW -j ACCEPT #SSH iptables -A INPUT -i $WAN -p tcp --dport 80 -m state --state NEW -j ACCEPT #http iptables -A INPUT -i $WAN -p tcp --dport 443 -m state --state NEW -j ACCEPT #https iptables -A INPUT -i $WAN -p tcp --dport 8006 -m state --state NEW -j ACCEPT #WEBINTERFACE iptables -A INPUT -i $WAN -p tcp --dport 5900:5999 -m state --state NEW -j ACCEPT #VNC-Portrange iptables -A INPUT -i $WAN -p tcp --dport 3128 -m state --state NEW -j ACCEPT #SPICE #iptables -A INPUT -i $WAN -p udp --dport 5404 -m state --state NEW -j ACCEPT #CMAN #iptables -A INPUT -i $WAN -p udp --dport 5405 -m state --state NEW -j ACCEPT #CMAN echo "in/out INT" iptables -A INPUT -j ACCEPT -i $INT -m state --state NEW iptables -A OUTPUT -j ACCEPT -o $INT -m state --state NEW echo "forward" iptables -A FORWARD -j ACCEPT -i $WAN -o $WAN -m state --state NEW iptables -A FORWARD -j ACCEPT -i $WAN -o $INT -m state --state NEW iptables -A FORWARD -j ACCEPT -o $WAN -i $INT -m state --state NEW iptables -A FORWARD -j ACCEPT -i $INT -o $INT -m state --state NEW echo "log" iptables -A INPUT -j LOG --log-prefix "--iptables-in--" iptables -A OUTPUT -j LOG --log-prefix "--iptables-out--" iptables -A FORWARD -j LOG --log-prefix "--iptables-for--" ;; stop) echo "stoppe firewall" iptables -F iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT ;; esac
Troubleshoot
bridge
vi /etc/network/interfaces
Beispiel.conf:
auto vmbr0 iface vmbr0 inet static address 192.168.240.187 netmask 255.255.248.0 gateway 192.168.240.100 bridge_ports eth0 bridge_stp off bridge_fd 0
VNC Ports umlegen
Für Proxmox /3.X2.X
vi /usr/share/perl5/PVE/Tools.pm
Ändern von diesen Zeilen, (ca. Zeile 724)
sub next_vnc_port { return next_unused_port(5900, 6000); }
in diese Zeilen: (gewünschte Ports eintragen[Bsp.: 6900-7000])
sub next_vnc_port { return next_unused_port(6900, 7000); }
Das Proxmox-System muss neugestartet werden!
Für Proxmox 1.X
vi /usr/share/perl5/PVE/ConfigServer.pm
Ändern von dieser Zeile,
for (my $p = 5900; $p < 6000; $p++) {
in diese Zeile: (gewünschte Ports eintragen[Bsp.: 6900-7000])
for (my $p = 6900; $p < 7000; $p++) {
Das Proxmox-System muss neugestartet werden!
USB pass through
mit das device ermitteln
lsusb
Beispiel:
root@moxxie:/var/log/vzdump# lsusb Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 008 Device 002: ID 046d:c315 Logitech, Inc. Classic New Touch Keyboard Bus 008 Device 003: ID 04d8:fa0d Microchip Technology, Inc. root@moxxie:/var/log/vzdump#
Wir suchen dieses Gerät und wollen es durchtunneln:
Bus 008 Device 003: ID 04d8:fa0d Microchip Technology, Inc.
danach das USBGerät durchtunneln
qm set $VMID -usb0 host=$VENDOR:$PRODID
Beispiel:
qm set 110 -usb0 host=04d8:fa0d
Port list
Web interface: 8006 VNC Web console: 5900-5999 SPICE console: 3128 SSH access (only optional): 22 CMAN multicast (if you run a cluster): 5404, 5405 UDP
VM-Killen
Mit SSH auf den Knoten/server connecten.
Danach mit "ps -elf | grep kvm" die VM suchen und mit "kill" töten...
Validation entfernen
backup the file:
cp /usr/share/pve-manager/ext4/pvemanagerlib.js /usr/share/pve-manager/ext4/pvemanagerlib.js_BKP
open the file
vi /usr/share/pve-manager/ext4/pvemanagerlib.js +454
change the line
if (data.status !== 'Active') {
to below:
if (false) {
Manual: qm
Java Konsole
Laut Proxmox einfach updaten! Stable version: 7 Patch45 32bit @Windows7
Install Proxmox VE on Debian Squeeze
Install Proxmox VE on Debian Wheezy
Hetzner Proxmox installieren
Konfigfiles
/etc/pve/qemu-server/
Isos
/var/lib/vz/template/iso
QM
listen der virtuellen maschinen
root@betor:~# qm list VMID NAME STATUS MEM(MB) BOOTDISK(GB) PID 100 jello running 4096 32.00 6942 101 seven stopped 4096 32.00 0 102 icinga stopped 1024 10.00 0 103 VM 103 stopped 0 0.00 0 104 symantec stopped 2048 250.00 0 108 icinga stopped 1024 10.00 0
starten der virtuellen maschinen
root@betor:~# qm start 101
stoppen der virtuellen maschinen
root@betor:~# qm stop 101
config der virtuellen maschinen auslesen
root@betor:~# qm config 101 boot: dcn bootdisk: ide0 cores: 2 ide0: local:101/vm-101-disk-1.qcow2,format=qcow2,size=32G ide2: none,media=cdrom memory: 4096 name: seven net0: e1000=2A:06:D1:86:82:37,bridge=vmbr0 ostype: win7 sockets: 2
shutdown einer virtuellen maschine
root@betor:~# qm shutdown 101
status einer virtuellen maschine anzeigen
root@betor:~# qm status 101 status: running
virtuelle maschine erstellen
qm create 115 --cdrom local:iso/ubuntu-6.06.1-desktop-i386.iso --name ubuntu6 --net0 virtio=62:57:BC:A2:0E:18 \ --ide0 local:115/vm-115-disk-1.qcow2,format=qcow2,size=20G --ostype l26 --memory 512 --onboot no --sockets 2
virtuelle maschine inklusive Volumes löschen
qm destroy 115
VM lock
qm lock $VMID qm unlock $VMID
festplatte durchreichen
Links
- Link für die cmd-Liste: http://pve.proxmox.com/wiki/Command_line_tools
- Link für QM-manual: http://pve.proxmox.com/wiki/Qm_manual