Proxmox ve 使用cloud-init模板生成虚拟机

2023-05-16

本文中斜体字部分为命令行

1.Cloud-init 的作用

cloud-init是一个Linux虚拟机的初始化工具,被广泛应用在AWS和OpenStack等云平台中,用于快速新建虚拟机,并进行一些系统初始化的任务,如用户设置、密码设置、磁盘扩展、安装软件包等初始化设置。本文介绍的是pve虚拟机的cloud-init配置,如何使用cloud-init进行虚拟机快速部署工作。

2.获取已安装并配置了cloud-init的系统镜像模板

本文主要是讲pve中的cloud-init配置,并不讲解如何去安装及配置cloud-init,因篇幅较多,所以我们直接从官网去下载一个带cloud-init的系统镜像,在此以debian10系统为例,下面给出三种系统的官方模板镜像下载地址:

Centos7下载地址: http://cloud.centos.org/centos/7/images/

Debian10下载地址: http://cdimage.debian.org/cdimage/cloud/OpenStack/current-10/

Ubuntu18下载地址: https://cloud-images.ubuntu.com/bionic/current/

以上网址有kvm的qcow2或者img系统镜像下载,可选择合适的版本及文件下载。

3.上传vm系统镜像模板文件

使用ssh或者xftp工具上传debian10.qcow2系统镜像磁盘文件到pve服务器。

本例文件名为:debian-10.0.2-20190721-openstack-amd64.qcow2。

4.制作debian-cloud-init系统

4-1 创建虚拟系统并转换成模板

# qm create 502 --name debian10-ci --memory 2048 --net0 virtio,bridge=vmbr0

#新建虚拟机名称为:debian10-ci,vmid为:502 (id可自定义,不存在即可)

# qm importdisk 502 debian-10.0.2-20190721-openstack-amd64.qcow2 local-lvm

#导入磁盘文件

# qm set 502 --virtio0 local-lvm:vm-502-disk-0

#定义磁盘总线类型为virtio

# qm set 502 --boot c --bootdisk virtio0

#设置virtio0磁盘为第一引导设备

# qm set 502 --serial0 socket --vga serial0

#添加并设置显卡设备为serial0

# qm set 502 --ide2 local-lvm:cloudinit

#添加Cloudinit Drive设备

# qm set 502 --sshkey ~/.ssh/id_rsa.pub

#导入ssh公钥到虚拟系统

# qm template 502

#将虚拟机转换成系统模板,可用之快速生成克隆的系统,不转换成模板也可直接使用。

4-2 由模板生成虚拟机

# qm clone 502 103 --name debian10

#用502模板克隆一个系统到103,名称定义为debian10

# qm set 103 --agent enabled=1

#启用该虚拟机的Qemu代理,可以在pve面板上直接查看到vm的ip及mac地址,不是必需的设置。
#如果此处启用了代理,在虚拟机系统里安装这个代理,命令为:
# apt install qemu-guest-agent

4-3 配置cloud-init

虚拟机创建后,cloud-init需要配置

在这里插入图片描述

用户:debian10的模板系统,默认用户是debian。如果是配置root或用户登录 ,此处需输入用户名即可,不输入用户名,则用默认的用户可登录 。(centos7的默认用户是centos)。

密码:可在此处输入上面用户的密码,建议输入,否则控制台端不能登录系统。

DNS域:可输入虚拟机的域名,不输入则继承pve主机的域名。

DNS服务器:如果vm使用其它域名解析,可在此输入,不输入则继承pve主机的域名解析服务器地址。

SSH公钥:ssh连接虚拟机的公钥,使用ssh连接此虚拟机不是使用用户和密码,而是使用密钥登录。

ip配置:不输入则使用dhcp给虚拟机分配ipv4和ipv6,可在此定义该虚拟机的ip地址、子网掩码及网关地址。

以上配置亦可全部用命令行来实现,具体方法请参见pve官网帮助文档。

5.登录系统检查虚拟机的系统配置

