Compare commits

...

17 Commits

10 changed files with 29 additions and 51 deletions

View File

@@ -1,29 +0,0 @@
[promox-kvm]
192.168.122.10
192.168.122.11
[promox-kvm:vars]
vm_gw=192.168.122.1
vm_dns=1.1.1.1
[192.168.122.10]
hostname=proxy
vm_id=300
os=archlinux
filesystem=btrfs
vm_memory=2048
vm_ballo=1024
vm_cpus=2
vm_size=5
vm_nif=vmbr1
[192.168.122.11]
hostname=database
vm_id=101
os=archlinux
filesystem=btrfs
vm_memory=6144
vm_ballo=3072
vm_cpus=4
vm_size=40
vm_nif=vmbr1

View File

@@ -3,6 +3,7 @@ all:
hypervisor: 'proxmox' hypervisor: 'proxmox'
install_drive: '/dev/sda' install_drive: '/dev/sda'
cis: true cis: true
boot_iso: "local-btrfs:iso/archlinux-x86_64.iso"
children: children:
promox-kvm: promox-kvm:
hosts: hosts:

View File

@@ -31,7 +31,7 @@
with_items: with_items:
- debootstrap --include={{ role_packages[os].base | join(',') }} {{ 'oracular' if os == 'ubuntu' else 'noble' }} - debootstrap --include={{ role_packages[os].base | join(',') }} {{ 'oracular' if os == 'ubuntu' else 'noble' }}
/mnt http://archive.ubuntu.com/ubuntu/ /mnt http://archive.ubuntu.com/ubuntu/
- ln -sf /run/systemd/resolve/resolv.conf /mnt/etc/resolv.conf - ln -sf /run/NetworkManager/resolv.conf /mnt/etc/resolv.conf
- arch-chroot /mnt sed -i '1s|$| universe|' /etc/apt/sources.list - arch-chroot /mnt sed -i '1s|$| universe|' /etc/apt/sources.list
- arch-chroot /mnt apt update -y - arch-chroot /mnt apt update -y
- arch-chroot /mnt apt install -y {{ role_packages[os].extra | join(' ') }} - arch-chroot /mnt apt install -y {{ role_packages[os].extra | join(' ') }}
@@ -43,7 +43,7 @@
register: result register: result
with_items: with_items:
- dnf --releasever=9 --best --repo=alma-baseos --installroot=/mnt --setopt=install_weak_deps=False groupinstall -y base core - dnf --releasever=9 --best --repo=alma-baseos --installroot=/mnt --setopt=install_weak_deps=False groupinstall -y base core
- ln -sf /run/systemd/resolve/resolv.conf /mnt/etc/resolv.conf - ln -sf /run/NetworkManager/resolv.conf /mnt/etc/resolv.conf
- arch-chroot /mnt dnf --releasever=9 --setopt=install_weak_deps=False install -y {{ role_packages.almalinux | join(' ') }} - arch-chroot /mnt dnf --releasever=9 --setopt=install_weak_deps=False install -y {{ role_packages.almalinux | join(' ') }}
- name: Bootstrap Fedora 41 - name: Bootstrap Fedora 41
@@ -54,7 +54,7 @@
with_items: with_items:
- dnf --releasever=41 --best --repo=fedora --repo=fedora-updates - dnf --releasever=41 --best --repo=fedora --repo=fedora-updates
--installroot=/mnt --setopt=install_weak_deps=False groupinstall -y critical-path-base core --installroot=/mnt --setopt=install_weak_deps=False groupinstall -y critical-path-base core
- ln -sf /run/systemd/resolve/resolv.conf /mnt/etc/resolv.conf - ln -sf /run/NetworkManager/resolv.conf /mnt/etc/resolv.conf
- arch-chroot /mnt dnf --releasever=41 --setopt=install_weak_deps=False install -y {{ role_packages.fedora | join(' ') }} - arch-chroot /mnt dnf --releasever=41 --setopt=install_weak_deps=False install -y {{ role_packages.fedora | join(' ') }}
- arch-chroot /mnt dnf reinstall -y kernel-core - arch-chroot /mnt dnf reinstall -y kernel-core
@@ -67,7 +67,7 @@
- dnf --releasever=9 --best --repo=rocky-baseos --installroot=/mnt - dnf --releasever=9 --best --repo=rocky-baseos --installroot=/mnt
--setopt=install_weak_deps=False --setopt=optional_metadata_types=filelists --setopt=install_weak_deps=False --setopt=optional_metadata_types=filelists
groupinstall -y base core groupinstall -y base core
- ln -sf /run/systemd/resolve/resolv.conf /mnt/etc/resolv.conf - ln -sf /run/NetworkManager/resolv.conf /mnt/etc/resolv.conf
- arch-chroot /mnt dnf --releasever=9 --setopt=install_weak_deps=False install -y {{ role_packages.rocky | join(' ') }} - arch-chroot /mnt dnf --releasever=9 --setopt=install_weak_deps=False install -y {{ role_packages.rocky | join(' ') }}
- name: Bootstrap RHEL System - name: Bootstrap RHEL System
@@ -84,7 +84,7 @@
- name: Prepare chroot environment - name: Prepare chroot environment
ansible.builtin.shell: | ansible.builtin.shell: |
ln -sf /run/systemd/resolve/resolv.conf /mnt/etc/resolv.conf ln -sf /run/NetworkManager/resolv.conf /mnt/etc/resolv.conf
mkdir -p /mnt/usr/local/install/redhat/dvd mkdir -p /mnt/usr/local/install/redhat/dvd
mount --bind /usr/local/install/redhat/dvd /mnt/usr/local/install/redhat/dvd mount --bind /usr/local/install/redhat/dvd /mnt/usr/local/install/redhat/dvd
arch-chroot /mnt rpm --rebuilddb arch-chroot /mnt rpm --rebuilddb
@@ -94,7 +94,7 @@
- name: Copy RHEL repo file into chroot environment - name: Copy RHEL repo file into chroot environment
ansible.builtin.copy: ansible.builtin.copy:
src: /etc/yum.repos.d/{{ os | lower }}.repo src: /etc/yum.repos.d/{{ os | lower }}.repo
dest: /mnt/etc/yum.repos.d/{{ os | lower }}.repo dest: /mnt/etc/yum.repos.d/redhat.repo
mode: '0644' mode: '0644'
remote_src: true remote_src: true

