From f3a6462b364a7e0467b33042c38085e82c9b6fd3 Mon Sep 17 00:00:00 2001 From: Sergei Bobkov Date: Thu, 19 Sep 2024 22:10:53 +0300 Subject: [PATCH] Added packer Debian 12 build --- packer/README.md | 2 + packer/build.sh | 0 packer/linux/README.md | 8 ++ packer/linux/build-debian-12-amd64.sh | 18 ++++ packer/linux/debian-12-x64/conf.pkrvars.hcl | 26 ++++++ .../linux/debian-12-x64/debian-12-x64.pkr.hcl | 84 +++++++++++++++++++ packer/linux/debian-12-x64/variables.pkr.hcl | 64 ++++++++++++++ 7 files changed, 202 insertions(+) create mode 100644 packer/README.md create mode 100755 packer/build.sh create mode 100644 packer/linux/README.md create mode 100755 packer/linux/build-debian-12-amd64.sh create mode 100644 packer/linux/debian-12-x64/conf.pkrvars.hcl create mode 100644 packer/linux/debian-12-x64/debian-12-x64.pkr.hcl create mode 100644 packer/linux/debian-12-x64/variables.pkr.hcl diff --git a/packer/README.md b/packer/README.md new file mode 100644 index 0000000..c7aa856 --- /dev/null +++ b/packer/README.md @@ -0,0 +1,2 @@ +# Packer scripts + diff --git a/packer/build.sh b/packer/build.sh new file mode 100755 index 0000000..e69de29 diff --git a/packer/linux/README.md b/packer/linux/README.md new file mode 100644 index 0000000..b342ea5 --- /dev/null +++ b/packer/linux/README.md @@ -0,0 +1,8 @@ +# Packer builds files and scripts + +For secrets and cred vars create $HOME/.secret/.packer/vcsrv-creds.pkrvars.hcl
+ +`vcenter_server = "vcs8srv01.lab.loc"`
+`vcenter_username = "administrator@vsphere.local"`
+`vcenter_password = "XXXXXXXXX"`
+
diff --git a/packer/linux/build-debian-12-amd64.sh b/packer/linux/build-debian-12-amd64.sh new file mode 100755 index 0000000..f1f6eef --- /dev/null +++ b/packer/linux/build-debian-12-amd64.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +# => For logs: +#export PACKER_LOG_PATH=./build-debian-12-amd64.log +export PACKER_LOG=1 + + +packer="/usr/bin/packer" + +creds_vars_file="$HOME/.secret/.packer/vcsrv-creds.pkrvars.hcl" +build_file="$HOME/packer/linux/debian" + +$packer init $HOME/packer/linux/debian-12-x64/ + +$packer build -force \ +-var-file="$creds_vars_file" \ +-var-file="$HOME/packer/linux/debian-12-x64/conf.pkrvars.hcl" \ +/root/packer/linux/debian-12-x64/ diff --git a/packer/linux/debian-12-x64/conf.pkrvars.hcl b/packer/linux/debian-12-x64/conf.pkrvars.hcl new file mode 100644 index 0000000..7a4bfff --- /dev/null +++ b/packer/linux/debian-12-x64/conf.pkrvars.hcl @@ -0,0 +1,26 @@ +vcenter_datacenter = "DC01" +vcenter_cluster = "Cluster01" +vcenter_host = "esxi8-01.lab.loc" +vcenter_folder = "VLAN-0221" +vcenter_datastore = "Cluster01-LUN02" + + +vm_name = "zzzzzzz" +vm_num_cpu = 1 +vm_ram = 1024 +vm_hardware_version = "21" +vm_guest_os_type = "debian12_64Guest" +vm_disk_size = "4096" +vm_network = "VLAN-0221" +vm_network_nic_type = "vmxnet3" + + +iso_checksum = "none" +os_iso_paths = "[Cluster01-LUN01] ISO/debian-12.7.0-amd64-netinst.iso" +os_iso_url = "https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-12.7.0-amd64-netinst.iso" + + + +connection_username = "user" +connection_password = "user" + diff --git a/packer/linux/debian-12-x64/debian-12-x64.pkr.hcl b/packer/linux/debian-12-x64/debian-12-x64.pkr.hcl new file mode 100644 index 0000000..19a202a --- /dev/null +++ b/packer/linux/debian-12-x64/debian-12-x64.pkr.hcl @@ -0,0 +1,84 @@ +packer { + required_version = ">= 1.11.0" + required_plugins { + vsphere = { + source = "github.com/hashicorp/vsphere" + version = ">= 1.4.0" + } + ansible = { + source = "github.com/hashicorp/ansible" + version = ">= 1.1.1" + } + git = { + source = "github.com/ethanmdavidson/git" + version = ">= 0.6.2" + } + } +} + +// BLOCK: locals +// Defines the local variables. +//locals { +// bbbbb = "aaaa" +//} + +source "vsphere-iso" "debian-12" { + vcenter_server = var.vcenter_server + username = var.vcenter_username + password = var.vcenter_password + insecure_connection = true + datacenter = var.vcenter_datacenter + cluster = var.vcenter_cluster + host = var.vcenter_host + datastore = var.vcenter_datastore + folder = var.vcenter_folder +# convert_to_template = true +// **************** + vm_name = var.vm_name + CPUs = var.vm_num_cpu + RAM = var.vm_ram + vm_version = var.vm_hardware_version + guest_os_type = var.vm_guest_os_type + disk_controller_type = ["pvscsi"] + storage { + disk_size = var.vm_disk_size + disk_thin_provisioned = true + } + network_adapters { + network = var.vm_network + network_card = var.vm_network_nic_type + } +// **************** + ip_wait_timeout = "45m" + ssh_username = var.connection_username + ssh_password = var.connection_password + ssh_timeout = "12h" + ssh_port = "22" + ssh_handshake_attempts = "20" + shutdown_timeout = "15m" +// **************** + iso_checksum = var.iso_checksum +// iso_url = var.os_iso_url + iso_paths = [var.os_iso_paths] +// **************** + + boot_wait = "5s" + boot_command = [ + "", + "", + "/install.amd/vmlinuz ", + "ipv6.disable=1 ", + "auto=true ", + "netcfg/dhcp_timeout=30 ", + "priority=critical locale=en_US ", + "preseed/url=http://aassdd.ru/.my-preseed/debian/preseed.cfg ", + "--- ", + "initrd=/install.amd/initrd.gz" + ] +} + + +build { + name = "template" + sources = ["source.vsphere-iso.debian-12"] +} diff --git a/packer/linux/debian-12-x64/variables.pkr.hcl b/packer/linux/debian-12-x64/variables.pkr.hcl new file mode 100644 index 0000000..dc98a5e --- /dev/null +++ b/packer/linux/debian-12-x64/variables.pkr.hcl @@ -0,0 +1,64 @@ + +variable "vcenter_server" { + default = "" + sensitive = true +} + +variable "vcenter_username" { + default = "" + sensitive = true +} + +variable "vcenter_password" { + default = "" + sensitive = true +} + + +variable "vcenter_datacenter" { + default = "" + sensitive = true +} + + +variable "vcenter_cluster" { + default = "" + sensitive = true +} + +variable "vcenter_host" { + default = "" + sensitive = true +} + + +variable "vcenter_datastore" { + default = "" + sensitive = true +} + +variable "vcenter_folder" { + default = "" + sensitive = true +} + +// ************************************ +variable "vm_name" { default = "" } +variable "vm_num_cpu" { default = "" } +variable "vm_ram" { default = "" } +variable "vm_hardware_version" { default = "" } +variable "vm_guest_os_type" { default = "" } +variable "vm_disk_size" { default = "" } +variable "vm_network" { default = "" } +variable "vm_network_nic_type" { default = "" } +variable "os_version" { default = "" } +variable "os_family" { default = "" } +variable "os_iso_url" { default = "" } +// ************************************ +variable "connection_username" { default = "" } +variable "connection_password" { default = "" } +// ************************************ +variable "iso_checksum" { default = "" } +variable "os_iso_paths" { default = "" } +variable "iso_url" { default = "" } +variable "boot_command" { default = "" }