<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Vm on IT 运维小秋</title>
        <link>/tags/vm.html</link>
        <description>Recent content in Vm on IT 运维小秋</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <managingEditor>chenwx716@139.com</managingEditor>
        <webMaster>chenwx716@139.com</webMaster>
        <lastBuildDate>Sun, 20 Jul 2025 12:53:32 +0800</lastBuildDate><atom:link href="/tags/vm/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>制作虚拟机模板</title>
        <link>/p/create-vm-template.html</link>
        <pubDate>Sun, 20 Jul 2025 12:53:32 +0800</pubDate>
        <author>chenwx716@139.com</author>
        <guid>/p/create-vm-template.html</guid>
        <description>&lt;h2 id=&#34;系统模板分类&#34;&gt;系统模板分类&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;薄模板&lt;/li&gt;
&lt;li&gt;厚模板&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;薄模板&#34;&gt;薄模板&lt;/h3&gt;
&lt;p&gt;使用原生的 cloudimg, 搭配 cloud-init 机制, 在创建实例启动的那一刻才进行初始化;&lt;/p&gt;
&lt;p&gt;优点:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;模板自身体积非常小&lt;/li&gt;
&lt;li&gt;启动时初始化通常能获取最新的应用软件包&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;缺点:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;如果安装包较多, 初始化速度会很慢,&lt;/li&gt;
&lt;li&gt;同一模板不同时间创建的实例会有差别, 例如初始化时安装的软件包版本号不一样&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;厚模板&#34;&gt;厚模板&lt;/h3&gt;
&lt;p&gt;先在基础镜像内把各类软件和基础配置都做好, 打包后使用, cloud-init 只负责简易的ip地址,主机名和用户密码;&lt;br /&gt;
主流模式&lt;/p&gt;
&lt;p&gt;优点:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;因为主要初始化动作已经完成, 所有新建实例时启动会很快&lt;/li&gt;
&lt;li&gt;核心软件版本已经固定到模板系统内&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;缺点:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;模板体积可能较大&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;cloud-init&#34;&gt;cloud-init&lt;/h2&gt;
&lt;p&gt;简单理解为预先置放在系统内的一个服务程序, 在启动那一刻会去指定设备(一般是虚拟光驱)上读取一些文件进行系统初始化操作。&lt;/p&gt;
&lt;p&gt;早期没有 cloud-init 时, 我们一般是克隆服务器后，上传一个自定义脚本进行初始化；&lt;/p&gt;
&lt;p&gt;数据来源&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;虚拟iso设备文件提供的配置&lt;/li&gt;
&lt;li&gt;公有云环境通过 169.254.169.254 获取到的主机元数据&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;数据类型&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Metadata: 实例的id, 主机名等&lt;/li&gt;
&lt;li&gt;Userdata: 主要的初始化内容, 创建用户、脚本、安装软件、编辑文件等动作&lt;/li&gt;
&lt;li&gt;Vendor-data: 供应商数据, 一般由云平台提供&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;创建模板&#34;&gt;创建模板&lt;/h2&gt;
&lt;p&gt;方案1: 原生工具创建, 独立创建系统模板&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;vmware 就使用 vCenter 创建模板&lt;/li&gt;
&lt;li&gt;pve 安装系统后, ui页面转换为模板&lt;/li&gt;
&lt;li&gt;pve 使用 qm 命令行工具+virt-customize 创建模板&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;方案2: terraform 负责创建系统模板&lt;/p&gt;
&lt;p&gt;方案3: packer 创建系统模板, 支持2种模式&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;从 iso 安装到制作成模板&lt;/li&gt;
&lt;li&gt;从另一个模板开始制作, 一般搭配 cloudimg 镜像使用&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;推荐组合&#34;&gt;推荐组合&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;如果有特殊驱动需求, 就使用 packer iso 方式制作镜像&lt;/li&gt;
&lt;li&gt;packer templates 方式制作镜像&lt;/li&gt;
&lt;li&gt;virt-customize 定制镜像&lt;/li&gt;
&lt;li&gt;cloud-init 避免执行太多内容, 只包含基础的用户初始化即可&lt;/li&gt;
&lt;/ol&gt;
</description>
        </item>
        
    </channel>
</rss>
