#Proxmox VE 安裝配置 創建kvm模板
# Proxmox VE installation configuration, and create KVM template
#概述 summary
Proxmox VE虛擬化基於Debian 64位操作系統 ,開源免費
用於管理KVM虛擬機,LXC容器, 可部署虛擬化高可用集群
提供Web管理界面(支持簡體中文),命令行工具和完善的api接口
Proxmox6.0中文手冊PDF
http://files.elvin.vip/doc/Proxmox6.0-cn.pdf
By Elvin ,2020-8-30, http://blog.elvin.vip
#1.下載iso鏡像,制作USB啟動盤. Download ISO image and make USB boot disk
官網 http://download.proxmox.com/iso/
國內 http://download.proxmox.wiki/iso/
#2.安裝 install
- USB啟動,選第一項"Install Proxmox VE"
- Harddisk,Options自定義分區,hdsize 100G
-
- 默認使用全部磁盤,並創建LVM
- 國家和時區,“china””asia/Shanghai”
#3. ssh登錄配置 SSH login configuration
#backup
mv /etc/apt/sources.list{,.bak}
mv /etc/apt/sources.list.d/pve-enterprise.list{,.bak}
#配置國內源 Configure aliyun source
wget -qO - http://download.proxmox.com/debian/proxmox-ve-release-6.x.gpg | apt-key add -
echo '#cn
deb http://mirrors.aliyun.com/debian/ buster main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ buster main non-free contrib
deb http://mirrors.aliyun.com/debian-security buster/updates main
deb-src http://mirrors.aliyun.com/debian-security buster/updates main
deb http://mirrors.aliyun.com/debian/ buster-updates main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ buster-updates main non-free contrib
deb http://mirrors.aliyun.com/debian/ buster-backports main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ buster-backports main non-free contrib
#update pve source
deb http://download.proxmox.com/debian/pve buster pve-no-subscription
'>/etc/apt/sources.list
pvesh get /version
#關閉訂閱提醒 Turn off subscription reminders
cp /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js{,.bak}
sed -i.bak "s/data.status !== 'Active'/false/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
systemctl restart pveproxy.service
#關閉cloud-init強制更新 Close cloud-init without forcing updates
sed -i 's/package_upgrade.*true/package_upgrade: false/' /usr/share/perl5/PVE/QemuServer/Cloudinit.pm
systemctl restart pvedaemon.service
#開啟硬件直通 Turn on hardware pass through
sed -E 's/GRUB_CMDLINE_LINUX_DEFAULT=.*/GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"/' /etc/default/grub -i
{
echo "vfio"
echo "vfio_iommu_type1"
echo "vfio_pci"
echo "vfio_virqfd"
} | tee /etc/modules
update-grub
#升級重啟(可選) Upgrade and restart
apt update && apt dist-upgrade -y && reboot
#4. 刪除LVM-Thin儲存(可選). Delete LVM-Thin storage
- 登錄web管理頁面https://ip:8006
- web界面,數據中心,存儲,刪除LVM-Thin
#ssh登錄
#查看lvm
pvs
vgs
lvs
#刪除data邏輯卷
lvremove /dev/mapper/pve-data
#調整/分區
lvextend -L 60G /dev/mapper/pve-root
resize2fs /dev/mapper/pve-root
#5. 添加目錄儲存(可選). Add directory storage
#新增分區,掛載點/data
fdisk /dev/sda
p #查看
n #新建
p
w #保存
#格式化為ext4
mkfs -t ext4 /dev/sda4
e2label /dev/sda4 /data
#新建掛載目錄/data
mkdir /data
mount -t ext4 /dev/sda4 /data
df -l
#開機掛載磁盤
echo "/dev/sda4 /data ext4 defaults 0 0" >> /etc/fstab
- web界面, 數據中心,存儲,添加,目錄
-
- ID: data , 目錄: /data , 內容,全選擇
#6. 創建kvm模板. Create KVM template
- 使用公有雲鏡像創建kvm模板 Creating KVM using public cloud image
#ubuntu 16 server template 模板
#ssh登錄proxmox
cd /var/lib/vz/template/qemu/
#ubuntu 16 download url
#https://cloud-images.ubuntu.com/xenial/current/
wget https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img
#新建虛擬機 ubuntu ,vmid 501
vmid=501
vname=ubuntu
qm create $vmid --name $vname --memory 1024 --net0 virtio,bridge=vmbr0 --ostype l26
#導入磁盤到data存儲
qm importdisk $vmid xenial-server-cloudimg-amd64-disk1.img data -format qcow2
#磁盤使用scsi驅動附加到vm
qm set $vmid --scsihw virtio-scsi-pci --scsi0 data:$vmid/vm-$vmid-disk-0.qcow2
#設置磁盤為第一引導
qm set $vmid --boot c --bootdisk scsi0
#添加並設置顯卡設備為serial0
qm set $vmid --serial0 socket --vga serial0
#添加Cloudinit Drive設備
qm set $vmid --ide2 data:cloudinit
#設置密碼,否則控制台端不能登錄
qm set $vmid -ciuser root -cipassword pve2020
#導入ssh公鑰到vm
qm set $vmid --sshkey ~/.ssh/id_rsa.pub
#啟用agent,在web面板查看vm的ip及mac地址
qm set $vmid --agent enabled=1
##固定ip
qm set $vmid --ipconfig0 ip=192.168.21.91/24,gw=192.168.21.1 --nameserver "192.168.15.124 119.29.29.29"
#啟動
qm start $vmid
#終端登錄
qm terminal $vmid
timedatectl set-timezone Asia/Shanghai
#use aliyun source
cp /etc/apt/sources.list{,.bak}
sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/' /etc/apt/sources.list
sed -i 's/security.ubuntu.com/mirrors.aliyun.com/' /etc/apt/sources.list
apt-get update
apt install -y qemu-guest-agent net-tools htop
#Ansible depends on python
apt install -y python python-apt
#ssh config
sed -ir '3 iPermitRootLogin yes\nPermitEmptyPasswords no\nGSSAPIAuthentication no\nUseDNS no\n' /etc/ssh/sshd_config
systemctl restart sshd
echo '#關閉提示yes/no
StrictHostKeyChecking no
'>>/etc/ssh/ssh_config
#clean
apt clean
find /var/log/ -type f |xargs rm -f
rm -rf /var/cache/apt/* /var/lib/apt/lists/* /tmp/*
>~/.bash_history
history -c
#退出終端
#press Ctrl+O to exit
#關閉
qm stop $vmid
#將虛擬機轉換成模板
qm template $vmid
#centos 7 template 模板
#ssh登錄proxmox
cd /var/lib/vz/template/qemu/
#centos7 download url
#http://cloud.centos.org/centos/7/images/
wget http://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud.qcow2.xz
xz -d CentOS-7-x86_64-GenericCloud.qcow2.xz
#新建虛擬機centos ,vmid 502
vmid=502
vname=centos
qm create $vmid --name $vname --memory 1024 --net0 virtio,bridge=vmbr0 --ostype l26
#導入image磁盤到data存儲
qm importdisk $vmid CentOS-7-x86_64-GenericCloud.qcow2 data -format qcow2
#磁盤使用scsi驅動附加到vm
qm set $vmid --scsihw virtio-scsi-pci --scsi0 data:$vmid/vm-$vmid-disk-0.qcow2
#設置磁盤為第一引導
qm set $vmid --boot c --bootdisk scsi0
#添加並設置顯卡設備為serial0
qm set $vmid --serial0 socket --vga serial0
#添加Cloudinit Drive設備
qm set $vmid --ide2 data:cloudinit
#設置密碼,否則控制台端不能登錄
qm set $vmid -ciuser root -cipassword pve2020
#導入ssh公鑰到vm
qm set $vmid --sshkey ~/.ssh/id_rsa.pub
#啟用agent,在pve面板查看vm的ip及mac地址
qm set $vmid --agent enabled=1
##固定ip
qm set $vmid --ipconfig0 ip=192.168.21.92/24,gw=192.168.21.1 --nameserver "192.168.15.124 119.29.29.29"
#啟動
qm start $vmid
#終端登錄
qm terminal $vmid
timedatectl set-timezone Asia/Shanghai
#use aliyun source
curl -s http://mirrors.aliyun.com/repo/Centos-7.repo >/etc/yum.repos.d/CentOS-Base.repo
curl -s http://mirrors.aliyun.com/repo/epel-7.repo >/etc/yum.repos.d/epel.repo
sed -i "/aliyuncs.com/d" /etc/yum.repos.d/*.repo
systemctl disable --now firewalld
setenforce 0
sed -ri '/^[^#]*SELINUX=/s#=.+$#=disabled#' /etc/selinux/config
#ssh config
sed -ir '3 iPermitRootLogin yes\nPermitEmptyPasswords no\nGSSAPIAuthentication no\nUseDNS no\n' /etc/ssh/sshd_config
systemctl restart sshd
echo '#關閉提示yes/no
StrictHostKeyChecking no
'>>/etc/ssh/ssh_config
#禁止自動更新hosts
#esd -i.bak 's/$ - update_etc_hosts/#&/g' /etc/cloud/cloud.cfg
#cloudinit配置hostname沒生效
#設置開機啟動項配置hostname
echo '#!/bin/bash
#set hostname
mount /dev/sr0 /media &>/dev/null
H=$(grep hostname /media/user-data |cut -d" " -f 2)
echo $H
hostname $H
echo $H >/etc/hostname
#hostnamectl set-hostname --static $H
umount /dev/sr0
touch /var/lock/subsys/local
'>/etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local
#clear
find /var/log/ -type f |xargs rm -f
rm -f /root/*.cfg /tmp/*
>~/.bash_history
history -c
#退出終端
#press Ctrl+O to exit
#關閉
qm stop $vmid
#將虛擬機轉換成系統模板
qm template $vmid
#7. 命令行使用模板創建VM. The command line uses templates to create VM
#ssh登錄proxmox
#使用模板id為501生成虛擬機
qm clone 501 102 --name c7 -full
#查看vm列表
qm list
#設置2核4G
qm set 102 --memory 4096 --cores 2
#增加磁盤10G
qm resize 102 scsi0 \+10G
#固定ip
qm set 102 --ipconfig0 ip=192.168.21.102/24,gw=192.168.21.1
#啟動
qm start 102
#登錄控制台
qm terminal 102
#press Ctrl+O to exit
#關閉
qm stop 102
#刪除VM
qm destroy 102 -purge
#8. web管理界面使用. Use of web management interface
#1 登錄
瀏覽器打開 https://IP地址:8006/
瀏覽器忽略安全警告,登錄界面選擇簡體中文 Chinese (Simplified)
#2 新建vm
選擇模板,右鍵,克隆
填寫VM ID(可選),輸入名稱,克隆模式 選擇完整克隆(推薦)
#3 更改配置
選中VM,
硬件 欄目 --> 更改內存、CPU、增加硬盤容量
Cloud-Init 欄目 -->更改ip地址,添加公鑰,密碼
#4 啟動
配置完成后,選擇VM,右鍵啟動(或右上角啟動按鈕)
#5 刪除
先關閉,選中VM,右上角 更多 -> 刪除 -> 輸入ID,勾選清除
#使用iso鏡像安裝虛擬機
#local存儲,上傳,iso鏡像
#或拷貝到/var/lib/vz/template/iso/ 目錄
web右上角, 創建虛擬機, 操作系統界面,選擇iso鏡像 ...
#創建lxc容器
#下載容器模板
#數據中心,選擇節點,選中存儲"local",模板,選擇下載對應模板如centos、ubuntu
#若下載滿,可以使用其它工具下載,拷貝到目錄 /var/lib/vz/template/cache/
#下載地址 http://download.proxmox.com/images/system
#右上角,創建CT, 輸入名稱,密碼 , 選擇模板 ...
#9. 虛擬機批量管理 Virtual machine batch management
使用terraform管理Proxmox VE資源. Managing Proxmox VE resources with terraform
terraform-proxmox https://www.cnblogs.com/elvi/p/13557397.html
實測, 創建30台不同配置的VM, terraform創建只用3分鍾