mirror of
https://github.com/foo-dogsquared/ansible-playbooks.git
synced 2025-01-30 22:57:57 +00:00
Modularize Fedora playbook
Now, it is one step closer into a NixOS-like setup. Apparently, there is a list of directories to be searched to get the various roles which you can configure through ~ansible.cfg~.
This commit is contained in:
parent
7581863a4f
commit
509acd047c
3
ansible.cfg
Normal file
3
ansible.cfg
Normal file
@ -0,0 +1,3 @@
|
||||
[defaults]
|
||||
inventory = inventory/inventory
|
||||
roles_path = roles/
|
8
inventory/inventory
Normal file
8
inventory/inventory
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
# vim:set ft=yaml:
|
||||
workstation:
|
||||
hosts:
|
||||
127.0.0.1:
|
||||
vars:
|
||||
ansible_connection: local
|
||||
|
96
playbooks/fedora-workstation.yml
Normal file
96
playbooks/fedora-workstation.yml
Normal file
@ -0,0 +1,96 @@
|
||||
# TODO:
|
||||
# * Configure GNOME extensions
|
||||
# * Configure the Fedora host with custom systemd units
|
||||
# * Custom session variables
|
||||
---
|
||||
- name: foo-dogsquared's Fedora workstation
|
||||
hosts: workstation
|
||||
become: yes
|
||||
|
||||
roles:
|
||||
- role: system/base
|
||||
tags:
|
||||
- dev_minimal
|
||||
- dev_extra
|
||||
- flatpak_desktop_apps
|
||||
- i18n
|
||||
- fonts
|
||||
- apps/emacs
|
||||
|
||||
tasks:
|
||||
- name: Install Flatpak development tools
|
||||
dnf:
|
||||
state: present
|
||||
name:
|
||||
- flatpak
|
||||
- flatpak-builder
|
||||
|
||||
- name: Enable copr repositories
|
||||
community.general.copr:
|
||||
state: enabled
|
||||
name: "{{ item }}"
|
||||
loop:
|
||||
- cappyishihara/opentabletdriver
|
||||
- atim/lazygit
|
||||
- fale/gopass
|
||||
- peterwu/iosevka
|
||||
|
||||
# Package installations.
|
||||
- name: Install packages from enabled copr repositories
|
||||
dnf:
|
||||
state: present
|
||||
name:
|
||||
- lazygit
|
||||
- opentabletdriver
|
||||
- golang-github-gopasspw-gopass
|
||||
- iosevka-fonts
|
||||
- iosevka-curly-fonts
|
||||
- iosevka-curly-slab-fonts
|
||||
- iosevka-slab-fonts
|
||||
- iosevka-etoile-fonts
|
||||
|
||||
- name: Install RPM development tools
|
||||
dnf:
|
||||
state: present
|
||||
name:
|
||||
- rpm-build
|
||||
- go-rpm-macros
|
||||
|
||||
- name: Install web-related tools
|
||||
dnf:
|
||||
state: present
|
||||
name:
|
||||
- thunderbird
|
||||
- chromium
|
||||
- firefox
|
||||
|
||||
- name: Install Fedora COPR dev't tools
|
||||
dnf:
|
||||
state: present
|
||||
name:
|
||||
- copr-cli
|
||||
- dnf-plugins-core
|
||||
|
||||
- name: Install Ansible
|
||||
dnf:
|
||||
state: present
|
||||
name:
|
||||
- ansible
|
||||
- ansible-doc
|
||||
- ansible-collection-community-general
|
||||
- python3-psutil
|
||||
|
||||
# Configure desktop environment.
|
||||
- name: Install dconf keyfiles
|
||||
copy:
|
||||
src: ./files/dconf/
|
||||
dest: /etc/dconf/db/a-happy-gnome.d
|
||||
|
||||
- name: Set 'user' dconf profile with the custom GNOME config
|
||||
ansible.builtin.shell: echo "system-db:a-happy-gnome" >> /etc/dconf/profile/user
|
||||
|
||||
- name: Enable night light in GNOME
|
||||
dconf:
|
||||
state: present
|
||||
key: /org/gnome/settings-daemon/plugins/color/night-light-enabled
|
||||
value: "true"
|
241
post-install.yml
241
post-install.yml
@ -1,241 +0,0 @@
|
||||
---
|
||||
- hosts: localhost
|
||||
become: yes
|
||||
become_user: root
|
||||
tasks:
|
||||
- name: Install Flatpak development tools
|
||||
dnf:
|
||||
state: present
|
||||
name:
|
||||
- flatpak
|
||||
- flatpak-builder
|
||||
|
||||
- name: Add Flatpak remotes
|
||||
flatpak_remote:
|
||||
state: present
|
||||
name: "{{ item.name }}"
|
||||
flatpakrepo_url: "{{ item.repo }}"
|
||||
loop:
|
||||
- name: flathub
|
||||
repo: "https://flathub.org/repo/flathub.flatpakrepo"
|
||||
- name: flathub-beta
|
||||
repo: "https://flathub.org/beta-repo/flathub-beta.flatpakrepo"
|
||||
- name: gnome-nightly
|
||||
repo: "https://nightly.gnome.org/gnome-nightly.flatpakrepo"
|
||||
- name: kdeapps
|
||||
repo: "https://distribute.kde.org/kdeapps.flatpakrepo"
|
||||
|
||||
- name: Enable copr repositories
|
||||
community.general.copr:
|
||||
state: enabled
|
||||
name: "{{ item }}"
|
||||
loop:
|
||||
- cappyishihara/opentabletdriver
|
||||
- atim/lazygit
|
||||
- fale/gopass
|
||||
- peterwu/iosevka
|
||||
|
||||
# Package installations.
|
||||
- name: Install packages from enabled copr repositories
|
||||
dnf:
|
||||
state: present
|
||||
name:
|
||||
- lazygit
|
||||
- opentabletdriver
|
||||
- golang-github-gopasspw-gopass
|
||||
- iosevka-fonts
|
||||
- iosevka-curly-fonts
|
||||
- iosevka-curly-slab-fonts
|
||||
- iosevka-slab-fonts
|
||||
- iosevka-etoile-fonts
|
||||
|
||||
- name: Set minimal development environment
|
||||
dnf:
|
||||
state: present
|
||||
name:
|
||||
- neovim
|
||||
- python-neovim
|
||||
- git
|
||||
- kitty
|
||||
- kitty-doc
|
||||
- kitty-terminfo
|
||||
- man-db
|
||||
- man-pages
|
||||
|
||||
- name: Install additional development tools
|
||||
dnf:
|
||||
state: present
|
||||
name:
|
||||
- tealdeer
|
||||
- bat
|
||||
- fzf
|
||||
- exa
|
||||
- ripgrep
|
||||
- sqlite
|
||||
- zoxide
|
||||
- direnv
|
||||
|
||||
- name: Install RPM development tools
|
||||
dnf:
|
||||
state: present
|
||||
name:
|
||||
- rpm-build
|
||||
- go-rpm-macros
|
||||
|
||||
- name: Setup container development tools
|
||||
dnf:
|
||||
state: present
|
||||
name:
|
||||
- podman
|
||||
- toolbox
|
||||
- openssl
|
||||
|
||||
- name: Install backup tools
|
||||
dnf:
|
||||
state: present
|
||||
name:
|
||||
- borgbackup
|
||||
- borgmatic
|
||||
|
||||
- name: Install (Doom) Emacs with its required dependencies
|
||||
dnf:
|
||||
state: present
|
||||
name:
|
||||
- emacs
|
||||
- libvterm
|
||||
- aspell
|
||||
- aspell-en
|
||||
- wordnet
|
||||
- zstd
|
||||
|
||||
- name: Install web-related tools
|
||||
dnf:
|
||||
state: present
|
||||
name:
|
||||
- thunderbird
|
||||
- chromium
|
||||
- firefox
|
||||
|
||||
- name: Install extra dependencies
|
||||
dnf:
|
||||
state: present
|
||||
name:
|
||||
- editorconfig
|
||||
- ImageMagick
|
||||
- ImageMagick-doc
|
||||
- ImageMagick-libs
|
||||
- hyperfine
|
||||
- libtree-sitter
|
||||
- recoll
|
||||
- recoll-gssp
|
||||
- recoll-kio
|
||||
- starship
|
||||
|
||||
- name: Install Fedora COPR dev't tools
|
||||
dnf:
|
||||
state: present
|
||||
name:
|
||||
- copr-cli
|
||||
- dnf-plugins-core
|
||||
|
||||
- name: Install i18n tools
|
||||
dnf:
|
||||
state: present
|
||||
name:
|
||||
- fcitx5
|
||||
- fcitx5-configtool
|
||||
- fcitx5-gtk4
|
||||
- fcitx5-lua
|
||||
- fcitx5-mozc
|
||||
- fcitx5-rime
|
||||
- librime
|
||||
- librime-tools
|
||||
- mozc
|
||||
|
||||
- name: Install Ansible
|
||||
dnf:
|
||||
state: present
|
||||
name:
|
||||
- ansible
|
||||
- ansible-doc
|
||||
- ansible-collection-community-general
|
||||
- python3-psutil
|
||||
|
||||
- name: Install fonts
|
||||
dnf:
|
||||
state: present
|
||||
name:
|
||||
- adobe-source-code-pro-fonts
|
||||
- adobe-source-sans-pro-fonts
|
||||
- adobe-source-serif-pro-fonts
|
||||
- google-noto-cjk-fonts
|
||||
- google-noto-cjk-fonts-common
|
||||
- google-noto-emoji-fonts
|
||||
- google-noto-sans-fonts
|
||||
- google-noto-serif-fonts
|
||||
|
||||
# Install applications from Flatpak
|
||||
- name: Install applications from 'flathub' Flatpak remote
|
||||
flatpak:
|
||||
state: present
|
||||
name: "{{ item }}"
|
||||
remote: flathub
|
||||
loop:
|
||||
- com.github.tchx84.Flatseal
|
||||
- com.github.wwmm.easyeffects
|
||||
- com.obsproject.Studio
|
||||
- com.play0ad.zeroad
|
||||
- com.remnantsoftheprecursors.ROTP
|
||||
- com.usebottles.bottles
|
||||
- com.valvesoftware.Steam
|
||||
- io.github.lainsce.Emulsion
|
||||
- org.blender.Blender
|
||||
- org.inkscape.Inkscape
|
||||
- org.kde.krita
|
||||
- org.musescore.MuseScore
|
||||
- org.pipewire.Helvum
|
||||
- org.zrythm.Zrythm
|
||||
- re.sonny.Junction
|
||||
- re.sonny.Tangram
|
||||
|
||||
- name: Install applications from 'kdeapps' Flatpak remote
|
||||
flatpak:
|
||||
state: present
|
||||
name: "{{ item }}"
|
||||
remote: kdeapps
|
||||
loop:
|
||||
- org.kde.krita-nightly
|
||||
|
||||
- name: Install applications from 'flathub-beta' Flatpak remote
|
||||
flatpak:
|
||||
state: present
|
||||
name: "{{ item }}"
|
||||
remote: flathub-beta
|
||||
loop:
|
||||
- net.lutris.Lutris
|
||||
|
||||
- name: Install applications from 'gnome-nightly' Flatpak remote
|
||||
flatpak:
|
||||
state: present
|
||||
name: "{{ item }}"
|
||||
remote: gnome-nightly
|
||||
loop:
|
||||
- org.gimp.GIMP
|
||||
|
||||
# Configure desktop environment.
|
||||
- name: Install dconf keyfiles
|
||||
copy:
|
||||
src: ./files/dconf/
|
||||
dest: /etc/dconf/db/a-happy-gnome.d
|
||||
|
||||
- name: Set 'user' dconf profile with the custom GNOME config
|
||||
ansible.builtin.shell: echo "system-db:a-happy-gnome" >> /etc/dconf/profile/user
|
||||
|
||||
- name: Enable night light in GNOME
|
||||
dconf:
|
||||
state: present
|
||||
key: /org/gnome/settings-daemon/plugins/color/night-light-enabled
|
||||
value: "true"
|
||||
|
||||
# TODO:
|
||||
# * Configure GNOME extensions
|
Loading…
Reference in New Issue
Block a user