aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorspmfox <spmfox@foxwd.com>2023-06-25 11:59:56 -0400
committerspmfox <spmfox@foxwd.com>2023-06-25 11:59:56 -0400
commit5863584610d0b43da0aca4bd7c92443a7ed3872f (patch)
treebd1075efc3aee056cfe729ee9270b0965c36fe1f
parent16847ba6cf3d1dcbd80823c2cfa66c19013f65b0 (diff)
adding support for red hat subscription manager, more robust package install, guest unconfiguration
-rw-r--r--docs/sample-environment.yml8
-rw-r--r--roles/guest-configure/tasks/main.yml4
-rw-r--r--roles/guest-configure/tasks/packages.yml19
-rw-r--r--roles/guest-configure/tasks/rhsm-register.yml14
-rw-r--r--roles/guest-configure/tasks/rhsm-unregister.yml4
-rw-r--r--roles/guest-configure/tasks/undo.yml3
-rw-r--r--roles/guest-configure/vars/main.yml3
-rw-r--r--vm-create.yml2
-rw-r--r--vm-delete.yml8
9 files changed, 56 insertions, 9 deletions
diff --git a/docs/sample-environment.yml b/docs/sample-environment.yml
index cb982b0..5a8e099 100644
--- a/docs/sample-environment.yml
+++ b/docs/sample-environment.yml
@@ -1,7 +1,7 @@
# Vars can be set per-host, or globally under the vars: section
all:
hosts:
- test-el8:
+ test-alma8:
os: "rhel8-unknown" #A full list of OSes can be found with this #virt-install --osinfo list
kickstart: "el8.ks"
iso_path: "/path/to/ios/AlmaLinux-8.7-x86_64-dvd.iso"
@@ -11,10 +11,12 @@ all:
- qemu-guest-agent
- fish
shell: "/usr/bin/fish" #Set shell for user
- test-el9:
+ test-rhel9:
os: "rhel9-unknown"
kickstart: "el9.ks"
- iso_path: "/path/to/isos/AlmaLinux-9.1-x86_64-dvd.iso"
+ iso_path: "/path/to/isos/rhel-9.2-x86_64-dvd.iso"
+ redhat_user: "rhsm_username" #Used for registering to Red Hat and un-registering when deleting VM
+ redhat_password: "rhsm_password"
test-f38:
os: "fedora-unknown"
kickstart: "f38.ks"
diff --git a/roles/guest-configure/tasks/main.yml b/roles/guest-configure/tasks/main.yml
index 519fcf0..1a5c72f 100644
--- a/roles/guest-configure/tasks/main.yml
+++ b/roles/guest-configure/tasks/main.yml
@@ -4,6 +4,10 @@
- name: Gather facts
ansible.builtin.setup:
+- name: Import Red Hat Subscription Manager task
+ ansible.builtin.import_tasks: rhsm-register.yml
+ when: (guest_configure_rhsm_username | length > 0) and (guest_configure_rhsm_password | length > 0)
+
- name: Import update task
ansible.builtin.import_tasks: update.yml
diff --git a/roles/guest-configure/tasks/packages.yml b/roles/guest-configure/tasks/packages.yml
index 509db4a..0dd3c1e 100644
--- a/roles/guest-configure/tasks/packages.yml
+++ b/roles/guest-configure/tasks/packages.yml
@@ -1,8 +1,17 @@
-- name: Install prerequisite packages (if defined)
- ansible.builtin.package:
- name: "{{ guest_configure_packages_preq }}"
- state: present
- when: guest_configure_packages_preq | length > 0
+- name: Block for installing prerequisite packages
+ block:
+ - name: Install prerequisite packages (if defined)
+ ansible.builtin.package:
+ name: "{{ guest_configure_packages_preq }}"
+ state: present
+ when: guest_configure_packages_preq | length > 0
+ rescue:
+ - name: Rescue - Install prerequisite packages skipping GPG check (RedHat)
+ ansible.builtin.dnf:
+ name: "{{ guest_configure_packages_preq }}"
+ state: present
+ disable_gpg_check: true
+ when: ansible_os_family == "RedHat"
- name: Install packages (if defined)
ansible.builtin.package:
diff --git a/roles/guest-configure/tasks/rhsm-register.yml b/roles/guest-configure/tasks/rhsm-register.yml
new file mode 100644
index 0000000..e1c1ee6
--- /dev/null
+++ b/roles/guest-configure/tasks/rhsm-register.yml
@@ -0,0 +1,14 @@
+- name: Register system with Red Hat Subscription Manager (without Activation Key)
+ community.general.redhat_subscription:
+ username: "{{ guest_configure_rhsm_username }}"
+ password: "{{ guest_configure_rhsm_password }}"
+ state: present
+ when: guest_configure_rhsm_activation_key | length == 0
+
+- name: Register system with Red Hat Subscription Manager (with Activation Key)
+ community.general.redhat_subscription:
+ username: "{{ guest_configure_rhsm_username }}"
+ password: "{{ guest_configure_rhsm_password }}"
+ activationkey: "{{ guest_configure_rhsm_activation_key }}"
+ state: present
+ when: guest_configure_rhsm_activation_key | length > 0
diff --git a/roles/guest-configure/tasks/rhsm-unregister.yml b/roles/guest-configure/tasks/rhsm-unregister.yml
new file mode 100644
index 0000000..50ad570
--- /dev/null
+++ b/roles/guest-configure/tasks/rhsm-unregister.yml
@@ -0,0 +1,4 @@
+- name: Unregister system with Red Hat Subscription Manager
+ community.general.redhat_subscription:
+ state: absent
+ ignore_errors: true
diff --git a/roles/guest-configure/tasks/undo.yml b/roles/guest-configure/tasks/undo.yml
new file mode 100644
index 0000000..22889f1
--- /dev/null
+++ b/roles/guest-configure/tasks/undo.yml
@@ -0,0 +1,3 @@
+- name: Import Red Hat Subscription Manager unregister task
+ ansible.builtin.import_tasks: rhsm-unregister.yml
+ when: (guest_configure_rhsm_username | length > 0) and (guest_configure_rhsm_password | length > 0)
diff --git a/roles/guest-configure/vars/main.yml b/roles/guest-configure/vars/main.yml
index 42ed50a..2ffbd32 100644
--- a/roles/guest-configure/vars/main.yml
+++ b/roles/guest-configure/vars/main.yml
@@ -7,3 +7,6 @@ guest_configure_ssh_key: "{{ ssh_key if ssh_key is defined }}"
guest_configure_packages_preq: "{{ pre_packages if pre_packages is defined }}"
guest_configure_packages: "{{ packages if packages is defined }}"
guest_configure_services: "{{ services if services is defined }}"
+guest_configure_rhsm_username: "{{ redhat_user if redhat_user is defined }}"
+guest_configure_rhsm_password: "{{ redhat_password if redhat_password is defined }}"
+guest_configure_rhsm_activation_key: "{{ redhat_activation_key if redhat_activation_key is defined }}"
diff --git a/vm-create.yml b/vm-create.yml
index 1c7c98e..4aac513 100644
--- a/vm-create.yml
+++ b/vm-create.yml
@@ -70,7 +70,7 @@
msg: Host failed build process
tags: always
- - name: Import guest-configure role
+ - name: Import guest-configure role for configuring VM
ansible.builtin.include_role:
name: guest-configure
apply:
diff --git a/vm-delete.yml b/vm-delete.yml
index a76e73f..45f719e 100644
--- a/vm-delete.yml
+++ b/vm-delete.yml
@@ -39,6 +39,14 @@
delegate_to: "{{ hypervisor_host }}"
tags: zfs
+ - name: Import guest-configure role for undo
+ ansible.builtin.include_role:
+ name: guest-configure
+ tasks_from: undo.yml
+ apply:
+ tags: guest-configure
+ tags: guest-configure
+
- name: Import libvirt role to undefine VM
ansible.builtin.include_role:
name: libvirt