Created
July 20, 2020 21:45
-
-
Save pmanno/37529faf0bd3006a7c8c285bdc76c1d7 to your computer and use it in GitHub Desktop.
packer build file
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"variables": { | |
"PACKER_ENVIRONMENT_TARGET": "{{ env `PACKER_ENVIRONMENT_TARGET` }}", | |
"PACKER_ESX_USERNAME": "{{ env `PACKER_ESX_USERNAME` }}", | |
"PACKER_ESX_PASSWORD": "{{ env `PACKER_ESX_PASSWORD` }}", | |
"PACKER_ESX_HOST": "{{ env `PACKER_ESX_HOST` }}", | |
"PACKER_ESX_DATASTORE": "{{ env `PACKER_ESX_DATASTORE` }}", | |
"PACKER_VM_CPU": "{{ env `PACKER_VM_CPU` }}", | |
"PACKER_VM_RAM": "{{ env `PACKER_VM_RAM` }}", | |
"PACKER_VM_DISK": "{{ env `PACKER_VM_DISK` }}", | |
"PACKER_ISO_URL": "{{ env `PACKER_ISO_URL` }}", | |
"PACKER_ISO_CHECKSUM": "{{ env `PACKER_ISO_CHECKSUM` }}", | |
"PACKER_ISO_CHECKSUM_TYPE": "{{ env `PACKER_ISO_CHECKSUM_TYPE` }}", | |
"PACKER_VM_FQDN": "{{ env `PACKER_VM_FQDN` }}", | |
"PACKER_SSH_USERNAME": "{{ env `PACKER_SSH_USERNAME` }}", | |
"PACKER_DNS_ADMIN_USERNAME": "{{ env `PACKER_DNS_ADMIN_USERNAME` }}", | |
"PACKER_DNS_ADMIN_PASSWORD": "{{ env `PACKER_DNS_ADMIN_PASSWORD` }}" | |
}, | |
"builders": [ | |
{ | |
"boot_command": [ | |
"<enter><f6><esc>", | |
"<bs><bs><bs><bs><bs>", | |
"<bs><bs><bs><bs><bs>", | |
"<bs><bs><bs><bs><bs>", | |
"<bs><bs><bs><bs><bs>", | |
"<bs><bs><bs><bs><bs>", | |
"<bs><bs><bs><bs><bs>", | |
"<bs><bs><bs><bs><bs>", | |
"<bs><bs><bs><bs><bs>", | |
"<bs><bs><bs><bs><bs>", | |
"<bs><bs><bs><bs><bs>", | |
"<bs><bs><bs><bs><bs>", | |
"<bs><bs><bs><bs><bs>", | |
"<bs><bs><bs><bs><bs>", | |
"<bs><bs><bs><bs><bs>", | |
"<bs><bs><bs><bs><bs>", | |
"<bs><bs><bs><bs><bs>", | |
"<bs><bs><bs>", | |
"auto preseed/file=/floppy/preseed.cfg ", | |
"locale=en_US keyboard-configuration/modelcode=SKIP ", | |
"initrd=/install/initrd.gz quiet --- ", | |
"<enter>" | |
], | |
"type": "vmware-iso", | |
"vm_name": "{{ user `PACKER_VM_FQDN`}}", | |
"communicator": "ssh", | |
"ssh_pty": "true", | |
"disk_size": "{{ user `PACKER_VM_DISK` }}", | |
"disk_type_id": "thin", | |
"skip_compaction": "true", | |
"iso_url": "{{ user `PACKER_ISO_URL` }}", | |
"iso_checksum": "sha256:{{ user `PACKER_ISO_CHECKSUM` }}", | |
"shutdown_command": "sudo shutdown -h now", | |
"ssh_username": "packer", | |
"ssh_agent_auth": true, | |
"ssh_timeout": "3600s", | |
"guest_os_type": "Ubuntu-64", | |
"remote_type": "esx5", | |
"remote_host": "{{ user `PACKER_ESX_HOST` }}", | |
"remote_username": "{{ user `PACKER_ESX_USERNAME` }}", | |
"remote_password": "{{ user `PACKER_ESX_PASSWORD` }}", | |
"remote_datastore": "{{ user `PACKER_ESX_DATASTORE` }}", | |
"remote_cache_datastore": "{{ user `PACKER_ESX_DATASTORE` }}", | |
"remote_cache_directory": "packer_cache", | |
"vmx_data": { | |
"mem.hotadd": "TRUE", | |
"scsi0.virtualdev": "pvscsi", | |
"numvcpus": "{{ user `PACKER_VM_CPU` }}", | |
"memsize": "{{ user `PACKER_VM_RAM` }}", | |
"ethernet0.networkName": "VM Network", | |
"ethernet0.present": "TRUE", | |
"ethernet0.startConnected": "TRUE", | |
"ethernet0.virtualDev": "vmxnet3", | |
"ethernet0.addressType": "generated", | |
"ethernet0.generatedAddressOffset": "0", | |
"ethernet0.wakeOnPcktRcv": "FALSE" | |
}, | |
"vmx_data_post": { | |
"uuid.bios": "{{ uuid }}", | |
"vc.uuid": "{{ uuid }}", | |
"uuid.action": "create" | |
}, | |
"floppy_files": "../GLOBAL/Linux/Ubuntu/preseed.cfg", | |
"skip_export": "true", | |
"keep_registered": "true" | |
} | |
], | |
"provisioners": [ | |
{ | |
"type": "shell", | |
"inline": [ | |
"sudo apt -y install open-vm-tools", | |
"sudo systemctl enable open-vm-tools", | |
"sudo systemctl start open-vm-tools", | |
"sudo echo -e '[all]\n'`hostname -I` > /tmp/hosts" | |
] | |
}, | |
{ | |
"type": "file", | |
"direction": "download", | |
"source": "/tmp/hosts", | |
"destination": "./hosts_{{ user `PACKER_VM_FQDN` }}" | |
}, | |
{ | |
"type": "shell-local", | |
"command": "rm -rf galaxy;ansible-galaxy install -p galaxy -r requirements_{{ user `PACKER_VM_FQDN` }}.yml" | |
}, | |
{ | |
"type": "shell-local", | |
"command": "ansible-playbook -i hosts_{{ user `PACKER_VM_FQDN` }} -e\"ansible_become=True ansible_user={{ user `PACKER_SSH_USERNAME` }} environment_target={{ user `PACKER_ENVIRONMENT_TARGET` }} vm_fqdn={{ user `PACKER_VM_FQDN` }}\" playbook_{{ user `PACKER_VM_FQDN` }}.yml" | |
}, | |
{ | |
"type": "shell-local", | |
"inline": ["P=$(cat hosts_{{ user `PACKER_VM_FQDN` }} | tail -1); cd ../GLOBAL/Ansible; ansible-playbook -i hosts -e\"ansible_user={{ user `PACKER_DNS_ADMIN_USERNAME` }} ansible_password={{ user `PACKER_DNS_ADMIN_PASSWORD` }} vm_fqdn={{ user `PACKER_VM_FQDN` }} vm_ip=$P\" setDns.yml"] | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment