使用Packer为 VMware Workstation Pro自动化构建openSUSE 15.3 虚拟机映像

autoinst.xml

<?xml version="1.0"?>
<!DOCTYPE profile>
<profile xmlns="http://www.suse.com/1.0/yast2ns" xmlns:config="http://www.suse.com/1.0/configns">
  <scripts>
    <chroot-scripts config:type="list">
      <script>
        <chrooted config:type="boolean">true</chrooted>
        <filename>add_vagrant_sudo_rule.sh</filename>
        <interpreter>shell</interpreter>
        <source>
<![CDATA[
#!/bin/sh
echo "Defaults:vagrant !targetpw
vagrant ALL=(ALL,ALL) NOPASSWD: ALL" > /etc/sudoers.d/vagrant
]]>
          </source>
      </script>
    </chroot-scripts>
  </scripts>
  <general>
    <mode>
      <confirm config:type="boolean">false</confirm>
      <forceboot config:type="boolean">true</forceboot>
      <final_reboot config:type="boolean">false</final_reboot>
    </mode>
  </general>
  <report>
    <messages>
      <show config:type="boolean">false</show>
      <timeout config:type="integer">10</timeout>
      <log config:type="boolean">true</log>
    </messages>
    <warnings>
      <show config:type="boolean">false</show>
      <timeout config:type="integer">10</timeout>
      <log config:type="boolean">true</log>
    </warnings>
    <errors>
      <show config:type="boolean">false</show>
      <timeout config:type="integer">10</timeout>
      <log config:type="boolean">true</log>
    </errors>
  </report>
  <keyboard>
    <keymap>english-us</keymap>
  </keyboard>
  <language>
    <language>en_US</language>
    <languages>en_US</languages>
  </language>
  <timezone>
    <hwclock>UTC</hwclock>
    <timezone>Etc/UTC</timezone>
  </timezone>
  <partitioning config:type="list">
    <drive>
      <enable_snapshots config:type="boolean">false</enable_snapshots>
      <initialize config:type="boolean">true</initialize>
      <partitions config:type="list">
        <partition>
          <create config:type="boolean">true</create>
          <crypt_fs config:type="boolean">false</crypt_fs>
          <filesystem config:type="symbol">ext4</filesystem>
          <format config:type="boolean">true</format>
          <loop_fs config:type="boolean">false</loop_fs>
          <mount>/</mount>
          <mountby config:type="symbol">device</mountby>
          <partition_id config:type="integer">131</partition_id>
          <partition_nr config:type="integer">2</partition_nr>
          <raid_options />
          <resize config:type="boolean">false</resize>
          <size>max</size>
          <subvolumes config:type="list">
            <listentry>boot/grub2/i386-pc</listentry>
            <listentry>boot/grub2/x86_64-efi</listentry>
            <listentry>home</listentry>
            <listentry>opt</listentry>
            <listentry>srv</listentry>
            <listentry>tmp</listentry>
            <listentry>usr/local</listentry>
            <listentry>var/crash</listentry>
            <listentry>var/log</listentry>
            <listentry>var/opt</listentry>
            <listentry>var/spool</listentry>
            <listentry>var/tmp</listentry>
          </subvolumes>
        </partition>
      </partitions>
      <pesize />
      <type config:type="symbol">CT_DISK</type>
      <use>all</use>
    </drive>
  </partitioning>
  <bootloader>
    <loader_type>grub2</loader_type>
		<global>
			<activate>true</activate>
			<timeout config:type="integer">1</timeout>
			<boot_mbr>true</boot_mbr>
		</global>
  </bootloader>
  <networking>
    <ipv6 config:type="boolean">false</ipv6>
    <keep_install_network config:type="boolean">true</keep_install_network>
    <dns>
      <dhcp_hostname config:type="boolean">true</dhcp_hostname>
      <resolv_conf_policy>auto</resolv_conf_policy>
      <domain>vagrantup.com</domain>
      <hostname>opensuse-leap-x64</hostname>
    </dns>
    <interfaces config:type="list">
      <interface>
        <bootproto>dhcp</bootproto>
        <name>eth0</name>
        <startmode>auto</startmode>
        <usercontrol>no</usercontrol>
      </interface>
    </interfaces>
  </networking>
  <firewall>
    <enable_firewall config:type="boolean">false</enable_firewall>
    <start_firewall config:type="boolean">false</start_firewall>
  </firewall>
  <software>
    <packages config:type="list">
      <package>apparmor-parser</package>
      <package>grub2</package>
      <package>glibc-locale</package>
      <package>iputils</package>
      <package>openssh</package>
      <package>kernel-default</package>
      <package>sudo</package>
      <package>yast2</package>
      <package>yast2-firstboot</package>
      <package>zypper</package>
      <package>yast2-trans-en_US</package>
      <package>wget</package>
      <package>curl</package>
      <package>grub2-branding-openSUSE</package>
      <package>less</package>
      <package>growpart</package>
      <package>open-vm-tools</package>
      <package>open-iscsi</package>
      <package>insserv-compat</package>
      <package>cloud-init</package>
      <package>docker</package>
    </packages>
    <patterns config:type="list">
      <pattern>sw_management</pattern>
      <pattern>yast2_install_wf</pattern>
      <pattern>minimal_base</pattern>
      <pattern>devel_basis</pattern>
    </patterns>
    <remove-packages config:type="list">
      <package>bash-completion</package>
      <package>telnet</package>
      <package>virtualbox-guest-kmp-default</package>
      <package>virtualbox-guest-tools</package>
      <package>snapper</package>
      <package>snapper-zypp-plugin</package>
    </remove-packages>
  </software>
  <services-manager>
    <default_target>multi-user</default_target>
    <services>
      <disable config:type="list" />
      <enable config:type="list">
        <service>sshd</service>
        <service>docker</service>
        <service>cloud-init</service>
        <service>cloud-config</service>
        <service>cloud-final</service>
      </enable>
    </services>
  </services-manager>
  <groups config:type="list">
    <group>
      <gid>100</gid>
      <groupname>users</groupname>
      <userlist />
    </group>
  </groups>
  <user_defaults>
    <expire />
    <group>100</group>
    <groups />
    <home>/home</home>
    <inactive>-1</inactive>
    <no_groups config:type="boolean">true</no_groups>
    <shell>/bin/bash</shell>
    <skel>/etc/skel</skel>
    <umask>022</umask>
  </user_defaults>
  <users config:type="list">
    <user>
      <user_password>vagrant</user_password>
      <username>root</username>
    </user>
    <user>
      <fullname>Built by Packer</fullname>
      <gid>100</gid>
      <home>/home/vagrant</home>
      <password_settings>
        <expire />
        <flag />
        <inact>-1</inact>
        <max>99999</max>
        <min>0</min>
        <warn>7</warn>
      </password_settings>
      <shell>/bin/bash</shell>
      <uid>1000</uid>
      <user_password>vagrant</user_password>
      <username>vagrant</username>
    </user>
  </users>
  <kdump>
    <add_crash_kernel config:type="boolean">false</add_crash_kernel>
  </kdump>
