Proxmox VE(虚拟机集群)安装配置
#Proxmox VE 安装配置 创建kvm模板
- 有私有云需求, 创建与管理Windows和Linux虚拟机的场景,使用PVE(Proxmox VE)管理很方便.
- 本人使用PVE管理公司开发测试环境几百台虚拟机,使用2年一切正常,其中机房断电几次,PVE也没出现故障.
- 相比openstack, PVE安装配置简单, 每个节点是独立的, 单节点故障不影响其它节点.
- 本实例记录安装配置PVE, 创建ubuntu和centos系统模板.
#概述 summary
- Proxmox VE虚拟化基于Debian 64位操作系统 ,开源免费
- 用于管理KVM虚拟机,LXC容器, 可部署虚拟化高可用集群
- 提供Web管理界面(支持简体中文),命令行工具和完善的api接口,可使用terraform管理虚拟机
Proxmox6.0中文手册PDF
http://files.elvin.vip/doc/Proxmox6.0-cn.pdf
#1.1. 下载iso镜像,制作USB启动盘. Download ISO image and make USB boot disk
官网 http://download.proxmox.com/iso/
国内 http://download.proxmox.wiki/iso/
#1.2. 安装 install
- 制作U盘启动盘(略)
- USB启动,选第一项"Install Proxmox VE"
- Harddisk,Options自定义分区,hdsize 100G
- 国家和时区,“china””asia/Shanghai”
#2. ssh登录配置 SSH login configuration
#backup
mv /etc/apt/sources.list{,.bak}
mv /etc/apt/sources.list.d/pve-enterprise.list{,.bak}
#配置国内源 Configure aliyun source
#配置Debian源 https://developer.aliyun.com/mirror/debian
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
#web登录页,设置默认语言为:简体中文 Set the default language to Chinese Simplified
echo 'language: zh_CN' >>/etc/pve/datacenter.cfg
#关闭订阅提醒 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
sed -i "s/Ext.Msg.show/Ext.Msg.noshow/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
#启用BBR优化网络
#修改sysctl.conf
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p
#check
lsmod | grep tcp_bbr
#升级重启(可选) Upgrade and restart
apt update && apt dist-upgrade -y && reboot
#3. 删除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 80G /dev/mapper/pve-root
resize2fs /dev/mapper/pve-root
#4. 添加目录储存(可选). 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 , 内容,全选择
#5. 创建kvm模板. Create KVM template
使用公有云镜像创建kvm模板
Creating KVM using public cloud image
#5.1 ubuntu 16 server template 模板
#使用命令行创建虚拟机
# (web管理界面也可以操作)
#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,tag=21 --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 "119.29.29.29 114.114.114.114"
#启动
qm start $vmid
#系统优化后,虚拟机转为模板
#终端登录
qm terminal $vmid
#timezone
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
#install
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
#5.2 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
#6. 命令行使用模板创建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, 输入名称,密码 , 选择模板 ...
#7. 网络规划
PVE支持vlan网络, 虚拟机可使用不同网段
PVE接交换机truck口, 虚拟机配置vlan即可
如下图所示:
#8. 虚拟机批量管理
Virtual machine batch management
使用terraform
管理PVE资源(强烈推荐)
https://www.cnblogs.com/elvi/p/13557397.html
实测:
创建30台不同配置VM, terraform
只用3分钟
#9. Proxmox web界面预览. Web interface
Proxmox VE(虚拟机集群)安装配置的更多相关文章
- Hadoop2.2集群安装配置-Spark集群安装部署
配置安装Hadoop2.2.0 部署spark 1.0的流程 一.环境描写叙述 本实验在一台Windows7-64下安装Vmware.在Vmware里安装两虚拟机分别例如以下 主机名spark1(19 ...
- CentOS下Hadoop-2.2.0集群安装配置
对于一个刚开始学习Spark的人来说,当然首先需要把环境搭建好,再跑几个例子,目前比较流行的部署是Spark On Yarn,作为新手,我觉得有必要走一遍Hadoop的集群安装配置,而不仅仅停留在本地 ...
- hbase单机环境的搭建和完全分布式Hbase集群安装配置
HBase 是一个开源的非关系(NoSQL)的可伸缩性分布式数据库.它是面向列的,并适合于存储超大型松散数据.HBase适合于实时,随机对Big数据进行读写操作的业务环境. @hbase单机环境的搭建 ...
- hive集群安装配置
hive 是JAVA写的的一个数据仓库,依赖hadoop.没有安装hadoop的,请参考http://blog.csdn.net/lovemelovemycode/article/details/91 ...
- 集群安装配置Hadoop具体图解
集群安装配置Hadoop 集群节点:node4.node5.node6.node7.node8. 详细架构: node4 Namenode,secondnamenode,jobtracker node ...
- spark集群安装配置
spark集群安装配置 一. Spark简介 Spark是一个通用的并行计算框架,由UCBerkeley的AMP实验室开发.Spark基于map reduce 算法模式实现的分布式计算,拥有Hadoo ...
- 原创:centos7.1下 ZooKeeper 集群安装配置+Python实战范例
centos7.1下 ZooKeeper 集群安装配置+Python实战范例 下载:http://apache.fayea.com/zookeeper/zookeeper-3.4.9/zookeepe ...
- hbase和ZooKeeper集群安装配置
一:ZooKeeper集群安装配置 1:解压zookeeper-3.3.2.tar.gz并重命名为zookeeper. 2:进入~/zookeeper/conf目录: 拷贝zoo_sample.cfg ...
- RabbitMQ集群安装配置+HAproxy+Keepalived高可用
RabbitMQ集群安装配置+HAproxy+Keepalived高可用 转自:https://www.linuxidc.com/Linux/2016-10/136492.htm rabbitmq 集 ...
- 集群 安装 配置FastDFS
FastDFS 集群 安装 配置 这篇文章介绍如何搭建FastDFS 集群 FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.文件下载 ...
随机推荐
- 树莓派2 CentOS7.9 安装配置笔记
1. 镜像下载与安装 http://isoredirect.centos.org/altarch/7/isos/armhfp/找到https://mirrors.tuna.tsinghua.edu.c ...
- CMake 属性之目标属性
[写在前面] CMake 可以通过属性来存储信息.它就像是一个变量,但它被附加到一些其他的实体上,像是一个目录或者是一个目标.例如一个全局的属性可以是一个有用的非缓存的全局变量. 在 CMake 的众 ...
- 「模拟赛」A 层多校联训 4(卖品:CTH)
双倒一啦! 感觉这次最大的错误就是没看 T2.(本质原因还是时间浪费的太多了) 赛时记录在闲话啦 accoder 多校比赛链接 02 表示法 唐诗题!考高精的人都\(**\),输出深度优先搜索解决.高 ...
- Java日期时间API系列25-----Jdk8中java.time包中的新的日期时间API类,使用MonthDay计算十二星座。
通过Java日期时间API系列24-----Jdk8中java.time包中的新的日期时间API类,MonthDay类源码和应用,对比相同月日时间.对MonthDay简单做了说明和应用.十二星座是根据 ...
- 说一下tcp三次握手
1. 客户端发送syn请求连接 : 2. 服务器检验syn,然后发送syn和ack确认连接: 3. 客户端接收ack和syn,然后发送ack建立连接 :
- kotlin更多语言结构——>异常
异常类 Kotlin 中所有异常类都是 Throwable 类的子孙类.每个异常都有消息.堆栈回溯信息以及可选的原因 使用 throw-表达式来抛出异常 throw Exception("H ...
- kotlin协程——>组合挂起函数
默认顺序调用 假设我们在不同的地⽅定义了两个进⾏某种调⽤远程服务或者进⾏计算的挂起函数.我们只假设它们都是有⽤的,但是实际上它们在这个⽰例中只是为了该⽬的⽽延迟了⼀秒钟: suspend fun do ...
- 云原生爱好者周刊:在浏览器中运行 Linux 系统 | 2022-10-10
Confluent 官网已经放出了<Kafka 权威指南第二版:大规模实时数据和流处理>,相比于第一版新增了以下内容: Kafka 管理客户端概述: API 更新到最新的 Apache K ...
- 用故事说透HTTPS
本文来自素燕公众号,原文地址:用故事说透https 故事中的主演: 小华今年上大一,这是她第一次离开父母,独自一人到北京上学.今天妈妈的生日,想了想要给妈妈一个祝福,便给妈妈发了条消息: 妈妈收到这条 ...
- dc-2靶机-超详解
dc-2内网靶 1.信息收集 入站信息 nmap扫描 nmap -A -p- -v 192.168.27.0/24 得到消息: IP:192.168.227.139 cms:wordpress 4.7 ...