This repository contains files used by Packer to create CentOS images for different hypervisors.
- VirtualBox (
vbox
) - VMware (
vmware
) - KVM (
kvm
)
In order to create an image to be used with Vagrant, you need to use one of these builders:
vbox4vagrant
vmware4vagrant
kvm4vagrant
Optional variables and their defaults:
build_number = {{timestamp}}
centos_arch = x86_64
disk_size = 10000
headless = true
iso_base_url = http://ftp.heanet.ie/pub/centos
iso_checksum_type = sha256
password = password
timeout = 30m
username = root
In addition, several variable files are available to precise which version of CentOS should be used via the Packer -var-file
option.
In order to use this template behind an explicit proxy, you need to add this last one in some files:
-
In the kickstart file:
url --mirrorlist="http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os" --proxy=<explicit proxy>
-
In the
*-tools.sh
scripts, you need to add an option to theyum
command:# Install dependencies yum --setopt=proxy=<explicit proxy> install -y ...
-
In the
vagrant.sh
script, before thecurl
command:# Download the insecure public key from GitHub official repository export https_proxy=<explicit proxy> curl \ --location \ --output /home/vagrant/.ssh/authorized_keys \ https://github.com/mitchellh/vagrant/raw/master/keys/vagrant.pub
To create an image of CentOS 7 with all the hypervisors, including Vagrant images:
packer build -var-file centos7.json packer-centos.json
To create an image of CentOS 6 with all the hypervisors, including Vagrant images:
packer build -var-file centos6.json packer-centos.json
To create a Vagrant CentOS 7 image only with VirtualBox and overwrite some default variables' value (here, headless
and timeout
):
packer build -only vbox4vagrant -var 'headless=false' -var 'timeout=1h' -var-file centos7.json packer-centos.json