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、知乎、开源中国、思否、博客园、掘金、简书、华为云、阿里云、腾讯云、哔哩哔哩、今日头条、新浪微博、个人博客

全网可搜《小陈运维》

文章主要发布于微信公众号

PVE Cloud-INIT 模板配置的更多相关文章

  1. Spring Cloud Feign 自定义配置(重试、拦截与错误码处理) 实践

    Spring Cloud Feign 自定义配置(重试.拦截与错误码处理) 实践 目录 Spring Cloud Feign 自定义配置(重试.拦截与错误码处理) 实践 引子 FeignClient的 ...

  2. EditPlus自动补全、模板配置

    EditPlus真的是一款非常好用的编辑器,虽然小,但是短小精悍,速度快.只要配置好了,功能也是很强大的.下面来总结一下如何配置EditPlus的自动补全,和模板配置. 一.配置自动补全:(以开发CS ...

  3. jeecg入门操作—模板配置(录入界面)

    点击online表单的模板配置,进入模板设计列表页面,点击创建模板 点击创建模板 点击激活 设计完成,点击激活(表单模板可以多个,激活状态只能有一个) 激活后,重新加入功能测试,点击添加页面,效果如下 ...

  4. Spring Cloud Config(配置中心)

    每天学习一点点 编程PDF电子书.视频教程免费下载:http://www.shitanlife.com/code 一.简介 Spring Cloud Config为分布式系统中的外部配置提供服务器和客 ...

  5. openstack cloud init set password

    设置代理和password #!/bin/bash cd /home/ubuntu wget otcloud-gateway.bj.intel.com/script.tar.gz ]; then cu ...

  6. 007-spring cloud gateway-GatewayAutoConfiguration核心配置-RouteDefinition初始化加载

    一.RouteDefinitionLocator 在Spring-Cloud-Gateway的GatewayAutoConfiguration初始化加载中会加载RouteDefinitionLocat ...

  7. spring cloud Eureka client配置(consumer通过Eureka发起对provider的调用)

    参考:http://www.ityouknow.com/springcloud/2017/05/12/eureka-provider-constomer.html springboot版本:2.0.3 ...

  8. spring cloud config将配置存储在数据库中

    Spring Cloud Config Server最常见是将配置文件放在本地或者远程Git仓库,放在本地是将将所有的配置文件统一写在Config Server工程目录下,如果需要修改配置,需要重启c ...

  9. Tornado模板配置

    #!/usr/bin/env python # -*- coding:utf-8 -*- #tornado模板配置 import tornado.ioloop import tornado.web c ...

  10. node 渲染html模板配置

    node 渲染html模板配置 安装swig模块 npm install swig--save - dev 加载swig模块 var swig = require('swig'); 模板配置 //第一 ...

随机推荐

  1. nginx二进制安装脚本

    #!/bin/bash NGINX_FILE=nginx-1.22.0#NGINX_FILE=nginx-1.20.2#NGINX_FILE=nginx-1.18.0NGINX_URL=http:// ...

  2. 实现Runnable接口

    1.定义一个类用于实现Runnable接口 2.重写run()方法,编辑代码逻辑体 3.创建线程对象,调用start()开启线程 案例:我在学习 1 public class study implem ...

  3. Hbase操作与编程使用

    1.任务: 列出HBase所有的表的相关信息,例如表名: 3. 编程完成以下指定功能(教材P92下): (1)createTable(String tableName, String[] fields ...

  4. 02题解-洛谷 P2395 BBCode转换Markdown 题解

    洛谷 P2395 BBCode转换Markdown 题解 题目传送门: here. 一道毒瘤的大模拟,给了你一部分的 BBCode 和 Markdown 语法,叫你转换.如下表: BBCode Mar ...

  5. MySql 字符串时间转换

    MySql中经常遇到字符串格式时间转换成时间类型的情况: SELECT STR_TO_DATE('Jul 20 2013 7:49:14:610AM','%b %d %Y %h:%i:%s:%f%p' ...

  6. 【原创】android 7.0 通知报错 java.lang.SecurityException: You need MANAGE_USERS permission to: check if specified user a managed profile outside your profile group

    项目中在后台发送通知,突然某一天测出在Android 7.0上通知发送失败,那么根据提示,我们尝试加了MANAGE_USERS权限,看起来是个系统级别权限,验证后果然无效.接着在搜索后都无果,似乎大家 ...

  7. 每日一道算法题——斐波那契数列Fibonacci

    题目: 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1),n≤39: 示例1 输入: 4 返回值: 3 代码: 方法一:递归 publi ...

  8. Kong网关安装自定义插件

    安装自定义插件需要注意kong网关的版本要求!! 下面以安装Skywalking插件为例,要求Kong网关是2.2及以上版本,https://github.com/apache/skywalking- ...

  9. CH9141进阶应用篇

    在基础篇中主要将的是主从连接透传数据,这也是CH9141模块的主要功能,这边呢就主要讲讲除了透传之外的功能, 如通用GPIO,ADC采集功能,串口配置功能. 这些功能均有两种实现方式,一种是通过AT指 ...

  10. ERROR 1067 (42000): Invalid default value for 'xxx字段'

    报错版本:mysql-5.7.35 1.报错完整提示信息: ERROR 1067 (42000): Invalid default value for 'LOCK_TIME_' 2.原因: 使用sou ...