</profile>

opensuse153.json

{
  "variables": {
      "boot_wait": "10s","disk_size": "40960","iso_checksum": "9d1aecaa42f322f034788e78fdbd81d7","iso_url": "file://F:\\openSUSE-Leap-15.3-2-DVD-x86_64-Build24.5-Media.iso","memsize": "1024","numvcpus": "1","ssh_password" : "vagrant","ssh_username" : "vagrant","vm_name": "openSUSE-Leap-15.3"
    },"builders": [
      {
        "type": "vmware-iso","boot_command": [
        "<esc><enter><wait>","linux"," textmode=1"," lang=en_US"," netdevice=eth0"," netsetup=dhcp"," autoyast=http://{{ .HTTPIP }}:{{ .HTTPPort }}/autoinst.xml","<enter><wait5>"
      ],"boot_wait": "{{ user `boot_wait` }}","disk_size": "{{ user `disk_size` }}","disk_type_id": "0","guest_os_type": "opensuse-64","headless": false,"http_directory": "http","iso_checksum": "{{ user `iso_checksum` }}","iso_url": "{{ user `iso_url` }}","shutdown_command": "echo 'packer'|sudo -S /sbin/halt -h -p","ssh_password": "{{ user `ssh_password` }}","ssh_port": 22,"ssh_username": "{{ user `ssh_username` }}","ssh_timeout": "30m","vm_name": "{{ user `vm_name` }}","vmx_data": {
          "memsize": "{{ user `memsize` }}","numvcpus": "{{ user `numvcpus` }}","virtualHW.version": "14"
        }
      }
    ],"provisioners": [
    {
      "type": "shell","execute_command": "echo 'packer'|{{.Vars}} sudo -S -E bash '{{.Path}}'","inline": [
        "zypper update"
      ]
    }
  ]
}

