Contents

Packer

Packer

参考链接:

介绍:

Packer是用一个配置文件,在多种云计算平台上创建完全一致镜像的开源工具。Packer是由HashiCorp在2013年左右推出的。Packer可以在各种主流操作系统上运行,可以高速、并行在多种云平台上创建镜像。Packer并不能取代puppet或者Chef之类的主机配置工具,而是互为补充-Packer在创建镜像时,可以调用这些工具在基础镜像上安装、配置软件。

镜像是指一个预先安装了软件、配置好了的操作系统,这个镜像可以被用开快速创建云主机。每个云平台通常有不同的镜像格式。

Packer解决什么问题

使用预先准备好的镜像有很多好处,但是很多人都不太愿意使用这种方式,原因是创建和管理镜像实在是太复杂了。所以在Packer出现之前,镜像都是人工在云平台上搭建一个操作系统,然后通过云平台的功能转换成镜像而创建的,这对运维团队的速度影响很大,因此大家都不怎么使用镜像。

Packer的出现解决了这些问题。Packer只是一个命令行工具,易于通过终端使用,也可以很简单的放到自动化工具里边,用来自动创建任何类型的主机镜像。

使用Packer的好处

快速的基础架构实施:Packer创建的镜像可以让运维人员几秒钟内创建一个预先配置好的云主机,而不是几分钟甚至几个小时。这一好处不但对生产环境,也对测试及开发环境有益。

多平台兼容:由于Packer可以为多个平台创建完全一致的镜像,你可以在腾讯云上运行生产环境,在自己的私有云里边运行测试环境,在自己的vmware虚拟机里运行开发环境。而每个环境都完全一致。

提高稳定性:Packer在创建镜像时安装并配置软件。安装或者配置步骤中的问题会在这时候发现,而不是在穿件云主机的时候。

提高可测试性:镜像创建完成后,可以很快的启动一个云主机并对其进行测试。如果测试通过,那就可以相信,通过这个镜像创建的云主机都会通过测试。

具体用例

在持续开发、持续交付Pipeline里使用Packer

Packer是用命令行驱动的,而且不需要很多资源。因此可以很容易把Packer放到持续交付的pipeline里,创建镜像。在持续交付随后的步骤中,可以对此镜像进行测试,看基础设施的变化是不是能够通过测试。如果测试通过,那就可以相信在这一镜像基础上搭建的云主机也会工作。这对基础设施变化的稳定性和可测试性提供了基础。

保证开发与生产环境的一致性

Packer可以让开发与生产环境尽量一致。由于Packer可以为多个平台创建完全一致的镜像,你可以在腾讯云上运行生产环境,在自己的私有云里边运行测试环境,在自己的vmware虚拟机里运行开发环境。而每个环境都完全一致。把这一用例与前边的持续交付结合在一起,用户可以保障开发环境与生产环境尽量一致,从而减少出问题的可能。

build过程

Packer使用hcljson文件的模板将配置携带到各种任务中。 核心任务是Build 。 在此阶段,Packer正在使用Builders为单个平台创建机器映像。 例如。 Qemu Builder创建一个kvm / xen虚拟机映像。 下一阶段是配置。 在此任务中, 预配器 (如ansibleshell脚本)在计算机映像内执行任务。 完成后, 后处理器将处理最终任务。 例如压缩虚拟映像或将其导入特定的应用程序。

packer模板:一个 hcl template file 包含:

  • builders (必需)
  • description (可选)
  • variables (可选)
  • min_packer_version (可选)
  • provisioners (可选)
  • post-processors(可选)

示例

1、docker镜像打包

基于 ubuntu 2204 生成自定义镜像,并导出到 ubuntu.image.tar

[root@dev docker]# cat docker.pkr.hcl 
packer {
  required_plugins {
    docker = {
      version = ">= 0.0.7"
      source = "github.com/hashicorp/docker"
    }
  }
}

variable "msg" {
  type    = string
  default = "build image"
}

source "docker" "app" {
    image = "ubuntu:22.04"
    commit = "true"
}

build {
    name = "build image"
    sources = ["source.docker.app"]
    
  provisioner "shell" {
    environment_vars = [
      "FOO=hello world",
    ]
    inline = [
      "echo Adding file to Docker Container",
      "echo \"FOO is $FOO\" > example.txt",
    ]
  }
  provisioner "shell" {
    inline = ["echo This provisioner runs last ${var.msg} "]
  }

  post-processor "docker-tag" {
    repository = "docker.io/serialt/ubuntu-packer"
    tags       = ["app", "packer-app"]
    only       = ["docker.app"]
  }

}

RHEL系列系统中已经有packer命令,在下载 hashicorp packer 后为了防止冲突,可以将 hashicorp 的 packer 改名为 packer.io

# 安装 docker的插件
packer.io plugins install github.com/hashicorp/docker

# 自动补全
packer.io -autocomplete-install

# 列出已经安装的插件
[root@dev docker]# packer.io --version
1.9.1
[root@dev docker]# packer.io plugins installed
/root/.config/packer/plugins/github.com/hashicorp/docker/packer-plugin-docker_v1.0.7_x5.0_linux_amd64
/root/.config/packer/plugins/github.com/hashicorp/qemu/packer-plugin-qemu_v1.0.8_x5.0_linux_amd64
/root/.config/packer/plugins/github.com/hashicorp/qemu/packer-plugin-qemu_v1.0.9_x5.0_linux_amd64
/root/.config/packer/plugins/github.com/hashicorp/ansible/packer-plugin-ansible_v1.1.0_x5.0_linux_amd64

# 打包镜像
[root@dev docker]# packer.io  build .
build image.docker.app: output will be in this color.

==> build image.docker.app: Creating a temporary directory for sharing data...
==> build image.docker.app: Pulling Docker image: ubuntu:22.04
    build image.docker.app: 22.04: Pulling from library/ubuntu
    build image.docker.app: Digest: sha256:77906da86b60585ce12215807090eb327e7386c8fafb5402369e421f44eff17e
    build image.docker.app: Status: Image is up to date for ubuntu:22.04
    build image.docker.app: docker.io/library/ubuntu:22.04
==> build image.docker.app: Starting docker container...
    build image.docker.app: Run command: docker run -v /root/.config/packer/tmp2973759040:/packer-files -d -i -t --entrypoint=/bin/sh -- ubuntu:22.04
    build image.docker.app: Container ID: 7d3c046baf8524135b2ac56470943d872f52c9890f75a1fa47cd26f1548fd008
==> build image.docker.app: Using docker communicator to connect: 172.17.0.8
==> build image.docker.app: Provisioning with shell script: /tmp/packer-shell3125516653
    build image.docker.app: Adding file to Docker Container
==> build image.docker.app: Provisioning with shell script: /tmp/packer-shell1890782291
    build image.docker.app: This provisioner runs last build image
