aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorEgor Tensin <egor@tensin.name>2026-10-24 14:55:08 +0300
committerEgor Tensin <egor@tensin.name>2026-10-24 15:06:57 +0300
commitf4e09613d1b45f9b9cc30a3ad801cf78a1dc574b (patch)
tree4b8a8e65a9eb80cc31f9471572ac4dda09c69fe0
parentyay: move dependencies to meta/ (diff)
downloadinfra-ansible-f4e09613d1b45f9b9cc30a3ad801cf78a1dc574b.tar.gz
infra-ansible-f4e09613d1b45f9b9cc30a3ad801cf78a1dc574b.zip
linux_status: add support for Arch Linux
-rw-r--r--roles/aur_install/README.md1
-rw-r--r--roles/aur_install/defaults/main.yml1
-rw-r--r--roles/aur_install/meta/main.yml2
-rw-r--r--roles/aur_install/tasks/main.yml10
-rw-r--r--roles/linux_status/README.md2
-rw-r--r--roles/linux_status/meta/main.yml6
-rw-r--r--roles/linux_status/tasks/arch.yml6
-rw-r--r--roles/linux_status/tasks/default.yml13
-rw-r--r--roles/linux_status/tasks/main.yml17
9 files changed, 46 insertions, 12 deletions
diff --git a/roles/aur_install/README.md b/roles/aur_install/README.md
new file mode 100644
index 0000000..19f4f70
--- /dev/null
+++ b/roles/aur_install/README.md
@@ -0,0 +1 @@
+Installs AUR packages on Arch Linux, using yay.
diff --git a/roles/aur_install/defaults/main.yml b/roles/aur_install/defaults/main.yml
new file mode 100644
index 0000000..265bdb8
--- /dev/null
+++ b/roles/aur_install/defaults/main.yml
@@ -0,0 +1 @@
+aur_install_packages: []
diff --git a/roles/aur_install/meta/main.yml b/roles/aur_install/meta/main.yml
new file mode 100644
index 0000000..962eb23
--- /dev/null
+++ b/roles/aur_install/meta/main.yml
@@ -0,0 +1,2 @@
+dependencies:
+ - role: yay
diff --git a/roles/aur_install/tasks/main.yml b/roles/aur_install/tasks/main.yml
new file mode 100644
index 0000000..52f5f2e
--- /dev/null
+++ b/roles/aur_install/tasks/main.yml
@@ -0,0 +1,10 @@
+- name: Upgrade AUR packages
+ kewlfft.aur.aur:
+ name: '{{ aur_install_packages }}'
+ state: latest
+ use: yay
+ aur_only: true
+ extra_args: --removemake
+ # AUR connection fails a bit too frequently:
+ retries: 3
+ delay: 3
diff --git a/roles/linux_status/README.md b/roles/linux_status/README.md
index 167224b..08e9599 100644
--- a/roles/linux_status/README.md
+++ b/roles/linux_status/README.md
@@ -1,3 +1,3 @@
-This role installs [linux-status] on a Debian/Ubuntu host.
+This role installs [linux-status] on a Debian/Ubuntu/Arch Linux host.
[linux-status]: https://github.com/egor-tensin/linux-status
diff --git a/roles/linux_status/meta/main.yml b/roles/linux_status/meta/main.yml
deleted file mode 100644
index df1d198..0000000
--- a/roles/linux_status/meta/main.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-dependencies:
- - role: ppa
- vars:
- ppa_owner: egor-tensin
- ppa_name: linux-status
- ppa_key: ecb69cbafc6d7cd8bd67ec35b1089b3051c9384d
diff --git a/roles/linux_status/tasks/arch.yml b/roles/linux_status/tasks/arch.yml
new file mode 100644
index 0000000..b894361
--- /dev/null
+++ b/roles/linux_status/tasks/arch.yml
@@ -0,0 +1,6 @@
+- name: Install linux-status
+ ansible.builtin.include_role:
+ name: aur_install
+ vars:
+ aur_install_packages:
+ - linux-status
diff --git a/roles/linux_status/tasks/default.yml b/roles/linux_status/tasks/default.yml
new file mode 100644
index 0000000..fc2f83f
--- /dev/null
+++ b/roles/linux_status/tasks/default.yml
@@ -0,0 +1,13 @@
+- name: Set up PPA repository
+ ansible.builtin.include_role:
+ name: ppa
+ vars:
+ ppa_owner: egor-tensin
+ ppa_name: linux-status
+ ppa_key: ecb69cbafc6d7cd8bd67ec35b1089b3051c9384d
+
+- name: Install linux-status
+ become: true
+ ansible.builtin.package:
+ name: linux-status
+ state: present
diff --git a/roles/linux_status/tasks/main.yml b/roles/linux_status/tasks/main.yml
index 7b476ad..7400cb1 100644
--- a/roles/linux_status/tasks/main.yml
+++ b/roles/linux_status/tasks/main.yml
@@ -1,11 +1,18 @@
- name: Configure power management
ansible.builtin.import_tasks: power_management.yml
-- name: Install linux-status
- become: true
- ansible.builtin.package:
- name: linux-status
- state: present
+- name: Get host distro
+ ansible.builtin.setup:
+ gather_subset:
+ - distribution
+
+- name: Install on Arch Linux
+ when: ansible_facts['distribution'] == 'Archlinux'
+ ansible.builtin.import_tasks: arch.yml
+
+- name: Install on other distros
+ when: ansible_facts['distribution'] != 'Archlinux'
+ ansible.builtin.import_tasks: default.yml
- name: Enable & start linux-status.service
become: true