构建输出:

F:\packer-opensuse>packer.exe build opensuse153.json
Warning: Warning when preparing build: "vmware-iso"

Your vmx data contains the following variable(s),which Packer normally sets
when it generates its own default vmx template. This may cause your build to
fail or behave unpredictably: numvcpus,memsize,virtualHW.version


vmware-iso: output will be in this color.

==> vmware-iso: Retrieving ISO
==> vmware-iso: Trying file://F:\openSUSE-Leap-15.3-2-DVD-x86_64-Build24.5-Media.iso
==> vmware-iso: Trying file://F:/openSUSE-Leap-15.3-2-DVD-x86_64-Build24.5-Media.iso?checksum=md5%3A9d1aecaa42f322f034788e78fdbd81d7
==> vmware-iso: file://F:/openSUSE-Leap-15.3-2-DVD-x86_64-Build24.5-Media.iso?checksum=md5%3A9d1aecaa42f322f034788e78fdbd81d7 => F:/openSUSE-Leap-15.3-2-DVD-x86_64-Build24.5-Media.iso
==> vmware-iso: Configuring output and export directories...
==> vmware-iso: Creating required virtual machine disks
==> vmware-iso: Building and writing VMX file
==> vmware-iso: Starting HTTP server on port 8401
==> vmware-iso: Starting virtual machine...
==> vmware-iso: Connecting to VNC...
==> vmware-iso: Waiting 10s for boot...
==> vmware-iso: Typing the boot command over VNC...
==> vmware-iso: Waiting for SSH to become available...
==> vmware-iso: Connected to SSH!
==> vmware-iso: Provisioning with shell script: C:\Users\ADMINI~1\AppData\Local\Temp\packer-shell3282613005
    vmware-iso: Building repository 'openSUSE-Leap-15.3-2' cache [....done]
    vmware-iso: Loading repository data...
    vmware-iso: Reading installed packages...
    vmware-iso:
    vmware-iso: The following 4 items are locked and will not be changed by any action:
    vmware-iso:  Available:
    vmware-iso:   bash-completion snapper snapper-zypp-plugin virtualbox-guest-tools
    vmware-iso: Nothing to do.
==> vmware-iso: Gracefully halting virtual machine...
    vmware-iso: Waiting for VMware to clean up after itself...
==> vmware-iso: Deleting unnecessary VMware files...
    vmware-iso: Deleting: output-vmware-iso\vm.scoreboard
    vmware-iso: Deleting: output-vmware-iso\vmware.log
==> vmware-iso: Compacting all attached virtual disks...
    vmware-iso: Compacting virtual disk 1
==> vmware-iso: Cleaning VMX prior to finishing up...
    vmware-iso: Disabling VNC server...
==> vmware-iso: Skipping export of virtual machine...
Build 'vmware-iso' finished after 11 minutes 42 seconds.

==> Wait completed after 11 minutes 42 seconds

==> Builds finished. The artifacts of successful builds are:
--> vmware-iso: VM files in directory: output-vmware-iso

F:\packer-opensuse>

默认凭据

此 VM 映像的默认凭据为:

Username Password
vagrant vagrant
root vagrant

