diff --git a/9734 b/9734 new file mode 100644 index 0000000..e69de29 diff --git a/README.md b/README.md index 3b773d6..d19bb41 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,12 @@ Infrastructure-as-Code for a CachyOS Linux workstation, managed with Ansible. - Ansible installed on the workstation - A working Python environment (required by Ansible) +Install prerequisites manually before running the playbook: + +```bash +sudo pacman -S ansible ansible-lint +``` + ## Usage Run the full site playbook: diff --git a/packages.txt b/packages.txt new file mode 100644 index 0000000..a4181e7 --- /dev/null +++ b/packages.txt @@ -0,0 +1,78 @@ +# packages (general) +ansible +ansible-lint +azure-cli +ex-vi-compat +fio +geoip +goaccess +handbrake +htop +iftop +ioping +iperf3 +iptables +libreoffice-fresh +libva-utils +localsend +mmdblookup +neovim +net-tools +nmap +nodejs +npm +obsidian +obs-studio +okular +opentofu +pandoc-cli +python-lsp-server +python-passlib +python-pip +python-pipx +python-pyserial +python-ruff +python-weasyprint +python-yaml +remmina +restic +screen +shellcheck +shfmt +simple-scan +stylua +syncthing +sysstat +tigervnc +traceroute +tree-sitter-bash +tree-sitter-cli +tree-sitter-python +usbmuxd +whois +wl-clipboard +wofi +words +xfsdump +yakuake +yamllint +zip + +# docker +docker +docker-compose + +# virtualization +cloud-image-utils +qemu-full +virt-manager + +# web +hcloud +hugo +tea + +# flatpak +flatpak +com.google.Chrome +com.makemkv.MakeMKV diff --git a/roles/flatpak/meta/main.yml b/roles/flatpak/meta/main.yml new file mode 100644 index 0000000..1bc8491 --- /dev/null +++ b/roles/flatpak/meta/main.yml @@ -0,0 +1,6 @@ +--- +galaxy_info: + author: cjr + description: Install Flatpak and some needed Flatpak applications + license: BSD-3-Clause + min_ansible_version: "2.1" diff --git a/roles/flatpak/tasks/main.yml b/roles/flatpak/tasks/main.yml new file mode 100644 index 0000000..66cc5fd --- /dev/null +++ b/roles/flatpak/tasks/main.yml @@ -0,0 +1,22 @@ +--- +- name: Install flatpak + community.general.pacman: + name: flatpak + state: present + +- name: Install wanted flatpak packages + community.general.flatpak: + name: "{{ flatpak_apps }}" + state: present + +- name: Check MakeMKV flatpak permissions + ansible.builtin.command: + cmd: flatpak info --show-permissions com.makemkv.MakeMKV + register: flatpak_makemkv_permissions + changed_when: false + +- name: Grant MakeMKV access to optical drives + ansible.builtin.command: + cmd: flatpak override --device=all com.makemkv.MakeMKV + when: "'--device=all' not in flatpak_makemkv_permissions.stdout" + changed_when: true diff --git a/roles/flatpak/vars/main.yml b/roles/flatpak/vars/main.yml new file mode 100644 index 0000000..9526e06 --- /dev/null +++ b/roles/flatpak/vars/main.yml @@ -0,0 +1,4 @@ +--- +flatpak_apps: + - com.google.Chrome + - com.makemkv.MakeMKV diff --git a/roles/virtualization/meta/main.yml b/roles/virtualization/meta/main.yml new file mode 100644 index 0000000..81814c8 --- /dev/null +++ b/roles/virtualization/meta/main.yml @@ -0,0 +1,6 @@ +--- +galaxy_info: + author: cjr + description: Install and configure virtualization tools + license: BSD-3-Clause + min_ansible_version: "2.1" diff --git a/roles/virtualization/tasks/main.yml b/roles/virtualization/tasks/main.yml new file mode 100644 index 0000000..5943c05 --- /dev/null +++ b/roles/virtualization/tasks/main.yml @@ -0,0 +1,20 @@ +--- +- name: Install virtualization packages + community.general.pacman: + name: + - qemu-full + - virt-manager + - cloud-image-utils + state: present + +- name: Enable libvirtd service + ansible.builtin.service: + name: libvirtd + state: started + enabled: true + +- name: Add user to libvirt group + ansible.builtin.user: + name: "{{ ansible_user_id }}" + groups: libvirt + append: true diff --git a/roles/web/meta/main.yml b/roles/web/meta/main.yml new file mode 100644 index 0000000..25b2330 --- /dev/null +++ b/roles/web/meta/main.yml @@ -0,0 +1,6 @@ +--- +galaxy_info: + author: cjr + description: Install web and hosting tools + license: BSD-3-Clause + min_ansible_version: "2.1" diff --git a/roles/web/tasks/main.yml b/roles/web/tasks/main.yml new file mode 100644 index 0000000..cf5f5f6 --- /dev/null +++ b/roles/web/tasks/main.yml @@ -0,0 +1,8 @@ +--- +- name: Install web tools + community.general.pacman: + name: + - hcloud + - hugo + - tea + state: present diff --git a/site.yml b/site.yml index 01676a9..1e2c949 100644 --- a/site.yml +++ b/site.yml @@ -7,3 +7,13 @@ roles: - role: firewall tags: firewall + - role: packages + tags: packages + - role: docker + tags: docker + - role: virtualization + tags: virtualization + - role: web + tags: web + - role: flatpak + tags: flatpak