View File

@@ -197,6 +197,7 @@ fedora:
- zstd - zstd
rhel8: rhel8:
- bind-utils
- dhcp-client - dhcp-client
- efibootmgr - efibootmgr
- grub2 - grub2
@@ -206,6 +207,7 @@ rhel8:
- mtr - mtr
- nfs-utils - nfs-utils
- open-vm-tools - open-vm-tools
- python
- shim - shim
- telnet - telnet
- tmux - tmux
@@ -213,6 +215,7 @@ rhel8:
- zstd - zstd
rhel9: rhel9:
- bind-utils
- dhcp-client - dhcp-client
- efibootmgr - efibootmgr
- grub2 - grub2
@@ -222,6 +225,7 @@ rhel9:
- mtr - mtr
- nfs-utils - nfs-utils
- open-vm-tools - open-vm-tools
- python
- shim - shim
- telnet - telnet
- tmux - tmux
@@ -307,6 +311,7 @@ ubuntu:
- tldr - tldr
- tmux - tmux
- traceroute - traceroute
- util-linux-extra
- vim - vim
- wget - wget
- yq - yq
@@ -365,6 +370,7 @@ ubuntu-lts:
- tldr - tldr
- tmux - tmux
- traceroute - traceroute
- util-linux-extra
- vim - vim
- wget - wget
- yq - yq

View File

@@ -22,10 +22,14 @@
- ide0 - ide0
- ide2 - ide2
- name: Reboot system - name: Start the VM
ansible.builtin.command: reboot community.general.proxmox_kvm:
failed_when: false api_host: "{{ hypervisor_url }}"
changed_when: false api_user: "{{ hypervisor_username }}"
api_password: "{{ hypervisor_password }}"
node: "{{ hypervisor_node }}"
vmid: "{{ vm_id }}"
state: restarted
- name: Clean vCenter VM - name: Clean vCenter VM
when: hypervisor == "vmware" when: hypervisor == "vmware"

View File

@@ -2,13 +2,12 @@
id=LAN id=LAN
uuid={{ net_uuid.stdout }} uuid={{ net_uuid.stdout }}
type=ethernet type=ethernet
interface-name={{ net_inf.stdout }}
[ethernet] [ethernet]
mac-address={{ net_mac.stdout }} mac-address={{ net_mac.stdout }}
[ipv4] [ipv4]
address={{ vm_ip }},{{ vm_gw }} address={{ vm_ip }}/{{ vm_nms | default (24) }},{{ vm_gw }}
dns={{ vm_dns }} dns={{ vm_dns }}
method=manual method=manual