原文地址:https://blog.csdn.net/allway2

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


VMware中为CentOS设置固定IP
很多用户想体验Win10,不过又不想把当前电脑系统换成Win10,那么最简单的就是在虚拟机上安装一个Win10系统来进行体验了,这里小编推荐使用VMware Workstation虚拟机来安装Win10系统,下面小编介绍虚拟机的创建及Win10详细安装教程步骤如下:1、首
MAC OS操作系统一般来说只能在苹果设备上安装运行,小编发现一个有趣的方法在winndows 操作系统中通过虚拟机来安装苹果系统,有兴趣的用户一起随小编往下看吧!首先准备好以下工具:用于VMware 12的mac补丁,unlocke(链接: https: pan baidu
vmware player是一款能够让我们在Windows10系统中运行别的系统的软件俗称虚拟机(如win7、xp等),虽然这个平台有大量的优点和有用的功能,但是卸载起来非常困难,特别是在升级过程中。这样的问题大多出在9 0和最近的12 0版本中。在点击卸载或
虚拟机在测试和实验系统上有着很大的帮助,很多用户也喜欢在虚拟机上使用自己想要使用的系统。不过,在win10系统中打开虚拟机时,提示VMware Workstation cannot connect错误无法打开虚拟机怎么办?遇到这种情况时应该怎么办呢?下面就让
最近使用Win10系统的用户反应vmware workstation 运行失败的现象,该怎么办呢?出现这样的情况是由于软件不兼容的问题所引起的,我们可通过下面方法进行恢复。步骤如下:1、按下win+R打开运行,键入gpedit msc,,然后单击确定。将打开本地组策
vmware克隆镜像后,新的Centos无法启动网络
为访问虚拟磁盘、CD/DVD-ROM 和 SCSI 设备,虚拟机将使用创建虚拟机时默认添加的存储控制器。创建虚拟机后可以添加额外的控制器或更改控制器类型。在创建向导中时可执行这些更改。如果您在更改或添加控制器前了解不同类型的控制器的节点行为、控制器限制和兼容性,则可以避免潜在的引导问题。存储控制器技术的工作方式存储控制器对于虚拟机而言是不同类型的 SCSI 控制器,包括 BusLogic 并行、LSI Logic 并行、LSI Logic SAS 和 VMware 准虚拟 SCSI。还提供 AHCI
如今,越来越多的工作负载在虚拟机 (VM) 中运行,包括在来宾操作系统中需要更多 IO 的工作负载。在 VMware vSphere 上的 VM 中,所有虚拟磁盘 (VMDK) 都连接到默认配置中的 LSI 逻辑 SAS SCSI 适配器。此适配器无需安装额外驱动程序即可被所有操作系统识别,但并不总是提供最佳性能,尤其是在使用 SSD RAID 或 NVMe 存储时。在本文中,我们比较了虚拟存储控制器LSI Logical SAS、VMware Paravirtual和NVMe Controller。
Packer 是由 Hashicorp 创建的应用程序,它使 IT 专业人员能够自动执行其 VM 模板生成。随着混合云环境的兴起,它正迅速成为在一个工具下管理每个平台的多个 VM 映像的首选实用工具之一。它自动执行建立全新 VM 的过程,并合并自定义生成脚本以动态自定义 VM,然后转换回模板以用于在云中或本地进行部署。在 VMware 环境中使用 Packer 可以带来以下好处:与平台无关– Packer 不仅可以将相同的映像和配置部署到 VMware 环境,还可以将相同的映像和配置部署到 AWS 和
封隔器 OVA 示例我遇到了一些其他人很幸运的好例子:基础设施即代码:使用 Packer 创建 Linux (RHEL/CentOS) 基础映像 打包机-centos-7 打包模板 自动化示例 打包机-centos7-esxi 打包模板封隔器配置文件在所有这些示例之间,我创建了自己的配置并确保它们没问题:&lt;&gt; tree.├── ansible│ ├── main.yml│ └── requirements.yml├── centos7.jso.
在所有云供应商中,您都获得了基于模板的自动化构建的虚拟机——如何为 VMWare vSphere 构建自定义模板?在这种情况下,HashiCorp Packer 是您想要的工具。这篇文章将介绍创建基于打包程序的虚拟机模板的主要概念什么是打包机?Packer 映像允许您在几秒钟内启动完全配置和配置的机器,而不是几分钟或几小时。这不仅有利于生产,也有利于开发,因为开发虚拟机也可以在几秒钟内启动,而无需等待通常更长的配置时间。由于 Packer 为多个平台创建相同的映像,因此您可以在 AWS 中运行生
在这篇博客文章中,我想向您展示如何使用 Packer 自动执行 VMware vsphere 模板。我喜欢它,因为packer可以在其他平台上使用,如Hyper-V,Azure,AWS或soagar for vmware Workstation或Virtual Box。通过这篇文章,我想向您展示如何为VMware vsphere自动创建Windows Server 2016和Windows Server 2019模板。今天,我将首先在 vmware vsphere 上创建和部署。由于我想尽可能简单快捷地自
如何使用付费许可证设置Vagrant VMware提供商,以便在CentOS 8上运行的VMware Workstation Pro 15.5上运行。感谢Aaron McKay鼓励我写这篇文章,并提供 Vagrant VMware 提供商许可证。在这篇文章中,我将向您展示如何:安装 VMware Workstation Pro。 安装流浪汉。 安装 Vagrant VMware Utility。 安装Vagrant VMware插件。 安装 Vagrant VMware Provider
在本文中,我们将逐步介绍在 VMware vSphere 环境中使用 ISO 构建 Redhat Enterprise Linux 7/CentOS 7 VM。Packer对于在云端和本地构建基础镜像非常有用。Packer 是一个开源工具,由HashiCorp开发。HashiCorp 拥有非常著名的工具,如 Vagrant、Consul 和 Terraform。如今,克隆和部署是构建 VM 的最便捷方式。在某些情况下,所需版本的 OS 模板可能不存在,您可能需要在 Adhoc 中构建 VM。这就是 Pack
虽然Vagrant VMware Desktop提供商是VirtualBox的直接替代品,但还公开了一些其他功能,可让您更精细地配置计算机的VMware特定方面。提供程序的配置设置在 Vagrantfile中设置:Vagrant.configure("2") do |config| config.vm.box = "my-box" config.vm.provider "vmware_desktop" do |v| v.gui = true endend...
autoinst.xml&lt;?xml version="1.0"?&gt;&lt;!DOCTYPE profile&gt;&lt;profile xmlns="http://www.suse.com/1.0/yast2ns" xmlns:config="http://www.suse.com/1.0/configns"&gt; &lt;scripts&gt; &lt;chroot-scripts config:type="list"&gt; &lt;script&g..
Ubuntu 20.04 带来了新的安装程序,用subiquity取代了以前的Debian安装。这意味着以前用于自动/无人值守安装的任何方法都不再有效,需要更换。使用Packer成功地做到了这一点。但首先,这是一个工作的无人值守配置:ubuntu-2004.json:{ "builders": [ { "name": "ubuntu-2004", "type": "vmware-iso", "guest_os_type": "ubunt...
Packer 是由 Hashicorp 创建的应用程序,它使 IT 专业人员能够自动执行其 VM 模板生成。随着混合云环境的兴起,它正迅速成为在一个工具下管理每个平台的多个 VM 映像的首选实用工具之一。它自动执行建立全新 VM 的过程,并合并自定义生成脚本以动态自定义 VM,然后转换回模板以用于在云中或本地进行部署。在 VMware 环境中使用 Packer 可以带来以下好处:与平台无关– Packer 不仅可以将相同的映像和配置部署到 VMware 环境,还可以将相同的映像和配置部署到 AWS 和
GitHub - librenms/packer-builds: This repo is where virtual images are created and storedThis repo is where virtual images are created and stored - GitHub - librenms/packer-builds: This repo is where virtual images are created and storedhttps://github.com/