github.com/hashicorp/packer@v1.14.3/examples/hcl/linux/source.vsphere-iso.pkr.hcl (about)

     1  // I use the following config with direnv and set the following values:
     2  // export PKR_VAR_bastion_host=""
     3  // export PKR_VAR_bastion_user=""
     4  // export PKR_VAR_datacenter_name=""
     5  // export PKR_VAR_esxi_host=""
     6  // export PKR_VAR_esxi_password=""
     7  // export PKR_VAR_esxi_user=""
     8  // export PKR_VAR_vcenter_endpoint=""
     9  // export PKR_VAR_vcenter_password=""
    10  // export PKR_VAR_vcenter_user=""
    11  // export PKR_VAR_vm_ip=""
    12  // export PKR_VAR_gateway_ip=""
    13  // ...
    14  
    15  variable "vcenter_endpoint" { type = string }
    16  variable "vcenter_user"     { type = string }
    17  variable "vcenter_password" { type = string }
    18  variable "esxi_host"        { type = string }
    19  variable "esxi_password"    { type = string }
    20  variable "esxi_user"        { type = string }
    21  variable "datacenter_name"  { type = string }
    22  variable "vm_ip"            { type = string }
    23  variable "gateway_ip"       { type = string }
    24  variable "datastore" {
    25      default = "datastore1"
    26  }
    27  variable "remote_private_key_file_path" {
    28      type = string
    29  }
    30  
    31  source "vsphere-iso" "base-ubuntu-amd64" {
    32      vcenter_server      = var.vcenter_endpoint
    33      username            = var.vcenter_user
    34      password            = var.vcenter_password
    35      host                = var.esxi_host
    36      insecure_connection = true
    37  
    38      datacenter      = var.datacenter_name
    39      datastore       = "datastore1"
    40  
    41      ssh_password    = "vagrant"
    42      ssh_username    = "vagrant"
    43  
    44      CPUs            = 1
    45      RAM             = 512 * 2
    46      RAM_reserve_all = true
    47      
    48      disk_controller_type = "pvscsi"
    49      floppy_files = [
    50          "etc/http/preseed_hardcoded_ip.cfg"
    51      ]
    52      guest_os_type = "ubuntu64Guest"
    53      network_adapters {
    54          network      = "VM Network"
    55          network_card = "vmxnet3"
    56      }
    57      storage {
    58          disk_size             = 32768
    59          disk_thin_provisioned = true
    60      }
    61  
    62      boot_command = [
    63          "<enter><wait><f6><wait><esc><wait>",
    64          "<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
    65          "<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
    66          "<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
    67          "<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
    68          "<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
    69          "<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
    70          "<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
    71          "<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
    72          "<bs><bs><bs>",
    73          "/install/vmlinuz",
    74          " initrd=/install/initrd.gz",
    75          " priority=critical",
    76          " locale=en_US",
    77          " file=/media/preseed_hardcoded_ip.cfg",
    78          " netcfg/get_ipaddress=${var.vm_ip}",
    79          " netcfg/get_gateway=${var.gateway_ip}",
    80          "<enter>"
    81      ]
    82  }
    83  
    84  
    85  source "vsphere-iso" "base-alpine-amd64" {
    86      vcenter_server      = var.vcenter_endpoint
    87      username            = var.vcenter_user
    88      password            = var.vcenter_password
    89      host                = var.esxi_host
    90      insecure_connection = true
    91  
    92      datacenter      = var.datacenter_name
    93      datastore       = "datastore1"
    94  
    95      ssh_username            = "root"
    96      ssh_password            = var.alpine_password
    97  
    98      CPUs            = 1
    99      RAM             = 512 * 2
   100      RAM_reserve_all = true
   101  
   102      guest_os_type           = "otherLinux64Guest"
   103  
   104      floppy_files            = local.floppy_files_alpine_vsphere
   105  
   106      network_adapters {
   107          network      = "VM Network"
   108          network_card = "vmxnet3"
   109      }
   110  
   111      storage {
   112          disk_size             = 32768
   113          disk_thin_provisioned = true
   114      }
   115  }