debian-cloud-init虚拟机创建完成后,第一次启动它会有一点慢,它会根据cloud-init配置初始化这个系统,定义的主机名默认为vm的机器名,用户/密码/dns信息及网络配置等皆来自于cloud-init定义的值。

安装了cloud-init的系统,可以在线扩展硬盘容量,可以在线挂载新磁盘。扩展的系统磁盘空间它会在下一次重启vm后,直接分配给系统根分区/。挂载的新磁盘,可以不需要重启,直接分区挂载并挂载即可。

获取root权限:默认用户只有普通权限,如果想切换到root用户,可使用下面的命令:

$ sudo -i
该命令可以直接无密码切换到root用户


参考文章:

https://pve.proxmox.com/wiki/Cloud-Init_FAQ#What_is_cloud-init.3F

https://pve.proxmox.com/wiki/Qemu/KVM_Virtual_Machines

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Proxmox ve 使用cloud-init模板生成虚拟机 的相关文章

  • Android系统服务是从哪里启动的?

    在 嵌入式Android 一书中 它说 在 init rc 中 只有一个操作才会导致命令的执行 服务声明仅用于描述服务 它们实际上并不启动任何东西 第246页 那么 Android系统服务 例如servicemanager vold 是从哪
  • Docker-Compose + Postgres:/docker-entrypoint-initdb.d/init.sql:权限被拒绝

    我有以下 docker compose 文件 version 3 services postgres image postgres 11 2 alpine environment POSTGRES PASSWORD root POSTGRE
  • Liferay:从 init() 获取 PortletID 和 companyID

    也许通过 init PortletConfig 中的 PortletConfig 问题是使用 PortletConfigImpl portletConfig getPortletId 不再允许 因为在 package properties
  • 如何在云(AWS、heroku 等)中跨多个节点建立时钟同步?

    我想在云中运行一个大型节点集群 AWS Heroku 或者可能是自我管理的 VMS 其时钟必须与预定义的容差同步 我正在寻找大约 200 毫秒的容差 这意味着 如果我有 250 个节点 那么这 250 个节点之间的最大时钟差异不应超过 20
  • Java 的去中心化集群库 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 将 TF.exe 与 Team Foundation Service 结合使用?

    我们正在将构建从 Team Build Team Foundation Service 转移到使用 Jenkins CI 进行构建的本地构建机器 但是 我们仍然希望使用云进行源代码控制 所以现在我们需要访问云TFS来获取最新版本 Jenki
  • 直接调用__init__的目的是什么?

    我很难弄清楚我遇到的一些代码的用途 代码有一个类Foo 其中有一个 init 带有多个参数的方法 根据我迄今为止对 Python 的了解 通过调用Foo bar 它将将此字符串作为参数传递给 init 我认为这应该相当于构造函数 但我遇到的
  • Terraform - 我应该使用 user_data 还是 Provisioner 来引导资源?

    看来我可以使用user data使用模板文件或 远程执行 provisioner使用内联命令进行引导 那么哪一个被认为更惯用呢 你应该使用user data The 用户数据 http docs aws amazon com AWSEC2
  • 覆盖 Django 模型 __init__ 方法

    我的 Django 项目的 Ingredient 模型有一个IntegerField它声明该原料库存是否按重量 单位或窝数进行管理 虽然数据库有它的integervalue 我必须显示它的名称 我认为最好覆盖每个成分并设置其值 而不是覆盖
  • Zend 框架引导问题

    我已经在新安装 Zend Framework 应用程序一段时间了 但我不知道发生了什么 我有两个想要使用的自定义操作助手 并且我想在引导程序中初始化它们 但似乎我的 init 函数根本没有被调用 在启动应用程序的 index php 中 我
  • Debian 的简单初始化脚本中出现“;;意外”语法错误

    我有这个初始化脚本来运行 uwsgi 它有效 但仅限于启动命令 所有其他命令都会给我这个错误 etc init d uwsgi 27 etc init d uwsgi Syntax error unexpected 我正在阅读的教程中似乎应
  • 为什么有 2 种 AppFabric?

    我看到我们现在拥有 Windows Server AppFabric 和 Azure AppFabric 这只是 Microsoft 营销部门的命名空间冲突还是这些技术共享通用接口 有人告诉我 可以在本地生产服务器上使用 Azure App
  • V100 和 P100 在 Google Compute Engine 上的可用性

    描述 我刚刚尝试了一段时间 使用我的个人帐户设置或保留用于机器学习的虚拟机 我在 n1 上使用了几个月 具有大约 8 GB 或更多 GB RAM 以及用于机器学习的 P100 或 V100 现在尝试了至少一半具有 P100 V100 可用性
  • 解析iOS SDK:从Xcode调用云函数

    Scenario我想在我的应用程序中使用这两个云函数 他们检查用户的在线状态 我想为每个用户设置一个布尔键 isOnline 如果用户在线 则设置为 是 如果用户不在线 则设置为 否 var moment require moment Pa
  • 可扩展性和弹性有什么区别?

    我听说很多人交替使用这两个术语 但在我看来 它们之间还是有区别的 可扩展性 的能力软件系统在其当前硬件资源上处理更大的工作负载 scale up 或当前和额外的硬件资源 向外扩展 应用程序服务不中断 弹性 的能力硬件层下面 通常是云基础设施
  • 使用 get/post 的免费云数据存储? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我知道还有其他类似的键 值存储http openkeyval org http openkeyval o
  • Docker 容器中的 LDAP 身份验证

    默认情况下 当Docker容器启动时 里面的用户是sudo I want 默认情况下将 sudo 用户锁定在容器中 在容器中使用 LDAP 身份验证而不是默认身份验证 当用户与映像一起提供时 或者在容器运行时由 sudo 用户创建 为此 我
  • 将大型 CSV 加载到 Google BigQuery 时出错

    将大型 CSV 加载到 bigquery 时出现错误 我在网上阅读的所有地方都发现压缩文件有 5GB 大小限制 但 CSV 没有限制 加载操作中的 BigQuery 错误 处理作业 bqjob r3016bbfad3037f 0000015
  • 将网站部署到云服务的最佳实践

    在云服务上部署多个网站的最佳实践是什么 我有三个网站 是否可以将这三个网站部署到一个云服务中 一个云服务三个实例 或者我是否必须创建三个云服务并单独部署每个网站 谢谢 我的服务定义文件
  • Google BigQuery 底层架构

    所以我大约 10 分钟前才开始摆弄 Google BigQuery 我想知道是否有人知道他们用来存储数据的底层架构 例如 这只是他们自己的下一代 BigTable 基础设施吗 另外 他们在索引 索引重建等方面使用什么样的策略是否清楚 我只是

