aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/roles/microcode
diff options
context:
space:
mode:
Diffstat (limited to 'roles/microcode')
-rw-r--r--roles/microcode/README.md1
-rw-r--r--roles/microcode/handlers/main.yml4
-rw-r--r--roles/microcode/tasks/main.yml29
3 files changed, 34 insertions, 0 deletions
diff --git a/roles/microcode/README.md b/roles/microcode/README.md
new file mode 100644
index 0000000..d37ad8d
--- /dev/null
+++ b/roles/microcode/README.md
@@ -0,0 +1 @@
+Install the CPU microcode package on Arch Linux.
diff --git a/roles/microcode/handlers/main.yml b/roles/microcode/handlers/main.yml
new file mode 100644
index 0000000..e7990c7
--- /dev/null
+++ b/roles/microcode/handlers/main.yml
@@ -0,0 +1,4 @@
+- name: Reboot
+ listen: microcode_installed
+ become: true
+ ansible.builtin.reboot:
diff --git a/roles/microcode/tasks/main.yml b/roles/microcode/tasks/main.yml
new file mode 100644
index 0000000..26ffd5f
--- /dev/null
+++ b/roles/microcode/tasks/main.yml
@@ -0,0 +1,29 @@
+- name: Get host processor
+ ansible.builtin.setup:
+ gather_subset:
+ - processor
+ - distribution
+
+- name: Fail unless Arch Linux
+ when: |
+ ansible_facts['distribution'] != 'Archlinux'
+ ansible.builtin.fail:
+ msg: Only works on Arch Linux
+
+- name: Install microcode package
+ when: |
+ 'GenuineIntel' in ansible_facts["processor"]
+ become: true
+ ansible.builtin.package:
+ name: intel-ucode
+ state: present
+ notify: microcode_installed
+
+- name: Install AMD microcode package
+ when: |
+ 'AuthenticAMD' in ansible_facts["processor"]
+ become: true
+ ansible.builtin.package:
+ name: amd-ucode
+ state: present
+ notify: microcode_installed