feat: tilføj Ansible-playbook til Fedora KDE setup
- Opret site.yml som hovedindgang til playbooken - Opdel tasks i separate filer: rpmfusion, repos, dnf, flatpak, system - Pakkelister i vars/ for nem redigering uden at røre logikken - Auto-detektér Fedora-version og Intel CPU via Ansible facts - Tilføj README med kørselsvejledning og manuelle trin
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
# Fedora KDE — Ansible Setup
|
||||
|
||||
Ansible-playbook der automatiserer installationsguiden i [installation.md](../installation.md).
|
||||
|
||||
## Struktur
|
||||
|
||||
```
|
||||
ansible/
|
||||
├── site.yml ← Kør denne
|
||||
├── vars/
|
||||
│ ├── dnf_packages.yml ← Liste over DNF-pakker
|
||||
│ └── flatpak_packages.yml ← Liste over Flatpak-pakker
|
||||
└── tasks/
|
||||
├── rpmfusion.yml ← RPM Fusion repos, multimedia, DVD, firmware
|
||||
├── repos.yml ← GPG-nøgler og .repo-filer
|
||||
├── dnf_packages.yml ← Installer DNF-pakker fra vars/
|
||||
├── flatpak_packages.yml ← Installer Flatpaks fra vars/
|
||||
└── system.yml ← NetworkManager/systemd-resolved fix
|
||||
```
|
||||
|
||||
## Forudsætninger
|
||||
|
||||
Installer Ansible og `community.general`-samlingen (kræves til Flatpak-modulet):
|
||||
|
||||
```bash
|
||||
sudo dnf install ansible
|
||||
ansible-galaxy collection install community.general
|
||||
```
|
||||
|
||||
## Kør
|
||||
|
||||
```bash
|
||||
ansible-playbook -K site.yml
|
||||
```
|
||||
|
||||
`-K` prompter for sudo-password. Playbooken kører kun på `localhost`.
|
||||
|
||||
## Tilføj eller fjern pakker
|
||||
|
||||
- **DNF-pakke:** tilføj/fjern en linje i [vars/dnf_packages.yml](vars/dnf_packages.yml)
|
||||
- **Flatpak:** tilføj/fjern en linje i [vars/flatpak_packages.yml](vars/flatpak_packages.yml)
|
||||
- **Repo:** tilføj en task-blok i [tasks/repos.yml](tasks/repos.yml)
|
||||
|
||||
## Spring et modul over
|
||||
|
||||
Kommenter den relevante linje ud i `site.yml`:
|
||||
|
||||
```yaml
|
||||
tasks:
|
||||
- import_tasks: tasks/rpmfusion.yml
|
||||
# - import_tasks: tasks/repos.yml ← springes over
|
||||
- import_tasks: tasks/dnf_packages.yml
|
||||
- import_tasks: tasks/flatpak_packages.yml
|
||||
- import_tasks: tasks/system.yml
|
||||
```
|
||||
|
||||
## Manuelle trin
|
||||
|
||||
Disse kan ikke automatiseres og skal gøres manuelt efter kørsel:
|
||||
|
||||
1. **Jottacloud login:** `run_jottad && jotta-cli login`
|
||||
2. **Firefox about:config** — se [installation.md](../installation.md#firefox-aboutconfig)
|
||||
3. **KDE Shortcuts** — System Settings → Shortcuts → Import → `kde_shortcuts/1password_shortcuts.kksrc`
|
||||
@@ -0,0 +1,15 @@
|
||||
---
|
||||
- name: Fedora KDE Setup
|
||||
hosts: localhost
|
||||
connection: local
|
||||
become: true
|
||||
gather_facts: true
|
||||
vars_files:
|
||||
- vars/dnf_packages.yml
|
||||
- vars/flatpak_packages.yml
|
||||
tasks:
|
||||
- import_tasks: tasks/rpmfusion.yml
|
||||
- import_tasks: tasks/repos.yml
|
||||
- import_tasks: tasks/dnf_packages.yml
|
||||
- import_tasks: tasks/flatpak_packages.yml
|
||||
- import_tasks: tasks/system.yml
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
- name: DNF - Installer pakker
|
||||
ansible.builtin.dnf:
|
||||
name: "{{ dnf_packages }}"
|
||||
state: present
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
- name: Flatpak - Installer pakker
|
||||
community.general.flatpak:
|
||||
name: "{{ flatpak_packages }}"
|
||||
method: system
|
||||
state: present
|
||||
@@ -0,0 +1,75 @@
|
||||
---
|
||||
# 1Password
|
||||
- name: 1Password - GPG nøgle
|
||||
ansible.builtin.rpm_key:
|
||||
key: https://downloads.1password.com/linux/keys/1password.asc
|
||||
state: present
|
||||
|
||||
- name: 1Password - repo
|
||||
ansible.builtin.yum_repository:
|
||||
name: 1password
|
||||
description: 1Password Stable Channel
|
||||
baseurl: https://downloads.1password.com/linux/rpm/stable/$basearch
|
||||
enabled: true
|
||||
gpgcheck: true
|
||||
repo_gpgcheck: true
|
||||
gpgkey: https://downloads.1password.com/linux/keys/1password.asc
|
||||
state: present
|
||||
|
||||
# Sublime Text
|
||||
- name: Sublime Text - GPG nøgle
|
||||
ansible.builtin.rpm_key:
|
||||
key: https://download.sublimetext.com/sublimehq-rpm-pub.gpg
|
||||
state: present
|
||||
|
||||
- name: Sublime Text - repo
|
||||
ansible.builtin.command:
|
||||
cmd: dnf config-manager addrepo --from-repofile=https://download.sublimetext.com/rpm/stable/x86_64/sublime-text.repo
|
||||
args:
|
||||
creates: /etc/yum.repos.d/sublime-text.repo
|
||||
|
||||
# LibreWolf
|
||||
- name: LibreWolf - repo
|
||||
ansible.builtin.command:
|
||||
cmd: dnf config-manager addrepo --from-repofile=https://repo.librewolf.net/librewolf.repo
|
||||
args:
|
||||
creates: /etc/yum.repos.d/librewolf.repo
|
||||
|
||||
# Jottacloud
|
||||
- name: Jottacloud - repo
|
||||
ansible.builtin.yum_repository:
|
||||
name: jotta-cli
|
||||
description: Jottacloud CLI
|
||||
baseurl: https://repo.jotta.cloud/redhat
|
||||
gpgcheck: true
|
||||
gpgkey: https://repo.jotta.cloud/public.gpg
|
||||
state: present
|
||||
|
||||
# VSCodium
|
||||
- name: VSCodium - repo
|
||||
ansible.builtin.yum_repository:
|
||||
name: gitlab.com_paulcarroty_vscodium_repo
|
||||
description: gitlab.com_paulcarroty_vscodium_repo
|
||||
baseurl: https://paulcarroty.gitlab.io/vscodium-deb-rpm-repo/rpms/
|
||||
enabled: true
|
||||
gpgcheck: true
|
||||
repo_gpgcheck: true
|
||||
gpgkey: https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/raw/master/pub.gpg
|
||||
metadata_expire: 1h
|
||||
state: present
|
||||
|
||||
# Cider
|
||||
- name: Cider - GPG nøgle
|
||||
ansible.builtin.rpm_key:
|
||||
key: https://repo.cider.sh/RPM-GPG-KEY
|
||||
state: present
|
||||
|
||||
- name: Cider - repo
|
||||
ansible.builtin.yum_repository:
|
||||
name: cidercollective
|
||||
description: Cider Collective Repository
|
||||
baseurl: https://repo.cider.sh/rpm/RPMS
|
||||
enabled: true
|
||||
gpgcheck: true
|
||||
gpgkey: https://repo.cider.sh/RPM-GPG-KEY
|
||||
state: present
|
||||
@@ -0,0 +1,60 @@
|
||||
---
|
||||
- name: RPM Fusion - Installer free og nonfree repos
|
||||
ansible.builtin.dnf:
|
||||
name:
|
||||
- "https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-{{ ansible_distribution_major_version }}.noarch.rpm"
|
||||
- "https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-{{ ansible_distribution_major_version }}.noarch.rpm"
|
||||
state: present
|
||||
|
||||
- name: RPM Fusion - Aktiver Cisco OpenH264
|
||||
ansible.builtin.command:
|
||||
cmd: dnf config-manager setopt fedora-cisco-openh264.enabled=1
|
||||
changed_when: false
|
||||
|
||||
- name: RPM Fusion - Opdater @core
|
||||
ansible.builtin.dnf:
|
||||
name: "@core"
|
||||
state: latest
|
||||
|
||||
- name: RPM Fusion - Installer appstream data
|
||||
ansible.builtin.dnf:
|
||||
name: "rpmfusion-*-appstream-data"
|
||||
state: present
|
||||
|
||||
- name: Multimedia - Swap ffmpeg-free til ffmpeg
|
||||
ansible.builtin.command:
|
||||
cmd: dnf swap -y ffmpeg-free ffmpeg --allowerasing
|
||||
register: ffmpeg_swap
|
||||
changed_when: "'Nothing to do' not in ffmpeg_swap.stdout"
|
||||
failed_when: ffmpeg_swap.rc != 0 and 'already installed' not in ffmpeg_swap.stderr | default('')
|
||||
|
||||
- name: Multimedia - Opdater @multimedia
|
||||
ansible.builtin.command:
|
||||
cmd: dnf update -y @multimedia --setopt=install_weak_deps=False --exclude=PackageKit-gstreamer-plugin
|
||||
changed_when: false
|
||||
|
||||
- name: Multimedia - Intel media driver (kun Intel CPU)
|
||||
ansible.builtin.dnf:
|
||||
name: intel-media-driver
|
||||
state: present
|
||||
when: ansible_processor | join(' ') | lower is search('intel')
|
||||
|
||||
- name: DVD - rpmfusion-free-release-tainted
|
||||
ansible.builtin.dnf:
|
||||
name: rpmfusion-free-release-tainted
|
||||
state: present
|
||||
|
||||
- name: DVD - libdvdcss
|
||||
ansible.builtin.dnf:
|
||||
name: libdvdcss
|
||||
state: present
|
||||
|
||||
- name: Firmware - rpmfusion-nonfree-release-tainted
|
||||
ansible.builtin.dnf:
|
||||
name: rpmfusion-nonfree-release-tainted
|
||||
state: present
|
||||
|
||||
- name: Firmware - installer nonfree firmware
|
||||
ansible.builtin.command:
|
||||
cmd: dnf --repo=rpmfusion-nonfree-tainted install -y "*-firmware"
|
||||
changed_when: false
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
- name: System - resolv.conf symlink (NetworkManager + systemd-resolved fix)
|
||||
ansible.builtin.file:
|
||||
src: /run/systemd/resolve/stub-resolv.conf
|
||||
dest: /etc/resolv.conf
|
||||
state: link
|
||||
force: true
|
||||
@@ -0,0 +1,21 @@
|
||||
---
|
||||
dnf_packages:
|
||||
- fastfetch
|
||||
- stow
|
||||
- fish
|
||||
- steam
|
||||
- git
|
||||
- gh
|
||||
- nvim
|
||||
- tldr
|
||||
- btop
|
||||
- 1password
|
||||
- sublime-text
|
||||
- mangojuice
|
||||
- gamemode
|
||||
- gamescope
|
||||
- obs-studio
|
||||
- jotta-cli
|
||||
- codium
|
||||
- rpmconf
|
||||
- Cider
|
||||
@@ -0,0 +1,14 @@
|
||||
---
|
||||
flatpak_packages:
|
||||
- com.discordapp.Discord
|
||||
- io.github.Faugus.faugus-launcher
|
||||
- com.adamcake.Bolt
|
||||
- com.notesnook.Notesnook
|
||||
- com.saivert.pwvucontrol
|
||||
- com.github.tchx84.Flatseal
|
||||
- org.kde.kdenlive
|
||||
- it.mijorus.gearlever
|
||||
- com.github.Matoking.protontricks
|
||||
- com.vysp3r.ProtonPlus
|
||||
- org.musicbrainz.Picard
|
||||
- io.github.lullabyX.sone
|
||||
Reference in New Issue
Block a user