Beginning vmware-iso

This commit is contained in:
Greg Hellings
2023-08-14 01:05:21 -05:00
parent 3fb67dfeba
commit 15044c8fb9
6 changed files with 45 additions and 67 deletions
+1 -1
View File
@@ -5,7 +5,7 @@ inputs:
version: version:
description: Version of Packer to install description: Version of Packer to install
required: true required: true
default: "1.8.0" default: "1.9.2"
pup_version: pup_version:
description: Version of Pup to install description: Version of Pup to install
required: true required: true
+3 -60
View File
@@ -22,7 +22,7 @@ jobs:
- name: Run syntax check - name: Run syntax check
run: | run: |
set -exo pipefail set -exo pipefail
for vars in distros/*; do for vars in $(find distros/ -name '*.pkrvars.hcl'); do
if [[ "${vars}" == *.sh ]]; then if [[ "${vars}" == *.sh ]]; then
"./${vars}" "./${vars}"
vars=${vars%.sh} vars=${vars%.sh}
@@ -30,34 +30,6 @@ jobs:
packer validate -except=upload -var-file=${vars} sources/ packer validate -except=upload -var-file=${vars} sources/
done done
collect:
name: Collect all Ansible-related jobs
runs-on: ubuntu-22.04
outputs:
all: ${{ steps.zipped.outputs.scenarios }}
steps:
- uses: actions/checkout@v3
- uses: ./.github/actions/setup
- name: Collect dependencies
id: collection
uses: greg-hellings/tox-list@v1
with:
tox-args: --ansible-driver docker --ansible-driver podman --ansible-driver containers
- id: vagrant
uses: greg-hellings/tox-list@v1
with:
tox-args: --ansible-driver vagrant
- id: zipped
name: Zip arrays together
shell: python
run: |
import json
ubuntu = json.loads('${{ steps.collection.outputs.tox-envs }}')
macos = json.loads('${{ steps.vagrant.outputs.tox-envs }}')
ub_zip = [{'os': 'ubuntu-22.04', 'scenario': u} for u in ubuntu]
mac_zip = [{'os': 'macos-12', 'scenario': m} for m in macos]
print("::set-output name=scenarios::" + json.dumps(ub_zip + mac_zip))
lint: lint:
name: Lint Ansible code name: Lint Ansible code
runs-on: ubuntu-22.04 runs-on: ubuntu-22.04
@@ -69,35 +41,6 @@ jobs:
with: with:
ansible: true ansible: true
- name: Run lint - name: Run lint
run: tox -e lint_all
build:
name: Ansible tests on roles
runs-on: ${{ matrix.scenarios.os }}
needs:
- collect
strategy:
fail-fast: false
matrix:
scenarios: "${{ fromJson(needs.collect.outputs.all) }}"
steps:
- uses: actions/checkout@v3
- uses: ./.github/actions/setup
- uses: ./.github/actions/install_packer
- name: Container setup
shell: bash
if: ${{ startsWith(matrix.scenarios.os, 'ubuntu') }}
run: | run: |
set -exo pipefail yamllint -c ansible/yamllint.yml ansible .github
# Enable cgroupv2 systemd stuff # TODO: Add ansible-lint run
sudo loginctl enable-linger 1001
- name: Run scenario
run: |
set -ex
TOX="$(which tox)"
${TOX} -e "${{ matrix.scenarios.scenario }}" -- --destroy=never
- name: Get possible output
if: ${{ failure() }}
run: |
set -x
cat /home/runner/.cache/molecule/init/ubuntu18/vagrant.err
+5 -5
View File
@@ -3,11 +3,11 @@
file: "{{ item }}" file: "{{ item }}"
with_first_found: with_first_found:
- files: - files:
- "{{ role_path }}/tasks/{{ ansible_facts['distribution'] }}_{{ ansible_facts['distribution_version'] }}.yml" - "{{ role_path }}/tasks/{{ ansible_facts['distribution'] }}_{{ ansible_facts['distribution_version'] }}.yml"
- "{{ role_path }}/tasks/{{ ansible_facts['distribution'] }}_{{ ansible_facts['distribution_major_version'] }}.yml" - "{{ role_path }}/tasks/{{ ansible_facts['distribution'] }}_{{ ansible_facts['distribution_major_version'] }}.yml"
- "{{ role_path }}/tasks/{{ ansible_facts['distribution'] }}.yml" - "{{ role_path }}/tasks/{{ ansible_facts['distribution'] }}.yml"
- "{{ role_path }}/tasks/{{ ansible_facts['os_family'] }}.yml" - "{{ role_path }}/tasks/{{ ansible_facts['os_family'] }}.yml"
- "{{ role_path }}/tasks/default.yml" - "{{ role_path }}/tasks/default.yml"
- name: Reboot, but don't care if it doesn't - name: Reboot, but don't care if it doesn't
block: block:
+2
View File
@@ -3,3 +3,5 @@
provider: qemu provider: qemu
- arch: x86_64 - arch: x86_64
provider: virtualbox-iso provider: virtualbox-iso
- arch: x86_64
provider: vmware-iso
+6 -1
View File
@@ -12,13 +12,18 @@ packer {
source = "github.com/hashicorp/vagrant" source = "github.com/hashicorp/vagrant"
version = "~> 1" version = "~> 1"
} }
vmware = {
version = ">= 1.0"
source = "github.com/hashicorp/vmware"
}
} }
} }
build { build {
sources = [ sources = [
"source.qemu.x86_64", "source.qemu.x86_64",
"source.virtualbox-iso.x86_64" "source.virtualbox-iso.x86_64",
"source.vmware-iso.x86_64"
] ]
provisioner "ansible" { provisioner "ansible" {
+28
View File
@@ -0,0 +1,28 @@
source "vmware-iso" "x86_64" {
iso_url = var.iso.url
iso_checksum = var.iso.checksum
output_directory = "output/vmware/${local.name}"
boot_command = var.boot_command
shutdown_command = var.shutdown_command
boot_wait = var.boot_wait
ssh_timeout = local.ssh.timeout
ssh_username = local.ssh.username
ssh_password = local.ssh.password
ssh_handshake_attempts = local.ssh.handshake_attempts
ssh_private_key_file = "vagrant/insecure_key"
vm_name = "packer-${local.name}"
disk_size = "${local.disk_size}000"
cpus = local.cpus
memory = local.memory
headless = var.headless
guest_os_type = "Linux_64"
http_content = var.http_files
http_directory = var.http_directory
cd_content = var.cd_content
cd_files = var.cd_files
cd_label = var.cd_label
}