PVE Cloud-INIT 模板配置
Cloud-init是什么
Cloud-init是開源的云初始化程式,能夠對新創建彈性云服務器中指定的自定義資訊(主機名、密鑰和用戶資料等)進行初始化配置,通過Cloud-init進行彈性云服務器的初始化配置,將對您使用彈性云服務器、鏡像服務和彈性伸縮產生影響,簡單地講,cloud-init是一個Linux虛擬機的初始化工具,被廣泛應用在AWS和OpenStack等云平臺中,用于在新建的虛擬機中進行時間設定、密碼設定、擴展磁區、安裝軟體包等初始化設定,
對鏡像服務的影響
為了保證使用私有鏡像新創建的彈性云服務器可以自定義配置,您需要在創建私有鏡像前先安裝Cloud-init/Cloudbase-init,
如果是Windows作業系統,需下載并安裝Cloudbase-init,
如果是Linux作業系統,需下載并安裝Cloud-init,
在鏡像上安裝Cloud-init/Cloudbase-init后,即可在創建彈性云服務器時,按照用戶的需要自動設定彈性云服務器的初始屬性,
對彈性云服務器的影響
在創建彈性云服務器時,如果選擇的鏡像支持Cloud-init特性,此時,您可以通過系統提供的“用戶資料注入”功能,注入初始化自定義資訊(例如為彈性云服務器設定登錄密碼),完成彈性云服務器的初始化配置,
支持Cloud-init特性后ZQ,彈性云服務器的登錄方式會產生影響,
對于運行中的的彈性云服務器,支持Cloud-init特性后,用戶可以通過查詢、使用元資料,對正在運行的彈性云服務器進行配置和管理,
對彈性伸縮的影響
創建伸縮配置時,您可以使用“用戶資料注入”功能,指定彈性云服務器的初始化自定義資訊,如果伸縮組使用了該伸縮配置,則伸縮組新創建的彈性云服務器會自動完成初始化配置,
對于已有的伸縮配置,如果其私有鏡像沒有安裝Cloud-init/Cloudbase-init,則使用該伸縮配置的伸縮組創建的彈性云服務器在登錄時會受到影響,
官方鏡像下載
# cloud images下載地址
# centos:
http://cloud.centos.org/centos/
# ubuntu:
http://cloud-images.ubuntu.com/releases/
# debian:
https://cloud.debian.org/images/cloud/OpenStack/
# fedora:
https://alt.fedoraproject.org/cloud/
# rehat7:
https://access.redhat.com/downloads/content/69/ver=/rhel---7/x86_64/product-downloads
# opensuse:
https://software.opensuse.org/distributions/leap#JeOS-ports
下載鏡像
# 下載Ubuntu官方CloudINIT鏡像
root@cby:~# wget https://mirrors.ustc.edu.cn/ubuntu-cloud-images/jammy/20230405/jammy-server-cloudimg-amd64.img
--2023-04-06 19:00:50-- https://mirrors.ustc.edu.cn/ubuntu-cloud-images/jammy/20230405/jammy-server-cloudimg-amd64.img
Resolving mirrors.ustc.edu.cn (mirrors.ustc.edu.cn)... 2001:da8:d800:95::110, 202.141.176.110, 202.141.160.110
Connecting to mirrors.ustc.edu.cn (mirrors.ustc.edu.cn)|2001:da8:d800:95::110|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 684654592 (653M) [application/octet-stream]
Saving to: ‘jammy-server-cloudimg-amd64.img’
jammy-server-cloudimg-amd64.img 100%[=========================================================================================================================================>] 652.94M 64.7MB/s in 9.7s
2023-04-06 19:01:00 (67.3 MB/s) - ‘jammy-server-cloudimg-amd64.img’ saved [684654592/684654592]
# 下載CentOS官方CloudINIT鏡像
root@cby:~# wget https://mirrors.ustc.edu.cn/centos-cloud/centos/7/images/CentOS-7-x86_64-GenericCloud.qcow2
--2023-04-06 19:01:48-- https://mirrors.ustc.edu.cn/centos-cloud/centos/7/images/CentOS-7-x86_64-GenericCloud.qcow2
Resolving mirrors.ustc.edu.cn (mirrors.ustc.edu.cn)... 2001:da8:d800:95::110, 202.141.176.110, 202.141.160.110
Connecting to mirrors.ustc.edu.cn (mirrors.ustc.edu.cn)|2001:da8:d800:95::110|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 902889472 (861M) [application/octet-stream]
Saving to: ‘CentOS-7-x86_64-GenericCloud.qcow2’
CentOS-7-x86_64-GenericCloud.qcow2 100%[=========================================================================================================================================>] 861.06M 60.5MB/s in 15s
2023-04-06 19:02:03 (59.1 MB/s) - ‘CentOS-7-x86_64-GenericCloud.qcow2’ saved [902889472/902889472]
root@cby:~#
使用命令配置
VM_ID=101
# 創建虛擬機
qm create $VM_ID --cores 4 --memory 4096 --name ubuntu --net0 virtio,bridge=vmbr0
# 給虛擬機匯入鏡像
qm importdisk $VM_ID jammy-server-cloudimg-amd64.img local-lvm
# 創建磁盤到local-lvm
qm set $VM_ID --sata0 local-lvm:vm-$VM_ID-disk-0
# 創建cloudinit
qm set $VM_ID --sata1 local-lvm:cloudinit
# 設定默認啟動項
qm set $VM_ID --boot c --bootdisk sata0
# 設定vga
qm set $VM_ID --serial0 socket --vga serial0
# 設定root密碼
qm set $VM_ID --ciuser root --cipassword 123123
# 配置靜態網路
#qm set $VM_ID --ipconfig0 ip=10.0.10.123/24,gw=10.0.10.1,ip6=dhcp
# 配置DHCP網路
qm set $VM_ID --ipconfig0 ip=dhcp,ip6=dhcp
# 配置DNS
qm set $VM_ID --nameserver 223.5.5.5
qm set $VM_ID --searchdomain 223.5.5.5
# 轉換為模板
qm template $VM_ID
# 克隆
qm clone 101 103 --name cby
簡化整理命令
# Ubuntu簡化
VM_ID=101
qm create $VM_ID --cores 4 --memory 4096 --name ubuntu --net0 virtio,bridge=vmbr0
qm importdisk $VM_ID jammy-server-cloudimg-amd64.img local-lvm
qm set $VM_ID --sata0 local-lvm:vm-$VM_ID-disk-0 --sata1 local-lvm:cloudinit --boot c --bootdisk sata0 --serial0 socket --vga serial0 --ciuser root --cipassword 123123 --ipconfig0 ip=dhcp,ip6=dhcp --nameserver 8.8.8.8 --searchdomain 8.8.8.8
# CentOS簡化
VM_ID=102
qm create $VM_ID --cores 4 --memory 4096 --name centos --net0 virtio,bridge=vmbr0
qm importdisk $VM_ID CentOS-7-x86_64-GenericCloud.qcow2 local-lvm
qm set $VM_ID --sata0 local-lvm:vm-$VM_ID-disk-0 --sata1 local-lvm:cloudinit --boot c --bootdisk sata0 --serial0 socket --vga serial0 --ciuser root --cipassword 123123 --ipconfig0 ip=dhcp,ip6=dhcp --nameserver 8.8.8.8 --searchdomain 8.8.8.8
配置模板系統
CentOS
# 配置yum源
sudo sed -e 's|^mirrorlist=|#mirrorlist=|g' -e 's|^#baseurl=http://mirror.centos.org/centos|baseurl=https://mirrors.ustc.edu.cn/centos|g' -i.bak /etc/yum.repos.d/CentOS-Base.repo
# 設定時區
timedatectl set-timezone Asia/Shanghai
# 安裝vim
yum install vim bash-completion
# 修改ssh遠程
vim /etc/ssh/sshd_config
# 開啟root登錄(如果需要的話;這里開啟了之后Cloud-Init用戶就可以設定root)
PermitRootLogin yes
# 開啟密鑰登錄
PubkeyAuthentication yes
# 密鑰路徑
AuthorizedKeysFile
# 開啟密碼登錄(默認只允許密鑰登錄)
PasswordAuthentication yes
# 不允許空密碼登錄
PermitEmptyPasswords no
# 關閉連接的DNS決議
UseDNS no
Ubuntu
# 設定時區
timedatectl set-timezone Asia/Shanghai
# 設定APT倉庫源
sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
# 更新源和安裝常用軟體
apt update && sudo apt install vim bash-completion -y
# 更新系統
sudo apt upgrade
# 修改SSH配置
vim /etc/ssh/sshd_config
# 開啟root登錄(如果需要的話;這里開啟了之后Cloud-Init用戶就可以設定root)
PermitRootLogin yes
# 開啟密鑰登錄
PubkeyAuthentication yes
# 密鑰路徑
AuthorizedKeysFile
# 開啟密碼登錄(默認只允許密鑰登錄)
PasswordAuthentication yes
# 不允許空密碼登錄
PermitEmptyPasswords no
# 關閉連接的DNS決議
UseDNS no
附錄
qm monitor <vmid> # 連接到虛擬機控制監視器
qm clone <vmid> <newid> [OPTIONS] # 克隆虛擬機
qm start <vmid> # 啟動實體
qm shutdown <vmid> # 優雅停止實體 發送關機命令
qm wait <vmid> [time] wait until vm is stopped
qm stop <vmid> # 停止實體 強制停止
qm reset <vmid> # 重啟實體 相當于stop然后再start
qm suspend <vmid> # 暫停實體
qm resume <vmid> # 恢復實體
qm cad <vmid> #發送按鍵 ctrl-alt-delete
qm destroy <vmid> # 銷毀實體(洗掉所有已使用/擁有的卷)
qm unlock <vmid> # 清除遷移/備份鎖
qm status <vmid> # 顯示實體狀態
qm cdrom <vmid> [<device>] <path> set cdrom path. <device is ide2 by default>
qm cdrom <vmid> [<device>] eject eject cdrom
qm unlink <vmid> <volume> delete unused disk images
qm vncproxy <vmid> <ticket> open vnc proxy
qm vnc <vmid> start (X11) vncviewer (experimental)
qm showcmd <vmid> # 顯示命令列(除錯資訊)
qm list # 列出所有虛擬機
qm startall # 啟動所有虛擬機 當onboot=1時
qm stopall [timeout] # 停止所有虛擬機(默認超時為3分鐘)
qm [create|set] <vmid> # 創建虛擬機
--memory <MBYTES> memory in MB (64 - 8192)
--sockets <N> set number of CPU sockets <N>
--cores <N> set cores per socket to <N>
--ostype NAME specify OS type
--onboot [yes|no] start at boot
--keyboard XX set vnc keyboard layout
--cpuunits <num> CPU weight for a VM
--name <text> set a name for the VM
--description <text> set VM description
--boot [a|c|d|n] specify boot order
--bootdisk <disk> enable booting from <disk>
--acpi (yes|no) enable/disable ACPI
--kvm (yes|no) enable/disable KVM
--tdf (yes|no) enable/disable time drift fix
--localtime (yes|no) set the RTC to local time
--vga (gd5446|vesa) specify VGA type
--vlan[0-9u] MODEL=XX:XX:XX:XX:XX:XX[,MODEL=YY:YY:YY:YY:YY:YY]
--ide<N> [volume=]volume,[,media=cdrom|disk]
[,cyls=c,heads=h,secs=s[,trans=t]]
[,cache=none|writethrough|writeback]
[,snapshot=on|off][,cache=on|off][,format=f]
[,werror=enospc|ignore|report|stop]
[,rerror=ignore|report|stop]
[,backup=no|yes]
--ide<N> <GBYTES> create new disk
--ide<N> delete remove drive - destroy image
--ide<N> undef remove drive - keep image
--cdrom <file> is an alias for --ide2 <file>,media=cdrom
--scsi<N> [volume=]volume,[,media=cdrom|disk]
[,cyls=c,heads=h,secs=s[,trans=t]]
[,snapshot=on|off][,format=f]
[,cache=none|writethrough|writeback]
[,werror=enospc|ignore|report|stop]
[,backup=no|yes]
--scsi<N> <GBYTES> create new disk
--scsi<N> delete remove drive - destroy image
--scsi<N> undef remove drive - keep image
--virtio<N> [volume=]volume,[,media=cdrom|disk]
[,cyls=c,heads=h,secs=s[,trans=t]]
[,snapshot=on|off][,format=f]
[,cache=none|writethrough|writeback]
[,werror=enospc|ignore|report|stop]
[,rerror=ignore|report|stop]
[,backup=no|yes]
--virtio<N> <GBYTES> create new disk
--virtio<N> delete remove drive - destroy image
--virtio<N> undef remove drive - keep image
pveperf # 基準腳本
pvesr list # 列出存盤復制作業
ha-manager status # 查看HA狀態
pvecm nodes # 查看集群節點
pvecm status # 查看集群狀態
pve-firewall compile # 查看防火墻規則
pve-firewall localnet # 輸出本地網路資訊
pve-firewall restart # 重啟防火墻
pve-firewall stop # 停止防火墻
pve-firewall start # 啟動防火墻
pvesh get /version # 查看集群
pvesh get /cluster/resources #查看集群資源狀況
pvesh get /nodes # 顯示所有node
pvesh get /nodes/<nodeid>/qemu # 顯示某節點中的虛擬機
pvesh get /nodes/<nodeid>/qemu/<vmid>/status/current # 顯示某虛擬機狀態
pvesh create /nodes/<nodeid>/qemu/<vmid>/status/start # 開啟一個虛擬機 [注意是create哦,不是get了]
pvesh get /nodes/<nodeid>/lxc/<ctid>/snapshot # 顯示某節點下容器快照
pvesh get /nodes/<nodeid>/disks/zfs # 顯示某節點的ZFS存盤區
pvesh get /nodes/<nodeid>/disks/list # 顯示某節點的磁盤串列
關于
https://www.oiox.cn/
https://www.oiox.cn/index.php/start-page.html
CSDN、GitHub、51CTO、知乎、開源中國、思否、博客園、掘金、簡書、華為云、阿里云、騰訊云、嗶哩嗶哩、今日頭條、新浪微博、個人博客
全網可搜《小陳運維》
文章主要發布于微信公眾號
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/549336.html
標籤:其他
上一篇:自己動手從零寫桌面作業系統GrapeOS系列教程——1.2 GrapeOS真機演示
下一篇:應急回應基礎技能