View File

@@ -20,7 +20,7 @@
msg: This host is not booted from the Arch install media! msg: This host is not booted from the Arch install media!
when: not archiso_stat.stat.exists when: not archiso_stat.stat.exists
- name: Setect Interface - name: Register Network Interface
when: hypervisor == "vmware" when: hypervisor == "vmware"
ansible.builtin.shell: "set -o pipefail && ip l | awk -F': ' '!/lo/{print $2; exit}'" ansible.builtin.shell: "set -o pipefail && ip l | awk -F': ' '!/lo/{print $2; exit}'"
changed_when: interface_name.rc == 0 changed_when: interface_name.rc == 0
@@ -44,7 +44,7 @@
register: result register: result
- name: Configure SSH for root login - name: Configure SSH for root login
when: hypervisor == "vmware" and vmware_ssh | bool when: hypervisor == "vmware" and (vmware_ssh is defined and vmware_ssh | bool)
block: block:
- name: Allow empty passwords temporarily - name: Allow empty passwords temporarily
ansible.builtin.replace: ansible.builtin.replace:

View File

@@ -29,12 +29,12 @@
storage: "{{ hypervisor_storage }}" storage: "{{ hypervisor_storage }}"
ide: ide:
ide0: "{{ boot_iso }},media=cdrom" ide0: "{{ boot_iso }},media=cdrom"
ide1: "{{ rhel_iso | default(omit) }},media=cdrom" ide1: "{{ rhel_iso + ',media=cdrom' if rhel_iso is defined else omit }}"
ide2: "{{ hypervisor_storage }}:cloudinit" ide2: "{{ hypervisor_storage }}:cloudinit"
net: net:
net0: virtio,bridge={{ vm_nif }}{% if vlan_name is defined and vlan_name %},tag={{ vlan_name }}{% endif %} net0: virtio,bridge={{ vm_nif }}{% if vlan_name is defined and vlan_name %},tag={{ vlan_name }}{% endif %}
ipconfig: ipconfig:
ipconfig0: ip={{ vm_ip }},gw={{ vm_gw }} ipconfig0: ip={{ vm_ip }}/{{ vm_nms | default(24) }},gw={{ vm_gw }}
nameservers: "{{ vm_dns }}" nameservers: "{{ vm_dns }}"
onboot: true onboot: true
state: present state: present

View File

@@ -8,8 +8,8 @@
<bootmenu enable='no'/> <bootmenu enable='no'/>
<boot dev='hd'/> <boot dev='hd'/>
<boot dev='cdrom'/> <boot dev='cdrom'/>
<loader readonly="yes" type="pflash">/usr/share/edk2/x64/OVMF_CODE.secboot.fd</loader> <loader readonly="yes" type="pflash">/usr/share/edk2/x64/OVMF_CODE.secboot.4m.fd</loader>
<nvram template="/usr/share/edk2/x64/OVMF_VARS.fd"/> <nvram template="/usr/share/edk2/x64/OVMF_VARS.4m.fd"/>
</os> </os>
<features> <features>
<acpi/> <acpi/>

View File

@@ -1,14 +1,11 @@
vm_ip: "{{ inventory_hostname }}/{{ vm_nms }}" vm_ip: "{{ inventory_hostname }}"
install_type: "virtual" install_type: "virtual"
cis: false
hypervisor_url: "192.168.0.2" hypervisor_url: "192.168.0.2"
hypervisor_username: "root@pam" hypervisor_username: "root@pam"
hypervisor_password: "SomePassword" hypervisor_password: "SomePassword"
hypervisor_node: "NodeName" hypervisor_node: "NodeName"
hypervisor_storage: "local-btrfs" hypervisor_storage: "local-btrfs"
boot_iso: "local-btrfs:iso/archlinux-x86_64.iso"
rhel_iso: "local-btrfs:rhel-9.4-x86_64-dvd.iso"
# For VMware-Tools # For VMware-Tools
ansible_vmware_host: "{{ hypervisor_url }}" ansible_vmware_host: "{{ hypervisor_url }}"