/** * Packer template for building MSVSphere 9 Vagrant boxes. */ source "virtualbox-iso" "msvsphere-9-vagrant-x86_64" { iso_url = var.iso_url_9_x86_64 iso_checksum = var.iso_checksum_9_x86_64 boot_command = var.vagrant_boot_cmd_9_x86_64_bios boot_wait = var.boot_wait cpus = var.cpus memory = var.memory disk_size = var.vagrant_disk_size headless = var.headless http_directory = var.http_directory guest_os_type = "RedHat_64" shutdown_command = var.vagrant_shutdown_command ssh_username = var.vagrant_ssh_username ssh_password = var.vagrant_ssh_password ssh_timeout = var.ssh_timeout hard_drive_interface = "sata" iso_interface = "sata" vboxmanage = [ ["modifyvm", "{{.Name}}", "--nat-localhostreachable1", "on"], ] vboxmanage_post = [ ["modifyvm", "{{.Name}}", "--memory", var.post_memory], ["modifyvm", "{{.Name}}", "--cpus", var.post_cpus] ] } source "vmware-iso" "msvsphere-9-vagrant-x86_64" { iso_url = var.iso_url_9_x86_64 iso_checksum = var.iso_checksum_9_x86_64 boot_command = var.vagrant_boot_cmd_9_x86_64_bios boot_wait = var.boot_wait cpus = var.cpus memory = var.memory disk_size = var.vagrant_disk_size headless = var.headless http_directory = var.http_directory guest_os_type = "centos-64" shutdown_command = var.vagrant_shutdown_command ssh_username = var.vagrant_ssh_username ssh_password = var.vagrant_ssh_password ssh_timeout = var.ssh_timeout vmx_data = { "cpuid.coresPerSocket" : "1" } vmx_data_post = { "memsize" : var.post_memory "numvcpus" : var.post_cpus } vmx_remove_ethernet_interfaces = true } build { sources = [ "sources.virtualbox-iso.msvsphere-9-vagrant-x86_64", "sources.vmware-iso.msvsphere-9-vagrant-x86_64" ] provisioner "ansible" { playbook_file = "ansible/vagrant.yml" galaxy_file = "ansible/requirements.yml" roles_path = "ansible/roles" collections_path = "ansible/collections" ansible_env_vars = [ "ANSIBLE_PIPELINING=True", "ANSIBLE_REMOTE_TEMP=/tmp", "ANSIBLE_SSH_ARGS='-o ControlMaster=no -o ControlPersist=180s -o ServerAliveInterval=120s -o TCPKeepAlive=yes -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedKeyTypes=+ssh-rsa'" ] extra_arguments = [ "--extra-vars", "packer_provider=${source.type}" ] } post-processors { post-processor "vagrant" { compression_level = "9" output = "MSVSphere-${var.os_version_9}-${formatdate("YYYYMMDD", timestamp())}.{{.Provider}}.x86_64.box" } } }