随机推荐

  • 安装 WSL2 Ubuntu20.04 报 0xc03a001a

    错误 xff1a WslRegisterDistribution failed with error 0xc03a001a 解决方案 xff1a 找到 C Users 你的用户名 AppData Local Packages找到 Canon
  • debian/ubuntu arm/arm64 国内源

    最近搞linux系统整理了一些源 xff0c 希望对大家有用 ubuntu14 04 armhf deb http mirrors ustc edu cn ubuntu ports trusty main multiverse restri
  • ftp命令行访问

    许多时候 xff0c 出于条件的限制 xff0c 我们无法使用 FTP 软件上下载文件 比如 xff0c 在某些对安全性或隐私有要求的主机上就不允许安装此类软件 此时 xff0c 要想实现文件的上传下载 xff0c 我们就只好使用系统自带的
  • 问题记录:Start : 由于出现以下错误,无法运行此命令: 系统找不到指定的文件。。

    执行 xff1a openssl req x509 nodes days span class token number 365 span newkey rsa 2048 keyout mykey key out mycert pem ju
  • 树莓派系统的安装【超详细、超简单】

    如何安装树莓派的系统 以及 树莓派新系统SSH连接被拒绝的解决方法 1 下载树莓派系统 下载地址 xff1a https www raspberrypi org software operating systems 选择合适的下载即可 2
  • Win10系统双击无法打开图片的解决方法

    一位用户将电脑系统升级到Windows10正式版后 xff0c 发现计算机中的图片双击打不开了 xff0c 这是怎么回事呢 xff1f 其实 xff0c 该问题是由于win10系统默认情况下将 照片查看器 屏蔽所导致的 接下来 xff0c
  • 入栈出栈顺序

    转自 xff1a https blog csdn net qq 1932568757 article details 82752325 问题 xff1a 已知入栈顺序 xff0c 找出不可能得出栈顺序 已知一个栈得入栈顺序为ABCDEF x
  • 远程连接一闪而过或登录后无法正常操作的解决方法

    今天我远程登录到服务器上 xff08 win2003 xff09 修改网站某目录的属性 xff0c 由于该目录下的文件达好几万个 xff0c 所以我操作完后就等待完成 xff0c 把远程窗口最小化后 xff0c 继续在本地电脑做其他的事情
  • Copilot使用教程

    官网及申请地址 xff1a https copilot github com 教程包含如下内容 xff1a copilot简单介绍使用python对copilot做些简单使用测试使用copilot对LeetCode 题目解答 一 copil
  • Python打包与解压zip

    打包 shutil模块 shutil make archive base name format root dir base dir verbose dry run owner group logger 参数说明 xff1a base na
  • powershell批量修改文件名称。

    下面的代码能够给桌面 都彭 文件夹下的所有目录文件名称增加都 都彭 两个字 Get ChildItem Path F Desktop 都彭 获取这个目录下的所有文件 增加recurse参数后能够对这个目录进行递归获包含子目录的所有文件名 利
  • ThinkPad相机打开灰色加斜杠问题解决!!!

    问题是这样的 xff01 xff01 xff01 很久前是这样的 xff0c 一直弄不好 xff0c 删了驱动 xff0c 重装驱动 xff0c 注册表弄了 xff0c 反正是各种弄 xff0c 各种帖子找了还是不行 xff01 xff01
  • SSL error when connecting to the Jack server. Try ‘jack-diagnose‘

    Android7 编译出现jack admin启动问题 xff1a log如下 xff1a Launching Jack server java XX MaxJavaStackTraceDepth 61 1 Djava io tmpdir
  • 【IOS】史上最全文件操作NSFileManager

    功能列表 判断文件是否存在 43 BOOL fileExistsAtPath NSString aPath 判断文件是否存在Documents下 43 BOOL fileExistsAtDocumentsWithFileName NSStr
  • 【IOS】StoryBoard传值TableView点击Cell跳转传值(segue)

    问题 void prepareForSegue UIStoryboardSegue segue sender id sender 以上方法会先于 void tableView UITableView tableView didSelectR
  • Android Windows虚拟串口调试

    1 Configure Virtual Serial Port Driver 创建虚拟串口 2 设置Android模拟器虚拟串口 进入Android SDK的tools目录 xff0c 通过cmd执行命令 xff1a emulator ex
  • 贪心算法之木棍问题

    问题 H 木棒 时间限制 1 Sec 内存限制 32 MB 提交 147 解决 60 提交 状态 题目描述 现有n根木棒 xff0c 已知它们的长度和重量 要用一部木工机一根一根地加工这些木棒 该机器在加工过程中需要一定的准备时间 xff0
  • cephadm安装ceph v15

    cephadm 安装ceph v15准备 参考安装文档 有问题可以直接留言 xff0c 大家一起交流 xff0c 以下都是部署的比较基础的东西 https docs ceph com en latest cephadm http www d
  • Mysql启用SSL以及JDBC连接Mysql配置

    文章目录 一 Mysql启用SSL配置1 检查mysql是否支持ssl2 设置用户是否使用ssl连接1 查看用户是否使用SSL连接2 强制某用户使用SSL连接3 测试不使用ssl能否连接上4 取消用户使用ssl连接 二 JDBC连接Mysq
  • Proxmox ve 使用cloud-init模板生成虚拟机

    本文中斜体字部分为命令行 1 Cloud init 的作用 cloud init是一个Linux虚拟机的初始化工具 xff0c 被广泛应用在AWS和OpenStack等云平台中 xff0c 用于快速新建虚拟机 xff0c 并进行一些系统初始