This commit is contained in:
parent
2c57dbcddc
commit
2bd0f8df0a
@ -1 +1 @@
|
|||||||
# Packer.Images [![Build Status](https://ci.spamasaurus.com/api/badges/djpbessems/Packer.Images/status.svg?ref=refs/heads/UbuntuServer22.04)](https://ci.spamasaurus.com/djpbessems/Packer.Images)
|
# Packer.Images [![Build Status](https://ci.spamasaurus.com/api/badges/djpbessems/Packer.Images/status.svg?ref=refs/heads/Kubernetes.Bootstrap.Appliance)](https://ci.spamasaurus.com/djpbessems/Packer.Images)
|
||||||
|
@ -1,7 +1,10 @@
|
|||||||
---
|
---
|
||||||
- hosts: all
|
- hosts: all
|
||||||
gather_facts: false
|
gather_facts: false
|
||||||
|
group_vars:
|
||||||
|
- metacluster.yml
|
||||||
become: true
|
become: true
|
||||||
roles:
|
roles:
|
||||||
- os
|
- os
|
||||||
- firstboot
|
- firstboot
|
||||||
|
- metacluster
|
||||||
|
11
ansible/roles/bootstrap/tasks/dependencies.yml
Normal file
11
ansible/roles/bootstrap/tasks/dependencies.yml
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
- name: Create folder structure
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: "{{ item }}"
|
||||||
|
state: directory
|
||||||
|
loop:
|
||||||
|
- /opt/x
|
||||||
|
|
||||||
|
- name: Install ansible-galaxy collection
|
||||||
|
ansible.builtin.shell:
|
||||||
|
cmd: "ansible-galaxy collection install {{ item }}"
|
||||||
|
loop: "{{ dependencies.ansible_galaxy_collections }}"
|
2
ansible/roles/bootstrap/tasks/main.yml
Normal file
2
ansible/roles/bootstrap/tasks/main.yml
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
- name: XYZ
|
||||||
|
import_tasks: foo.yml
|
@ -2,6 +2,7 @@
|
|||||||
ansible.builtin.file:
|
ansible.builtin.file:
|
||||||
path: /opt/firstboot
|
path: /opt/firstboot
|
||||||
state: directory
|
state: directory
|
||||||
|
|
||||||
- name: Create firstboot script file
|
- name: Create firstboot script file
|
||||||
ansible.builtin.template:
|
ansible.builtin.template:
|
||||||
src: firstboot.j2
|
src: firstboot.j2
|
||||||
@ -9,11 +10,13 @@
|
|||||||
owner: root
|
owner: root
|
||||||
group: root
|
group: root
|
||||||
mode: o+x
|
mode: o+x
|
||||||
|
|
||||||
- name: Create @reboot crontab job
|
- name: Create @reboot crontab job
|
||||||
ansible.builtin.cron:
|
ansible.builtin.cron:
|
||||||
name: firstboot
|
name: firstboot
|
||||||
special_time: reboot
|
special_time: reboot
|
||||||
job: "/opt/firstboot/firstboot.sh"
|
job: "/opt/firstboot/firstboot.sh"
|
||||||
|
|
||||||
- name: Copy payload folder
|
- name: Copy payload folder
|
||||||
ansible.builtin.copy:
|
ansible.builtin.copy:
|
||||||
src: ansible_payload/
|
src: ansible_payload/
|
||||||
@ -21,6 +24,3 @@
|
|||||||
owner: root
|
owner: root
|
||||||
group: root
|
group: root
|
||||||
mode: '0644'
|
mode: '0644'
|
||||||
- name: Install ansible-galaxy collection
|
|
||||||
ansible.builtin.shell:
|
|
||||||
cmd: ansible-galaxy collection install community.general
|
|
||||||
|
6
ansible/roles/metacluster/tasks/k3s.yml
Normal file
6
ansible/roles/metacluster/tasks/k3s.yml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
- name: Create folder structure
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: "{{ item }}"
|
||||||
|
state: directory
|
||||||
|
loop:
|
||||||
|
- /opt/x
|
2
ansible/roles/metacluster/tasks/main.yml
Normal file
2
ansible/roles/metacluster/tasks/main.yml
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
- name: XYZ
|
||||||
|
import_tasks: foo.yml
|
20
ansible/vars/metacluster.yml
Normal file
20
ansible/vars/metacluster.yml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
k3s:
|
||||||
|
version: v1.24.1+k3s1
|
||||||
|
|
||||||
|
components:
|
||||||
|
|
||||||
|
harbor:
|
||||||
|
version:
|
||||||
|
|
||||||
|
argocd:
|
||||||
|
version:
|
||||||
|
|
||||||
|
dependencies:
|
||||||
|
|
||||||
|
ansible_galaxy_collections:
|
||||||
|
- community.general
|
||||||
|
- kubernetes.core
|
||||||
|
|
||||||
|
static_binaries:
|
||||||
|
- binary: yq
|
||||||
|
url:
|
@ -3,7 +3,7 @@ packer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
source "vsphere-iso" "ubuntuserver" {
|
source "vsphere-iso" "k8sbootstrap" {
|
||||||
vcenter_server = var.vcenter_server
|
vcenter_server = var.vcenter_server
|
||||||
username = var.vsphere_username
|
username = var.vsphere_username
|
||||||
password = var.vsphere_password
|
password = var.vsphere_password
|
||||||
@ -67,11 +67,11 @@ source "vsphere-iso" "ubuntuserver" {
|
|||||||
|
|
||||||
build {
|
build {
|
||||||
sources = [
|
sources = [
|
||||||
"source.vsphere-iso.ubuntuserver"
|
"source.vsphere-iso.k8sbootstrap"
|
||||||
]
|
]
|
||||||
|
|
||||||
provisioner "ansible" {
|
provisioner "ansible" {
|
||||||
only = ["vsphere-iso.ubuntuserver"]
|
only = ["vsphere-iso.k8sbootstrap"]
|
||||||
|
|
||||||
playbook_file = "ansible/playbook.yml"
|
playbook_file = "ansible/playbook.yml"
|
||||||
user = "ubuntu"
|
user = "ubuntu"
|
||||||
@ -85,16 +85,16 @@ build {
|
|||||||
}
|
}
|
||||||
|
|
||||||
post-processor "shell-local" {
|
post-processor "shell-local" {
|
||||||
only = ["vsphere-iso.ubuntuserver"]
|
only = ["vsphere-iso.k8sbootstrap"]
|
||||||
inline = [
|
inline = [
|
||||||
"pwsh -command \"& scripts/Update-OvfConfiguration.ps1 \\",
|
"pwsh -command \"& scripts/Update-OvfConfiguration.ps1 \\",
|
||||||
" -OVFFile '/scratch/ubuntuserver/${var.vm_guestos}-${var.vm_name}.ovf' \\",
|
" -OVFFile '/scratch/k8sbootstrap/${var.vm_guestos}-${var.vm_name}.ovf' \\",
|
||||||
" -Parameter @{'appliance.name'='${var.vm_guestos}';'appliance.version'='${var.vm_name}'}\"",
|
" -Parameter @{'appliance.name'='${var.vm_guestos}';'appliance.version'='${var.vm_name}'}\"",
|
||||||
"pwsh -file scripts/Update-Manifest.ps1 \\",
|
"pwsh -file scripts/Update-Manifest.ps1 \\",
|
||||||
" -ManifestFileName '/scratch/ubuntuserver/${var.vm_guestos}-${var.vm_name}.mf'",
|
" -ManifestFileName '/scratch/k8sbootstrap/${var.vm_guestos}-${var.vm_name}.mf'",
|
||||||
"ovftool --acceptAllEulas --allowExtraConfig --overwrite \\",
|
"ovftool --acceptAllEulas --allowExtraConfig --overwrite \\",
|
||||||
" '/scratch/ubuntuserver/${var.vm_guestos}-${var.vm_name}.ovf' \\",
|
" '/scratch/k8sbootstrap/${var.vm_guestos}-${var.vm_name}.ovf' \\",
|
||||||
" /output/Ubuntu-Server-22.04.ova"
|
" /output/Kubernetes.Bootstrap.Appliance.ova"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user