diff options
| -rw-r--r-- | docs/sample-environment.yml | 8 | ||||
| -rw-r--r-- | roles/guest-configure/tasks/main.yml | 4 | ||||
| -rw-r--r-- | roles/guest-configure/tasks/packages.yml | 19 | ||||
| -rw-r--r-- | roles/guest-configure/tasks/rhsm-register.yml | 14 | ||||
| -rw-r--r-- | roles/guest-configure/tasks/rhsm-unregister.yml | 4 | ||||
| -rw-r--r-- | roles/guest-configure/tasks/undo.yml | 3 | ||||
| -rw-r--r-- | roles/guest-configure/vars/main.yml | 3 | ||||
| -rw-r--r-- | vm-create.yml | 2 | ||||
| -rw-r--r-- | vm-delete.yml | 8 |
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 |
