From a95198ddc4f4a03a1a2ad67959189f4e07d9cbb4 Mon Sep 17 00:00:00 2001 From: XZhouQD Date: Tue, 22 Dec 2020 14:58:59 +0800 Subject: [PATCH 1/4] Add: ssh port forward for kvms Signed-off-by: XZhouQD --- jumper-server/root/bin/iptables-all | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/jumper-server/root/bin/iptables-all b/jumper-server/root/bin/iptables-all index 61611e7..d4d64cf 100755 --- a/jumper-server/root/bin/iptables-all +++ b/jumper-server/root/bin/iptables-all @@ -53,6 +53,21 @@ do iptables -t nat -A PREROUTING -p tcp -i $PUB_IFACE --dport $dport -j DNAT --to-destination $ip:22 done done +# kvm ssh ports, 28000~31999, total 4000, should be enough +for c in {9..9} +do + for s in {21..254} + do + ip=192.18.$c.$s + dport=$((28000 + (c-1)*240 + s)) + [ "$dport" -gt 31999 ] && { + echo "Failed!Port number > 31999!" + exit 1 + } + printf "%15s %s\n" $ip "$pubip:$dport" >> $output + iptables -t nat -A PREROUTING -p tcp -i $PUB_IFACE --dport $dport -j DNAT --to-destination $ip:22 + done +done rsync -aPz $output pxe:/srv/openlab-jobs/ > /dev/null output=/root/tbox-service-ports -- Gitee From 39e7d9d7f957e97be139c675684988f913e71bfa Mon Sep 17 00:00:00 2001 From: XZhouQD Date: Thu, 24 Dec 2020 10:47:36 +0800 Subject: [PATCH 2/4] Add: kvm server deployment script Signed-off-by: XZhouQD --- kvm-server/deploy | 26 ++++++++++++++++++++++++++ kvm-server/usr/local/bin/deploy_kvm | 28 ++++++++++++++++++++++++++++ kvm-server/usr/local/bin/remove_kvm | 17 +++++++++++++++++ 3 files changed, 71 insertions(+) create mode 100644 kvm-server/deploy create mode 100644 kvm-server/usr/local/bin/deploy_kvm create mode 100644 kvm-server/usr/local/bin/remove_kvm diff --git a/kvm-server/deploy b/kvm-server/deploy new file mode 100644 index 0000000..6c02dc4 --- /dev/null +++ b/kvm-server/deploy @@ -0,0 +1,26 @@ +#!/usr/bin/env bash + +# Before run this script, make sure you have created large LVM storage mounted on /kvm + +yum -y install qemu* libvirt* AAVMF virt-install --nobest +ln -sv /usr/libexec/qemu-kvm /usr/bin/ +systemctl enable libvirtd && systemctl restart libvirtd +nmcli con add type bridge con-name br0 ifname br0 autoconnect yes +nmcli con add type bridge-slave ifname enp125s0f0 master br0 +tail -n5 /etc/sysconfig/network-scripts/ifcfg-enp125s0f0 >> /etc/sysconfig/network-scripts/ifcfg-br0 && sed -i "s/dhcp/static/g" /etc/sysconfig/network-scripts/ifcfg-br0 +nmcli con down enp125s0f0; nmcli con up br0 +mkdir -p /kvm/images +mkdir -p /root/kvm-xml +mkdir -p /root/kvm-log +chown root:root /kvm/images && chmod 755 /kvm/images +virsh pool-define-as StoragePool --type dir --target /kvm/images +virsh pool-build StoragePool +virsh pool-start StoragePool +virsh pool-autostart StoragePool + +for i in usr +do + rsync -avPz $i / +done + +# after this script, you should transfer base images here from other kvm server \ No newline at end of file diff --git a/kvm-server/usr/local/bin/deploy_kvm b/kvm-server/usr/local/bin/deploy_kvm new file mode 100644 index 0000000..1450c60 --- /dev/null +++ b/kvm-server/usr/local/bin/deploy_kvm @@ -0,0 +1,28 @@ +#!/usr/bin/env bash + +kvm="$1" +base="$2" +base_img="$3" +uuid="$4" +mac="$5" +today=$(date "+%Y%m%d") + +log=/root/kvm-log/$kvm-$today-DEPLOY +> $log +cd /kvm/images && qemu-img create -b $base_img -f qcow2 $kvm.img +printf "KVM image %s duplicated to %s.\n" $base_img $kvm.img +cd /root/kvm-xml && virsh dumpxml $base > $kvm.xml +printf "KVM configuration dumped to %s.\n" $kvm.xml +sed -i "s#[^<]\+#$kvm#g" /root/kvm-xml/$kvm.xml +sed -i "s#[^<]\+#$uuid#g" /root/kvm-xml/$kvm.xml +sed -i "s#[0-9a-fA-F]\{2\}\(:[0-9a-fA-F]\{2\}\)\{5\}#$mac#g" /root/kvm-xml/$kvm.xml +sed -i "s#1\.img#$kvm\.img#g" /root/kvm-xml/$kvm.xml +printf "KVM configuration modification complete." +virsh define /root/kvm-xml/$kvm.xml +printf "KVM %s registered." $kvm +virsh autostart $kvm +printf "KVM %s registered." $kvm +virsh start $kvm +printf "KVM %s booted." $kvm + +echo "KVM $kvm deploy progress complete." \ No newline at end of file diff --git a/kvm-server/usr/local/bin/remove_kvm b/kvm-server/usr/local/bin/remove_kvm new file mode 100644 index 0000000..9d16e46 --- /dev/null +++ b/kvm-server/usr/local/bin/remove_kvm @@ -0,0 +1,17 @@ +#!/usr/bin/env bash + +kvm="$1" +today=$(date "+%Y%m%d") + +log=/root/kvm-log/$kvm-$today-REMOVE +> $log +virsh destroy $kvm +printf "KVM %s destroyed\n" $kvm +virsh undefine $kvm --nvram" +printf "KVM %s undefined\n" $kvm +virsh vol-delete --pool StoragePool --vol $kvm.img +printf "KVM volume %s.img unregistered\n" $kvm +rm -f /kvm/images/$kvm.img +printf "KVM image %s.img deleted\n" $kvm + +echo "KVM $kvm remove progress complete." -- Gitee From b3300fc271517cf456c580de305ef10e8450cbaa Mon Sep 17 00:00:00 2001 From: XZhouQD Date: Thu, 24 Dec 2020 14:08:08 +0800 Subject: [PATCH 3/4] Fix: record log on kvm server Signed-off-by: XZhouQD --- kvm-server/deploy | 4 +++- kvm-server/usr/local/bin/deploy_kvm | 15 +++++++-------- kvm-server/usr/local/bin/remove_kvm | 12 ++++++------ 3 files changed, 16 insertions(+), 15 deletions(-) mode change 100644 => 100755 kvm-server/deploy mode change 100644 => 100755 kvm-server/usr/local/bin/deploy_kvm mode change 100644 => 100755 kvm-server/usr/local/bin/remove_kvm diff --git a/kvm-server/deploy b/kvm-server/deploy old mode 100644 new mode 100755 index 6c02dc4..e07e3c9 --- a/kvm-server/deploy +++ b/kvm-server/deploy @@ -23,4 +23,6 @@ do rsync -avPz $i / done -# after this script, you should transfer base images here from other kvm server \ No newline at end of file +chmod +x /usr/local/bin/* + +# after this script, you should transfer base images here from other kvm server diff --git a/kvm-server/usr/local/bin/deploy_kvm b/kvm-server/usr/local/bin/deploy_kvm old mode 100644 new mode 100755 index 1450c60..9d6db57 --- a/kvm-server/usr/local/bin/deploy_kvm +++ b/kvm-server/usr/local/bin/deploy_kvm @@ -8,21 +8,20 @@ mac="$5" today=$(date "+%Y%m%d") log=/root/kvm-log/$kvm-$today-DEPLOY -> $log cd /kvm/images && qemu-img create -b $base_img -f qcow2 $kvm.img -printf "KVM image %s duplicated to %s.\n" $base_img $kvm.img +printf "KVM image %s duplicated to %s.\n" $base_img $kvm.img >> $log cd /root/kvm-xml && virsh dumpxml $base > $kvm.xml -printf "KVM configuration dumped to %s.\n" $kvm.xml +printf "KVM configuration dumped to %s.\n" $kvm.xml >> $log sed -i "s#[^<]\+#$kvm#g" /root/kvm-xml/$kvm.xml sed -i "s#[^<]\+#$uuid#g" /root/kvm-xml/$kvm.xml sed -i "s#[0-9a-fA-F]\{2\}\(:[0-9a-fA-F]\{2\}\)\{5\}#$mac#g" /root/kvm-xml/$kvm.xml sed -i "s#1\.img#$kvm\.img#g" /root/kvm-xml/$kvm.xml -printf "KVM configuration modification complete." +printf "KVM configuration modification complete." >> $log virsh define /root/kvm-xml/$kvm.xml -printf "KVM %s registered." $kvm +printf "KVM %s registered." $kvm >> $log virsh autostart $kvm -printf "KVM %s registered." $kvm +printf "KVM %s assigned autostart." $kvm >> $log virsh start $kvm -printf "KVM %s booted." $kvm +printf "KVM %s booted." $kvm >> $log -echo "KVM $kvm deploy progress complete." \ No newline at end of file +echo "KVM $kvm deploy progress complete." diff --git a/kvm-server/usr/local/bin/remove_kvm b/kvm-server/usr/local/bin/remove_kvm old mode 100644 new mode 100755 index 9d16e46..930e0f9 --- a/kvm-server/usr/local/bin/remove_kvm +++ b/kvm-server/usr/local/bin/remove_kvm @@ -4,14 +4,14 @@ kvm="$1" today=$(date "+%Y%m%d") log=/root/kvm-log/$kvm-$today-REMOVE -> $log virsh destroy $kvm -printf "KVM %s destroyed\n" $kvm -virsh undefine $kvm --nvram" -printf "KVM %s undefined\n" $kvm +printf "KVM %s destroyed\n" $kvm >> $log +virsh undefine $kvm --nvram +printf "KVM %s undefined\n" $kvm >> $log virsh vol-delete --pool StoragePool --vol $kvm.img -printf "KVM volume %s.img unregistered\n" $kvm +printf "KVM volume %s.img unregistered\n" $kvm >> $log rm -f /kvm/images/$kvm.img -printf "KVM image %s.img deleted\n" $kvm +printf "KVM image %s.img deleted\n" $kvm >> $log echo "KVM $kvm remove progress complete." + -- Gitee From b38f036d5d2530986ec62c446e2a07d4c8644d1d Mon Sep 17 00:00:00 2001 From: XZhouQD Date: Sat, 26 Dec 2020 16:03:29 +0800 Subject: [PATCH 4/4] Fix: wrong image used, fixed Signed-off-by: XZhouQD --- kvm-server/usr/local/bin/deploy_kvm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kvm-server/usr/local/bin/deploy_kvm b/kvm-server/usr/local/bin/deploy_kvm index 9d6db57..bc671a3 100755 --- a/kvm-server/usr/local/bin/deploy_kvm +++ b/kvm-server/usr/local/bin/deploy_kvm @@ -15,7 +15,7 @@ printf "KVM configuration dumped to %s.\n" $kvm.xml >> $log sed -i "s#[^<]\+#$kvm#g" /root/kvm-xml/$kvm.xml sed -i "s#[^<]\+#$uuid#g" /root/kvm-xml/$kvm.xml sed -i "s#[0-9a-fA-F]\{2\}\(:[0-9a-fA-F]\{2\}\)\{5\}#$mac#g" /root/kvm-xml/$kvm.xml -sed -i "s#1\.img#$kvm\.img#g" /root/kvm-xml/$kvm.xml +sed -i "s#$base_img#$kvm\.img#g" /root/kvm-xml/$kvm.xml printf "KVM configuration modification complete." >> $log virsh define /root/kvm-xml/$kvm.xml printf "KVM %s registered." $kvm >> $log -- Gitee