forked from msvsphere/cloud-images
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
2.7 KiB
86 lines
2.7 KiB
/**
|
|
* 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"
|
|
}
|
|
}
|
|
}
|