Beginning vmware-iso
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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" {
|
||||||
|
|||||||
@@ -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
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user