==> build image.docker.app: Committing the container
    build image.docker.app: Image ID: sha256:1e5475a585ac3894ab4890a8901babc0f190388a5dfab28b1c0a35a4eb2d2ff6
==> build image.docker.app: Killing the container: 7d3c046baf8524135b2ac56470943d872f52c9890f75a1fa47cd26f1548fd008
==> build image.docker.app: Running post-processor:  (type docker-tag)
    build image.docker.app (docker-tag): Tagging image: sha256:1e5475a585ac3894ab4890a8901babc0f190388a5dfab28b1c0a35a4eb2d2ff6
    build image.docker.app (docker-tag): Repository: docker.io/serialt/ubuntu-packer:app
    build image.docker.app (docker-tag): Tagging image: sha256:1e5475a585ac3894ab4890a8901babc0f190388a5dfab28b1c0a35a4eb2d2ff6
    build image.docker.app (docker-tag): Repository: docker.io/serialt/ubuntu-packer:packer-app
Build 'build image.docker.app' finished after 6 seconds 607 milliseconds.

==> Wait completed after 6 seconds 607 milliseconds

==> Builds finished. The artifacts of successful builds are:
--> build image.docker.app: Imported Docker image: sha256:1e5475a585ac3894ab4890a8901babc0f190388a5dfab28b1c0a35a4eb2d2ff6
--> build image.docker.app: Imported Docker image: docker.io/serialt/ubuntu-packer:packer-app with tags docker.io/serialt/ubuntu-packer:app docker.io/serialt/ubuntu-packer:packer-app
[root@dev docker]# 

2、Mac 上构建 VMware Fusion 镜像

基于 vagrant 构建 rockylinux iso

# 安装 vagrant
 brew tap hashicorp/tap
 brew install hashicorp/tap/hashicorp-vagrant
 
# 安装 vagrant-vmware-desktop 
# https://developer.hashicorp.com/vagrant/docs/providers/vmware/installation

vagrant plugin install vagrant-vmware-desktop
# 安装插件
[sugar@dev docker]# packer init .

# 格式化代码
[sugar@dev docker]# packer fmt .

[sugar@dev docker]# packer  build -only=vmware-iso.rockylinux-9-aarch64 .

[sugarSugar rockylinux]🐳 packer  build -only=vmware-iso.rockylinux-9-aarch64 . 
Warning: 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: virtualHW.version

  on rockylinux-9-vagrant.pkr.hcl line 115:
  (source code not available)


vmware-iso.rockylinux-9-aarch64: output will be in this color.

==> vmware-iso.rockylinux-9-aarch64: Retrieving ISO
==> vmware-iso.rockylinux-9-aarch64: Trying https://mirror.sjtu.edu.cn/rocky/9.3/isos/aarch64/Rocky-9.3-aarch64-boot.iso
==> vmware-iso.rockylinux-9-aarch64: Trying https://mirror.sjtu.edu.cn/rocky/9.3/isos/aarch64/Rocky-9.3-aarch64-boot.iso?checksum=sha256%3Ae23f647456234d11d08eea5071c8d6dc56981ec54fa2da3a6b696adbf5543453
==> vmware-iso.rockylinux-9-aarch64: https://mirror.sjtu.edu.cn/rocky/9.3/isos/aarch64/Rocky-9.3-aarch64-boot.iso?checksum=sha256%3Ae23f647456234d11d08eea5071c8d6dc56981ec54fa2da3a6b696adbf5543453 => /Users/serialt/.cache/packer/b49961728ad30951d1cbcb3007deff311f5c929d.iso
==> vmware-iso.rockylinux-9-aarch64: Configuring output and export directories...
==> vmware-iso.rockylinux-9-aarch64: Creating required virtual machine disks
==> vmware-iso.rockylinux-9-aarch64: Building and writing VMX file
==> vmware-iso.rockylinux-9-aarch64: Starting HTTP server on port 8963
==> vmware-iso.rockylinux-9-aarch64: Starting virtual machine...
    vmware-iso.rockylinux-9-aarch64: The VM will be run headless, without a GUI. If you want to
    vmware-iso.rockylinux-9-aarch64: view the screen of the VM, connect via VNC with the password "GsYgoysa" to
    vmware-iso.rockylinux-9-aarch64: vnc://127.0.0.1:5938
==> vmware-iso.rockylinux-9-aarch64: Connecting to VNC...
==> vmware-iso.rockylinux-9-aarch64: Waiting 10s for boot...
==> vmware-iso.rockylinux-9-aarch64: Typing the boot command over VNC...
==> vmware-iso.rockylinux-9-aarch64: Waiting for SSH to become available...
==> vmware-iso.rockylinux-9-aarch64: Connected to SSH!
==> vmware-iso.rockylinux-9-aarch64: Provisioning with Ansible...
    vmware-iso.rockylinux-9-aarch64: Setting up proxy adapter for Ansible....
==> vmware-iso.rockylinux-9-aarch64: Executing Ansible: ansible-playbook -e packer_build_name="rockylinux-9-aarch64" -e packer_builder_type=vmware-iso -e packer_http_addr=172.16.1.1:8963 --ssh-extra-args '-o IdentitiesOnly=yes' --extra-vars packer_provider=vmware-iso -e ansible_ssh_private_key_file=/var/folders/vm/zlhwbdyj2031f088_w9q3f8w0000gn/T/ansible-key3377589468 -i /var/folders/vm/zlhwbdyj2031f088_w9q3f8w0000gn/T/packer-provisioner-ansible4016248806 /Users/serialt/github/packer/rockylinux/ansible/*****-box.yml
    vmware-iso.rockylinux-9-aarch64:
    vmware-iso.rockylinux-9-aarch64: PLAY [RockyLinux Vagrant Box] **************************************************
    vmware-iso.rockylinux-9-aarch64:
    vmware-iso.rockylinux-9-aarch64: TASK [Gathering Facts] *********************************************************
    vmware-iso.rockylinux-9-aarch64: ok: [default]
    vmware-iso.rockylinux-9-aarch64:
    vmware-iso.rockylinux-9-aarch64: TASK [cleanup_vm : Upgrade packages] *******************************************
    vmware-iso.rockylinux-9-aarch64: ok: [default]
    vmware-iso.rockylinux-9-aarch64:
    vmware-iso.rockylinux-9-aarch64: TASK [cleanup_vm : Install python3-libselinux] *********************************
    vmware-iso.rockylinux-9-aarch64: ok: [default]
    vmware-iso.rockylinux-9-aarch64:
    vmware-iso.rockylinux-9-aarch64: TASK [cleanup_vm : Install epel] ***********************************************
    vmware-iso.rockylinux-9-aarch64: changed: [default]
    vmware-iso.rockylinux-9-aarch64:
    vmware-iso.rockylinux-9-aarch64: TASK [cleanup_vm : Change Base] ************************************************
    vmware-iso.rockylinux-9-aarch64: changed: [default]
    vmware-iso.rockylinux-9-aarch64:
    vmware-iso.rockylinux-9-aarch64: TASK [cleanup_vm : Change EPEL] ************************************************
    vmware-iso.rockylinux-9-aarch64: changed: [default]
    vmware-iso.rockylinux-9-aarch64:
    vmware-iso.rockylinux-9-aarch64: TASK [cleanup_vm : Install Vagrant public SSH key] *****************************
    vmware-iso.rockylinux-9-aarch64: changed: [default]
    vmware-iso.rockylinux-9-aarch64:
    vmware-iso.rockylinux-9-aarch64: TASK [cleanup_vm : Install NFS] ************************************************
    vmware-iso.rockylinux-9-aarch64: changed: [default]
    vmware-iso.rockylinux-9-aarch64:
    vmware-iso.rockylinux-9-aarch64: TASK [cleanup_vm : Remove old kernels] *****************************************
    vmware-iso.rockylinux-9-aarch64: changed: [default]
    vmware-iso.rockylinux-9-aarch64:
    vmware-iso.rockylinux-9-aarch64: TASK [cleanup_vm : Delete DNF cache] *******************************************
    vmware-iso.rockylinux-9-aarch64: changed: [default]
    vmware-iso.rockylinux-9-aarch64:
    vmware-iso.rockylinux-9-aarch64: TASK [cleanup_vm : Find DNF history files] *************************************
    vmware-iso.rockylinux-9-aarch64: ok: [default]
    vmware-iso.rockylinux-9-aarch64:
    vmware-iso.rockylinux-9-aarch64: TASK [cleanup_vm : Reset DNF history] ******************************************
    vmware-iso.rockylinux-9-aarch64: changed: [default] => (item={'path': '/var/lib/dnf/history.sqlite', 'mode': '0644', 'isdir': False, 'ischr': False, 'isblk': False, 'isreg': True, 'isfifo': False, 'islnk': False, 'issock': False, 'uid': 0, 'gid': 0, 'size': 184320, 'inode': 100663431, 'dev': 66306, 'nlink': 1, 'atime': 1710582140.4533856, 'mtime': 1710582171.1484861, 'ctime': 1710582171.1484861, 'gr_name': 'root', 'pw_name': 'root', 'wusr': True, 'rusr': True, 'xusr': False, 'wgrp': False, 'rgrp': True, 'xgrp': False, 'woth': False, 'roth': True, 'xoth': False, 'isuid': False, 'isgid': False})
    vmware-iso.rockylinux-9-aarch64: changed: [default] => (item={'path': '/var/lib/dnf/history.sqlite-wal', 'mode': '0644', 'isdir': False, 'ischr': False, 'isblk': False, 'isreg': True, 'isfifo': False, 'islnk': False, 'issock': False, 'uid': 0, 'gid': 0, 'size': 4503192, 'inode': 100663434, 'dev': 66306, 'nlink': 1, 'atime': 1710582171.1484861, 'mtime': 1710582170.648403, 'ctime': 1710582171.1484861, 'gr_name': 'root', 'pw_name': 'root', 'wusr': True, 'rusr': True, 'xusr': False, 'wgrp': False, 'rgrp': True, 'xgrp': False, 'woth': False, 'roth': True, 'xoth': False, 'isuid': False, 'isgid': False})
    vmware-iso.rockylinux-9-aarch64: changed: [default] => (item={'path': '/var/lib/dnf/history.sqlite-shm', 'mode': '0644', 'isdir': False, 'ischr': False, 'isblk': False, 'isreg': True, 'isfifo': False, 'islnk': False, 'issock': False, 'uid': 0, 'gid': 0, 'size': 32768, 'inode': 100663435, 'dev': 66306, 'nlink': 1, 'atime': 1710582171.1484861, 'mtime': 1710582171.1484861, 'ctime': 1710582171.1484861, 'gr_name': 'root', 'pw_name': 'root', 'wusr': True, 'rusr': True, 'xusr': False, 'wgrp': False, 'rgrp': True, 'xgrp': False, 'woth': False, 'roth': True, 'xoth': False, 'isuid': False, 'isgid': False})
    vmware-iso.rockylinux-9-aarch64:
    vmware-iso.rockylinux-9-aarch64: TASK [cleanup_vm : Find temporary files] ***************************************
    vmware-iso.rockylinux-9-aarch64: ok: [default]
    vmware-iso.rockylinux-9-aarch64:
    vmware-iso.rockylinux-9-aarch64: TASK [cleanup_vm : Remove temporary files] *************************************
    vmware-iso.rockylinux-9-aarch64: changed: [default] => (item={'path': '/tmp/systemd-private-91cc2ef6fbea453194949930f4757bbd-dbus-broker.service-8qrS8K', 'mode': '0700', 'isdir': True, 'ischr': False, 'isblk': False, 'isreg': False, 'isfifo': False, 'islnk': False, 'issock': False, 'uid': 0, 'gid': 0, 'size': 17, 'inode': 34228161, 'dev': 66306, 'nlink': 3, 'atime': 1710553183.5193176, 'mtime': 1710553183.5193176, 'ctime': 1710553183.5193176, 'gr_name': 'root', 'pw_name': 'root', 'wusr': True, 'rusr': True, 'xusr': True, 'wgrp': False, 'rgrp': False, 'xgrp': False, 'woth': False, 'roth': False, 'xoth': False, 'isuid': False, 'isgid': False})
    vmware-iso.rockylinux-9-aarch64: changed: [default] => (item={'path': '/tmp/systemd-private-91cc2ef6fbea453194949930f4757bbd-chronyd.service-FQkUQS', 'mode': '0700', 'isdir': True, 'ischr': False, 'isblk': False, 'isreg': False, 'isfifo': False, 'islnk': False, 'issock': False, 'uid': 0, 'gid': 0, 'size': 17, 'inode': 101183468, 'dev': 66306, 'nlink': 3, 'atime': 1710553183.5293176, 'mtime': 1710553183.5293176, 'ctime': 1710553183.5293176, 'gr_name': 'root', 'pw_name': 'root', 'wusr': True, 'rusr': True, 'xusr': True, 'wgrp': False, 'rgrp': False, 'xgrp': False, 'woth': False, 'roth': False, 'xoth': False, 'isuid': False, 'isgid': False})
    vmware-iso.rockylinux-9-aarch64: changed: [default] => (item={'path': '/tmp/systemd-private-91cc2ef6fbea453194949930f4757bbd-systemd-logind.service-XKZhHR', 'mode': '0700', 'isdir': True, 'ischr': False, 'isblk': False, 'isreg': False, 'isfifo': False, 'islnk': False, 'issock': False, 'uid': 0, 'gid': 0, 'size': 17, 'inode': 101183469, 'dev': 66306, 'nlink': 3, 'atime': 1710553183.5493176, 'mtime': 1710553183.5493176, 'ctime': 1710553183.5493176, 'gr_name': 'root', 'pw_name': 'root', 'wusr': True, 'rusr': True, 'xusr': True, 'wgrp': False, 'rgrp': False, 'xgrp': False, 'woth': False, 'roth': False, 'xoth': False, 'isuid': False, 'isgid': False})
    vmware-iso.rockylinux-9-aarch64: changed: [default] => (item={'path': '/tmp/ssh-XXXXMizyL7', 'mode': '0700', 'isdir': True, 'ischr': False, 'isblk': False, 'isreg': False, 'isfifo': False, 'islnk': False, 'issock': False, 'uid': 1001, 'gid': 1001, 'size': 23, 'inode': 929702, 'dev': 66306, 'nlink': 2, 'atime': 1710553187.3305352, 'mtime': 1710553187.3305352, 'ctime': 1710553187.3305352, 'gr_name': 'vagrant', 'pw_name': 'vagrant', 'wusr': True, 'rusr': True, 'xusr': True, 'wgrp': False, 'rgrp': False, 'xgrp': False, 'woth': False, 'roth': False, 'xoth': False, 'isuid': False, 'isgid': False})
    vmware-iso.rockylinux-9-aarch64: ok: [default] => (item={'path': '/tmp/ansible_find_payload_ha47ufip', 'mode': '0700', 'isdir': True, 'ischr': False, 'isblk': False, 'isreg': False, 'isfifo': False, 'islnk': False, 'issock': False, 'uid': 0, 'gid': 0, 'size': 38, 'inode': 101105760, 'dev': 66306, 'nlink': 2, 'atime': 1710582172.1685367, 'mtime': 1710582172.1685367, 'ctime': 1710582172.1685367, 'gr_name': 'root', 'pw_name': 'root', 'wusr': True, 'rusr': True, 'xusr': True, 'wgrp': False, 'rgrp': False, 'xgrp': False, 'woth': False, 'roth': False, 'xoth': False, 'isuid': False, 'isgid': False})
    vmware-iso.rockylinux-9-aarch64: changed: [default] => (item={'path': '/var/tmp/systemd-private-91cc2ef6fbea453194949930f4757bbd-dbus-broker.service-MTgzBx', 'mode': '0700', 'isdir': True, 'ischr': False, 'isblk': False, 'isreg': False, 'isfifo': False, 'islnk': False, 'issock': False, 'uid': 0, 'gid': 0, 'size': 17, 'inode': 101183467, 'dev': 66306, 'nlink': 3, 'atime': 1710553183.5193176, 'mtime': 1710553183.5193176, 'ctime': 1710553183.5193176, 'gr_name': 'root', 'pw_name': 'root', 'wusr': True, 'rusr': True, 'xusr': True, 'wgrp': False, 'rgrp': False, 'xgrp': False, 'woth': False, 'roth': False, 'xoth': False, 'isuid': False, 'isgid': False})
    vmware-iso.rockylinux-9-aarch64: changed: [default] => (item={'path': '/var/tmp/systemd-private-91cc2ef6fbea453194949930f4757bbd-chronyd.service-SczUIC', 'mode': '0700', 'isdir': True, 'ischr': False, 'isblk': False, 'isreg': False, 'isfifo': False, 'islnk': False, 'issock': False, 'uid': 0, 'gid': 0, 'size': 17, 'inode': 34228162, 'dev': 66306, 'nlink': 3, 'atime': 1710553183.5293176, 'mtime': 1710553183.5293176, 'ctime': 1710553183.5293176, 'gr_name': 'root', 'pw_name': 'root', 'wusr': True, 'rusr': True, 'xusr': True, 'wgrp': False, 'rgrp': False, 'xgrp': False, 'woth': False, 'roth': False, 'xoth': False, 'isuid': False, 'isgid': False})
    vmware-iso.rockylinux-9-aarch64: changed: [default] => (item={'path': '/var/tmp/systemd-private-91cc2ef6fbea453194949930f4757bbd-systemd-logind.service-P3lXEK', 'mode': '0700', 'isdir': True, 'ischr': False, 'isblk': False, 'isreg': False, 'isfifo': False, 'islnk': False, 'issock': False, 'uid': 0, 'gid': 0, 'size': 17, 'inode': 34228163, 'dev': 66306, 'nlink': 3, 'atime': 1710553183.5493176, 'mtime': 1710553183.5493176, 'ctime': 1710553183.5493176, 'gr_name': 'root', 'pw_name': 'root', 'wusr': True, 'rusr': True, 'xusr': True, 'wgrp': False, 'rgrp': False, 'xgrp': False, 'woth': False, 'roth': False, 'xoth': False, 'isuid': False, 'isgid': False})
    vmware-iso.rockylinux-9-aarch64:
    vmware-iso.rockylinux-9-aarch64: TASK [cleanup_vm : Find SSH host keys] *****************************************
    vmware-iso.rockylinux-9-aarch64: ok: [default]
    vmware-iso.rockylinux-9-aarch64:
    vmware-iso.rockylinux-9-aarch64: TASK [cleanup_vm : Remove SSH host keys] ***************************************
    vmware-iso.rockylinux-9-aarch64: changed: [default] => (item={'path': '/etc/ssh/ssh_host_ed25519_key', 'mode': '0640', 'isdir': False, 'ischr': False, 'isblk': False, 'isreg': True, 'isfifo': False, 'islnk': False, 'issock': False, 'uid': 0, 'gid': 996, 'size': 387, 'inode': 67384726, 'dev': 66306, 'nlink': 1, 'atime': 1710553183.9805353, 'mtime': 1710553183.5593176, 'ctime': 1710553183.5693176, 'gr_name': 'ssh_keys', 'pw_name': 'root', 'wusr': True, 'rusr': True, 'xusr': False, 'wgrp': False, 'rgrp': True, 'xgrp': False, 'woth': False, 'roth': False, 'xoth': False, 'isuid': False, 'isgid': False})
    vmware-iso.rockylinux-9-aarch64: changed: [default] => (item={'path': '/etc/ssh/ssh_host_ed25519_key.pub', 'mode': '0644', 'isdir': False, 'ischr': False, 'isblk': False, 'isreg': True, 'isfifo': False, 'islnk': False, 'issock': False, 'uid': 0, 'gid': 0, 'size': 82, 'inode': 67384727, 'dev': 66306, 'nlink': 1, 'atime': 1710553183.9805353, 'mtime': 1710553183.5593176, 'ctime': 1710553183.5693176, 'gr_name': 'root', 'pw_name': 'root', 'wusr': True, 'rusr': True, 'xusr': False, 'wgrp': False, 'rgrp': True, 'xgrp': False, 'woth': False, 'roth': True, 'xoth': False, 'isuid': False, 'isgid': False})
    vmware-iso.rockylinux-9-aarch64: changed: [default] => (item={'path': '/etc/ssh/ssh_host_ecdsa_key', 'mode': '0640', 'isdir': False, 'ischr': False, 'isblk': False, 'isreg': True, 'isfifo': False, 'islnk': False, 'issock': False, 'uid': 0, 'gid': 996, 'size': 492, 'inode': 67384728, 'dev': 66306, 'nlink': 1, 'atime': 1710553183.9805353, 'mtime': 1710553183.5693176, 'ctime': 1710553183.5693176, 'gr_name': 'ssh_keys', 'pw_name': 'root', 'wusr': True, 'rusr': True, 'xusr': False, 'wgrp': False, 'rgrp': True, 'xgrp': False, 'woth': False, 'roth': False, 'xoth': False, 'isuid': False, 'isgid': False})
    vmware-iso.rockylinux-9-aarch64: changed: [default] => (item={'path': '/etc/ssh/ssh_host_ecdsa_key.pub', 'mode': '0644', 'isdir': False, 'ischr': False, 'isblk': False, 'isreg': True, 'isfifo': False, 'islnk': False, 'issock': False, 'uid': 0, 'gid': 0, 'size': 162, 'inode': 67384729, 'dev': 66306, 'nlink': 1, 'atime': 1710553183.9805353, 'mtime': 1710553183.5693176, 'ctime': 1710553183.5693176, 'gr_name': 'root', 'pw_name': 'root', 'wusr': True, 'rusr': True, 'xusr': False, 'wgrp': False, 'rgrp': True, 'xgrp': False, 'woth': False, 'roth': True, 'xoth': False, 'isuid': False, 'isgid': False})
    vmware-iso.rockylinux-9-aarch64: changed: [default] => (item={'path': '/etc/ssh/ssh_host_rsa_key', 'mode': '0640', 'isdir': False, 'ischr': False, 'isblk': False, 'isreg': True, 'isfifo': False, 'islnk': False, 'issock': False, 'uid': 0, 'gid': 996, 'size': 2578, 'inode': 67384733, 'dev': 66306, 'nlink': 1, 'atime': 1710553183.9805353, 'mtime': 1710553183.9705353, 'ctime': 1710553183.9705353, 'gr_name': 'ssh_keys', 'pw_name': 'root', 'wusr': True, 'rusr': True, 'xusr': False, 'wgrp': False, 'rgrp': True, 'xgrp': False, 'woth': False, 'roth': False, 'xoth': False, 'isuid': False, 'isgid': False})
    vmware-iso.rockylinux-9-aarch64: changed: [default] => (item={'path': '/etc/ssh/ssh_host_rsa_key.pub', 'mode': '0644', 'isdir': False, 'ischr': False, 'isblk': False, 'isreg': True, 'isfifo': False, 'islnk': False, 'issock': False, 'uid': 0, 'gid': 0, 'size': 554, 'inode': 67384734, 'dev': 66306, 'nlink': 1, 'atime': 1710553183.9805353, 'mtime': 1710553183.9705353, 'ctime': 1710553183.9705353, 'gr_name': 'root', 'pw_name': 'root', 'wusr': True, 'rusr': True, 'xusr': False, 'wgrp': False, 'rgrp': True, 'xgrp': False, 'woth': False, 'roth': True, 'xoth': False, 'isuid': False, 'isgid': False})
    vmware-iso.rockylinux-9-aarch64:
    vmware-iso.rockylinux-9-aarch64: TASK [cleanup_vm : Remove kickstart files] *************************************
    vmware-iso.rockylinux-9-aarch64: changed: [default] => (item=/root/anaconda-ks.cfg)
    vmware-iso.rockylinux-9-aarch64: changed: [default] => (item=/root/original-ks.cfg)
    vmware-iso.rockylinux-9-aarch64:
    vmware-iso.rockylinux-9-aarch64: TASK [cleanup_vm : Truncate files] *********************************************
    vmware-iso.rockylinux-9-aarch64: changed: [default] => (item=/etc/machine-id)
    vmware-iso.rockylinux-9-aarch64: changed: [default] => (item=/etc/resolv.conf)
    vmware-iso.rockylinux-9-aarch64: changed: [default] => (item=/var/log/audit/audit.log)
    vmware-iso.rockylinux-9-aarch64: changed: [default] => (item=/var/log/wtmp)
    vmware-iso.rockylinux-9-aarch64: changed: [default] => (item=/var/log/lastlog)
    vmware-iso.rockylinux-9-aarch64: changed: [default] => (item=/var/log/btmp)
    vmware-iso.rockylinux-9-aarch64: changed: [default] => (item=/var/log/cron)
    vmware-iso.rockylinux-9-aarch64: changed: [default] => (item=/var/log/maillog)
    vmware-iso.rockylinux-9-aarch64: changed: [default] => (item=/var/log/messages)
    vmware-iso.rockylinux-9-aarch64: changed: [default] => (item=/var/log/secure)
    vmware-iso.rockylinux-9-aarch64: changed: [default] => (item=/var/log/spooler)
    vmware-iso.rockylinux-9-aarch64:
    vmware-iso.rockylinux-9-aarch64: TASK [cleanup_vm : Remove log folders.] ****************************************
    vmware-iso.rockylinux-9-aarch64: changed: [default] => (item=/var/log/anaconda)
    vmware-iso.rockylinux-9-aarch64: ok: [default] => (item=/var/log/qemu-ga)
    vmware-iso.rockylinux-9-aarch64: ok: [default] => (item=/var/log/tuned)
    vmware-iso.rockylinux-9-aarch64: ok: [default] => (item=/var/lib/cloud)
    vmware-iso.rockylinux-9-aarch64: changed: [default] => (item=/etc/hostname)
    vmware-iso.rockylinux-9-aarch64: ok: [default] => (item=/etc/machine-info)
    vmware-iso.rockylinux-9-aarch64: ok: [default] => (item=/var/lib/systemd/credential.secret)
    vmware-iso.rockylinux-9-aarch64:
    vmware-iso.rockylinux-9-aarch64: TASK [cleanup_vm : Find log files.] ********************************************
    vmware-iso.rockylinux-9-aarch64: ok: [default]
    vmware-iso.rockylinux-9-aarch64:
    vmware-iso.rockylinux-9-aarch64: TASK [cleanup_vm : Remove log files] *******************************************
    vmware-iso.rockylinux-9-aarch64: changed: [default] => (item={'path': '/var/log/tallylog', 'mode': '0600', 'isdir': False, 'ischr': False, 'isblk': False, 'isreg': True, 'isfifo': False, 'islnk': False, 'issock': False, 'uid': 0, 'gid': 0, 'size': 0, 'inode': 67378067, 'dev': 66306, 'nlink': 1, 'atime': 1710581838.485738, 'mtime': 1710581838.485738, 'ctime': 1710581930.8609118, 'gr_name': 'root', 'pw_name': 'root', 'wusr': True, 'rusr': True, 'xusr': False, 'wgrp': False, 'rgrp': False, 'xgrp': False, 'woth': False, 'roth': False, 'xoth': False, 'isuid': False, 'isgid': False})
    vmware-iso.rockylinux-9-aarch64: changed: [default] => (item={'path': '/var/log/lastlog', 'mode': '0664', 'isdir': False, 'ischr': False, 'isblk': False, 'isreg': True, 'isfifo': False, 'islnk': False, 'issock': False, 'uid': 0, 'gid': 22, 'size': 0, 'inode': 67378071, 'dev': 66306, 'nlink': 1, 'atime': 1710582043.0237055, 'mtime': 1710582174.8684106, 'ctime': 1710582174.8684106, 'gr_name': 'utmp', 'pw_name': 'root', 'wusr': True, 'rusr': True, 'xusr': False, 'wgrp': True, 'rgrp': True, 'xgrp': False, 'woth': False, 'roth': True, 'xoth': False, 'isuid': False, 'isgid': False})
    vmware-iso.rockylinux-9-aarch64: changed: [default] => (item={'path': '/var/log/maillog', 'mode': '0600', 'isdir': False, 'ischr': False, 'isblk': False, 'isreg': True, 'isfifo': False, 'islnk': False, 'issock': False, 'uid': 0, 'gid': 0, 'size': 0, 'inode': 67480832, 'dev': 66306, 'nlink': 1, 'atime': 1710581845.035738, 'mtime': 1710582175.1983953, 'ctime': 1710582175.1983953, 'gr_name': 'root', 'pw_name': 'root', 'wusr': True, 'rusr': True, 'xusr': False, 'wgrp': False, 'rgrp': False, 'xgrp': False, 'woth': False, 'roth': False, 'xoth': False, 'isuid': False, 'isgid': False})
    vmware-iso.rockylinux-9-aarch64: changed: [default] => (item={'path': '/var/log/dnf.log', 'mode': '0644', 'isdir': False, 'ischr': False, 'isblk': False, 'isreg': True, 'isfifo': False, 'islnk': False, 'issock': False, 'uid': 0, 'gid': 0, 'size': 21108, 'inode': 67384718, 'dev': 66306, 'nlink': 1, 'atime': 1710581966.1370022, 'mtime': 1710582171.3985276, 'ctime': 1710582171.3985276, 'gr_name': 'root', 'pw_name': 'root', 'wusr': True, 'rusr': True, 'xusr': False, 'wgrp': False, 'rgrp': True, 'xgrp': False, 'woth': False, 'roth': True, 'xoth': False, 'isuid': False, 'isgid': False})
    vmware-iso.rockylinux-9-aarch64: changed: [default] => (item={'path': '/var/log/dnf.librepo.log', 'mode': '0644', 'isdir': False, 'ischr': False, 'isblk': False, 'isreg': True, 'isfifo': False, 'islnk': False, 'issock': False, 'uid': 0, 'gid': 0, 'size': 11341, 'inode': 67384719, 'dev': 66306, 'nlink': 1, 'atime': 1710581966.1370022, 'mtime': 1710582171.3685226, 'ctime': 1710582171.3685226, 'gr_name': 'root', 'pw_name': 'root', 'wusr': True, 'rusr': True, 'xusr': False, 'wgrp': False, 'rgrp': True, 'xgrp': False, 'woth': False, 'roth': True, 'xoth': False, 'isuid': False, 'isgid': False})
    vmware-iso.rockylinux-9-aarch64: changed: [default] => (item={'path': '/var/log/dnf.rpm.log', 'mode': '0644', 'isdir': False, 'ischr': False, 'isblk': False, 'isreg': True, 'isfifo': False, 'islnk': False, 'issock': False, 'uid': 0, 'gid': 0, 'size': 1666, 'inode': 67384720, 'dev': 66306, 'nlink': 1, 'atime': 1710581966.1370022, 'mtime': 1710582171.3685226, 'ctime': 1710582171.3685226, 'gr_name': 'root', 'pw_name': 'root', 'wusr': True, 'rusr': True, 'xusr': False, 'wgrp': False, 'rgrp': True, 'xgrp': False, 'woth': False, 'roth': True, 'xoth': False, 'isuid': False, 'isgid': False})
    vmware-iso.rockylinux-9-aarch64: changed: [default] => (item={'path': '/var/log/hawkey.log', 'mode': '0644', 'isdir': False, 'ischr': False, 'isblk': False, 'isreg': True, 'isfifo': False, 'islnk': False, 'issock': False, 'uid': 0, 'gid': 0, 'size': 600, 'inode': 67384737, 'dev': 66306, 'nlink': 1, 'atime': 1710553189.1605353, 'mtime': 1710582171.0984778, 'ctime': 1710582171.0984778, 'gr_name': 'root', 'pw_name': 'root', 'wusr': True, 'rusr': True, 'xusr': False, 'wgrp': False, 'rgrp': True, 'xgrp': False, 'woth': False, 'roth': True, 'xoth': False, 'isuid': False, 'isgid': False})
    vmware-iso.rockylinux-9-aarch64:
    vmware-iso.rockylinux-9-aarch64: TASK [cleanup_vm : Remove random-seed] *****************************************
    vmware-iso.rockylinux-9-aarch64: changed: [default]
    vmware-iso.rockylinux-9-aarch64:
    vmware-iso.rockylinux-9-aarch64: TASK [cleanup_vm : Disable root SSH login via password] ************************
    vmware-iso.rockylinux-9-aarch64: changed: [default]
    vmware-iso.rockylinux-9-aarch64:
    vmware-iso.rockylinux-9-aarch64: TASK [cleanup_vm : Fill free space with zeroes] ********************************
    vmware-iso.rockylinux-9-aarch64: changed: [default]
    vmware-iso.rockylinux-9-aarch64:
    vmware-iso.rockylinux-9-aarch64: TASK [cleanup_vm : Detect swap partition] **************************************
    vmware-iso.rockylinux-9-aarch64: fatal: [default]: FAILED! => {"changed": true, "cmd": ["grep", "-oP", "^/dev/[\\w-]+", "/proc/swaps"], "delta": "0:00:00.004646", "end": "2024-03-16 17:43:02.922795", "msg": "non-zero return code", "rc": 1, "start": "2024-03-16 17:43:02.918149", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
    vmware-iso.rockylinux-9-aarch64: ...ignoring
    vmware-iso.rockylinux-9-aarch64:
    vmware-iso.rockylinux-9-aarch64: TASK [cleanup_vm : Get swap partition UUID] ************************************
    vmware-iso.rockylinux-9-aarch64: skipping: [default]
    vmware-iso.rockylinux-9-aarch64:
    vmware-iso.rockylinux-9-aarch64: TASK [cleanup_vm : Unmount swap partition] *************************************
    vmware-iso.rockylinux-9-aarch64: skipping: [default]
    vmware-iso.rockylinux-9-aarch64:
    vmware-iso.rockylinux-9-aarch64: TASK [cleanup_vm : Fill swap partition with zeroes] ****************************
    vmware-iso.rockylinux-9-aarch64: skipping: [default]
    vmware-iso.rockylinux-9-aarch64:
    vmware-iso.rockylinux-9-aarch64: TASK [cleanup_vm : Format swap partition] **************************************
    vmware-iso.rockylinux-9-aarch64: skipping: [default]
    vmware-iso.rockylinux-9-aarch64:
    vmware-iso.rockylinux-9-aarch64: TASK [cleanup_vm : Mount swap partition] ***************************************
    vmware-iso.rockylinux-9-aarch64: skipping: [default]
    vmware-iso.rockylinux-9-aarch64:
    vmware-iso.rockylinux-9-aarch64: TASK [cleanup_vm : Sync disc] **************************************************
    vmware-iso.rockylinux-9-aarch64: changed: [default]
    vmware-iso.rockylinux-9-aarch64:
    vmware-iso.rockylinux-9-aarch64: TASK [cleanup_vm : Clear shell history] ****************************************
    vmware-iso.rockylinux-9-aarch64: changed: [default]
    vmware-iso.rockylinux-9-aarch64:
    vmware-iso.rockylinux-9-aarch64: TASK [cleanup_vm : Check if WALinuxAgent is installed] *************************
    vmware-iso.rockylinux-9-aarch64: ok: [default]
    vmware-iso.rockylinux-9-aarch64:
    vmware-iso.rockylinux-9-aarch64: TASK [cleanup_vm : Deprovision WALinuxAgent] ***********************************
    vmware-iso.rockylinux-9-aarch64: skipping: [default]
    vmware-iso.rockylinux-9-aarch64:
    vmware-iso.rockylinux-9-aarch64: PLAY RECAP *********************************************************************
    vmware-iso.rockylinux-9-aarch64: default                    : ok=28   changed=20   unreachable=0    failed=0    skipped=6    rescued=0    ignored=1
    vmware-iso.rockylinux-9-aarch64:
==> vmware-iso.rockylinux-9-aarch64: Gracefully halting virtual machine...
    vmware-iso.rockylinux-9-aarch64: Waiting for VMware to clean up after itself...
==> vmware-iso.rockylinux-9-aarch64: Deleting unnecessary VMware files...
    vmware-iso.rockylinux-9-aarch64: Deleting: output-rockylinux-9-aarch64/rockylinux-9.plist
    vmware-iso.rockylinux-9-aarch64: Deleting: output-rockylinux-9-aarch64/rockylinux-9.scoreboard
    vmware-iso.rockylinux-9-aarch64: Deleting: output-rockylinux-9-aarch64/vmware.log
==> vmware-iso.rockylinux-9-aarch64: Compacting all attached virtual disks...
    vmware-iso.rockylinux-9-aarch64: Compacting virtual disk 1
==> vmware-iso.rockylinux-9-aarch64: Cleaning VMX prior to finishing up...
    vmware-iso.rockylinux-9-aarch64: Detaching ISO from CD-ROM device sata0:0...
    vmware-iso.rockylinux-9-aarch64: Disabling VNC server...
    vmware-iso.rockylinux-9-aarch64: Removing Ethernet Interfaces...
==> vmware-iso.rockylinux-9-aarch64: Skipping export of virtual machine...
==> vmware-iso.rockylinux-9-aarch64: Running post-processor:  (type vagrant)
==> vmware-iso.rockylinux-9-aarch64 (vagrant): Creating a dummy Vagrant box to ensure the host system can create one correctly
==> vmware-iso.rockylinux-9-aarch64 (vagrant): Creating Vagrant box for 'vmware' provider
    vmware-iso.rockylinux-9-aarch64 (vagrant): Copying: output-rockylinux-9-aarch64/disk-s001.vmdk
    vmware-iso.rockylinux-9-aarch64 (vagrant): Copying: output-rockylinux-9-aarch64/disk-s002.vmdk
    vmware-iso.rockylinux-9-aarch64 (vagrant): Copying: output-rockylinux-9-aarch64/disk-s003.vmdk
    vmware-iso.rockylinux-9-aarch64 (vagrant): Copying: output-rockylinux-9-aarch64/disk-s004.vmdk
    vmware-iso.rockylinux-9-aarch64 (vagrant): Copying: output-rockylinux-9-aarch64/disk-s005.vmdk
    vmware-iso.rockylinux-9-aarch64 (vagrant): Copying: output-rockylinux-9-aarch64/disk-s006.vmdk
    vmware-iso.rockylinux-9-aarch64 (vagrant): Copying: output-rockylinux-9-aarch64/disk-s007.vmdk
    vmware-iso.rockylinux-9-aarch64 (vagrant): Copying: output-rockylinux-9-aarch64/disk-s008.vmdk
    vmware-iso.rockylinux-9-aarch64 (vagrant): Copying: output-rockylinux-9-aarch64/disk-s009.vmdk
    vmware-iso.rockylinux-9-aarch64 (vagrant): Copying: output-rockylinux-9-aarch64/disk-s010.vmdk
    vmware-iso.rockylinux-9-aarch64 (vagrant): Copying: output-rockylinux-9-aarch64/disk.vmdk
    vmware-iso.rockylinux-9-aarch64 (vagrant): Copying: output-rockylinux-9-aarch64/rockylinux-9.nvram
    vmware-iso.rockylinux-9-aarch64 (vagrant): Copying: output-rockylinux-9-aarch64/rockylinux-9.vmsd
    vmware-iso.rockylinux-9-aarch64 (vagrant): Copying: output-rockylinux-9-aarch64/rockylinux-9.vmx
    vmware-iso.rockylinux-9-aarch64 (vagrant): Copying: output-rockylinux-9-aarch64/rockylinux-9.vmxf
    vmware-iso.rockylinux-9-aarch64 (vagrant): Compressing: Vagrantfile
    vmware-iso.rockylinux-9-aarch64 (vagrant): Compressing: disk-s001.vmdk
    vmware-iso.rockylinux-9-aarch64 (vagrant): Compressing: disk-s002.vmdk
    vmware-iso.rockylinux-9-aarch64 (vagrant): Compressing: disk-s003.vmdk
    vmware-iso.rockylinux-9-aarch64 (vagrant): Compressing: disk-s004.vmdk
    vmware-iso.rockylinux-9-aarch64 (vagrant): Compressing: disk-s005.vmdk
    vmware-iso.rockylinux-9-aarch64 (vagrant): Compressing: disk-s006.vmdk
    vmware-iso.rockylinux-9-aarch64 (vagrant): Compressing: disk-s007.vmdk
    vmware-iso.rockylinux-9-aarch64 (vagrant): Compressing: disk-s008.vmdk
    vmware-iso.rockylinux-9-aarch64 (vagrant): Compressing: disk-s009.vmdk
    vmware-iso.rockylinux-9-aarch64 (vagrant): Compressing: disk-s010.vmdk
    vmware-iso.rockylinux-9-aarch64 (vagrant): Compressing: disk.vmdk
    vmware-iso.rockylinux-9-aarch64 (vagrant): Compressing: metadata.json
    vmware-iso.rockylinux-9-aarch64 (vagrant): Compressing: rockylinux-9.nvram
    vmware-iso.rockylinux-9-aarch64 (vagrant): Compressing: rockylinux-9.vmsd
    vmware-iso.rockylinux-9-aarch64 (vagrant): Compressing: rockylinux-9.vmx
    vmware-iso.rockylinux-9-aarch64 (vagrant): Compressing: rockylinux-9.vmxf
Build 'vmware-iso.rockylinux-9-aarch64' finished after 8 minutes 16 seconds.

==> Wait completed after 8 minutes 16 seconds

==> Builds finished. The artifacts of successful builds are:
--> vmware-iso.rockylinux-9-aarch64: 'vmware' provider box: RockyLinux-9-Vagrant-9.3-20240316.aarch64.vmware.box
[sugarSugar rockylinux]🐳 ls
RockyLinux-9-Vagrant-9.3-20240316.aarch64.vmware.box rockylinux-9-vagrant.pkr.hcl
ansible                                              variables.pkr.hcl
http                                                 versions.pkr.hcl

3、linux 上构建qemu镜像

[root@dev cloud-images]# packer.io build -var qemu_binary="/usr/libexec/qemu-kvm"  -only=qemu.almalinux-8-gencloud-x86_64 .
qemu.almalinux-8-gencloud-x86_64: output will be in this color.

==> qemu.almalinux-8-gencloud-x86_64: Retrieving ISO
==> qemu.almalinux-8-gencloud-x86_64: Trying https://mirror.sjtu.edu.cn/almalinux/8.8/isos/x86_64/AlmaLinux-8.8-x86_64-boot.iso
==> qemu.almalinux-8-gencloud-x86_64: Trying https://mirror.sjtu.edu.cn/almalinux/8.8/isos/x86_64/AlmaLinux-8.8-x86_64-boot.iso?checksum=sha256%3A016e59963c2c3bd4c99c18ac957573968e23da51131104568fbf389b11df3e05
==> qemu.almalinux-8-gencloud-x86_64: https://mirror.sjtu.edu.cn/almalinux/8.8/isos/x86_64/AlmaLinux-8.8-x86_64-boot.iso?checksum=sha256%3A016e59963c2c3bd4c99c18ac957573968e23da51131104568fbf389b11df3e05 => /root/.cache/packer/cd61467f6ca2d6762e243b18a2705c8b210e11aa.iso
==> qemu.almalinux-8-gencloud-x86_64: Starting HTTP server on port 8889
==> qemu.almalinux-8-gencloud-x86_64: Found port for communicator (SSH, WinRM, etc): 2564.
==> qemu.almalinux-8-gencloud-x86_64: Looking for available port between 5900 and 6000 on 127.0.0.1
==> qemu.almalinux-8-gencloud-x86_64: Starting VM, booting from CD-ROM
    qemu.almalinux-8-gencloud-x86_64: The VM will be run headless, without a GUI. If you want to
    qemu.almalinux-8-gencloud-x86_64: view the screen of the VM, connect via VNC without a password to
    qemu.almalinux-8-gencloud-x86_64: vnc://127.0.0.1:5955
==> qemu.almalinux-8-gencloud-x86_64: Waiting 10s for boot...
==> qemu.almalinux-8-gencloud-x86_64: Connecting to VM via VNC (127.0.0.1:5955)
==> qemu.almalinux-8-gencloud-x86_64: Typing the boot commands over VNC...
    qemu.almalinux-8-gencloud-x86_64: Not using a NetBridge -- skipping StepWaitGuestAddress
==> qemu.almalinux-8-gencloud-x86_64: Using SSH communicator to connect: 127.0.0.1
==> qemu.almalinux-8-gencloud-x86_64: Waiting for SSH to become available...
==> qemu.almalinux-8-gencloud-x86_64: Connected to SSH!
==> qemu.almalinux-8-gencloud-x86_64: Provisioning with Ansible...
    qemu.almalinux-8-gencloud-x86_64: Setting up proxy adapter for Ansible....
    qemu.almalinux-8-gencloud-x86_64: Executing Ansible Galaxy
    qemu.almalinux-8-gencloud-x86_64: Starting galaxy role install process
    qemu.almalinux-8-gencloud-x86_64: [WARNING]: The requirements file '/opt/packer/cloud-
    qemu.almalinux-8-gencloud-x86_64: - downloading role 'vbox_guest', owned by ezamriy
    qemu.almalinux-8-gencloud-x86_64: images/ansible/requirements.yml' contains collections which will be ignored. To
    qemu.almalinux-8-gencloud-x86_64: install these collections run 'ansible-galaxy collection install -r' or to
    qemu.almalinux-8-gencloud-x86_64: install both at the same time run 'ansible-galaxy install -r' without a custom
    qemu.almalinux-8-gencloud-x86_64: install path.
    qemu.almalinux-8-gencloud-x86_64: - downloading role from https://github.com/ezamriy/ansible-role-vbox_guest/archive/v0.2.0.tar.gz
    qemu.almalinux-8-gencloud-x86_64:  [ERROR]: failed to download the file: The read operation timed out
    qemu.almalinux-8-gencloud-x86_64: [WARNING]: - ezamriy.vbox_guest was NOT installed successfully.
    qemu.almalinux-8-gencloud-x86_64: ERROR! - you can use --ignore-errors to skip failed roles and finish processing the list.
==> qemu.almalinux-8-gencloud-x86_64: Provisioning step had errors: Running the cleanup provisioner, if present...
==> qemu.almalinux-8-gencloud-x86_64: Deleting output directory...
Build 'qemu.almalinux-8-gencloud-x86_64' errored after 17 minutes 14 seconds: Error executing Ansible: Error executing Ansible Galaxy: Non-zero exit status: exit status 1

==> Wait completed after 17 minutes 14 seconds

==> Some builds didn't complete successfully and had errors:
--> qemu.almalinux-8-gencloud-x86_64: Error executing Ansible: Error executing Ansible Galaxy: Non-zero exit status: exit status 1

==> Builds finished but no artifacts were created.
[root@dev cloud-images]# 
[root@dev cloud-images]# 
[root@dev cloud-images]#