Skip to content

Instantly share code, notes, and snippets.

@ru-ka
Last active May 1, 2025 15:50
Show Gist options
  • Select an option

  • Save ru-ka/19fce63e8b43202041875d392c1bb4a4 to your computer and use it in GitHub Desktop.

Select an option

Save ru-ka/19fce63e8b43202041875d392c1bb4a4 to your computer and use it in GitHub Desktop.
A simple Ansible Playbook that installs some useful repositories to the system
---
- name: Add Repositories
hosts: localhost
become: true
tasks:
- name: Install dnf-plugins-core
dnf:
name: dnf-plugins-core
state: present
- name: Install dnf-utils
dnf:
name: dnf-utils
state: present
- name: Enable fedora-cisco-openh264 repository
ansible.builtin.command:
cmd: dnf5 config-manager setopt fedora-cisco-openh264.enabled=true
- name: Add Additional COPR repositories
command: "dnf copr enable -y {{ item }}"
args:
creates: "/etc/yum.repos.d/_copr:copr.fedorainfracloud.org:{{ item | replace('/', ':') | replace('@', 'group_') }}.repo"
loop:
- aleasto/waydroid
- alebastr/sway-extras
- atim/lazygit
- fbdtemme/torrenttools
- fcsm/cryfs
- g3tchoo/prismlauncher
- jc141/DwarFS
- lantw44/guix
- mathstuf/mkchromecast
- matthickford/git-credential-manager
- medzik/darling
- mroche/cloud-native-utilities
- neilalexander/yggdrasil-go
- petersen/haskell-language-server
- petersen/mdbook
- petersen/nix
- rebus/infosec
- sentry/mgba
- stsp/dosemu2
- whitehara/htpdate
- sneexy/floorp
- wojnilowicz/ungoogled-chromium
- cuey78/xpadneo
- kylegospo/winesync-dkms
- sentry/xone
- ycollet/audinux
- patrickl/yabridge
- aflyhorse/libjpeg
- "@kdesig/kde4"
- "@kdesig/plasma-gamemode"
- "@kdesig/plasma-mobile"
- "@kdesig/python-qmake2cmake"
- "@kdesig/python-qt6"
- name: Add Cloudflared repository
get_url:
url: https://pkg.cloudflare.com/cloudflared-ascii.repo
dest: /etc/yum.repos.d/cloudflared.repo
mode: "0644"
owner: root
group: root
- name: Create Duck Stable repository file
copy:
dest: /etc/yum.repos.d/duck-stable.repo
content: |
[duck-stable]
name=duck-stable
baseurl=https://repo.cyberduck.io/stable/$basearch/
enabled=1
gpgcheck=0
owner: root
group: root
mode: "0644"
- name: Add FirefoxPWA repository
block:
- name: Import GPG key for FirefoxPWA repository
rpm_key:
state: present
key: https://packagecloud.io/filips/FirefoxPWA/gpgkey
- name: Create FirefoxPWA repository file
copy:
dest: /etc/yum.repos.d/firefoxpwa.repo
content: |
[firefoxpwa]
name=FirefoxPWA
metadata_expire=300
baseurl=https://packagecloud.io/filips/FirefoxPWA/rpm_any/rpm_any/$basearch
gpgkey=https://packagecloud.io/filips/FirefoxPWA/gpgkey
repo_gpgcheck=1
gpgcheck=0
enabled=1
owner: root
group: root
mode: "0644"
- name: Setup Visual Studio Code repository
block:
- name: Import Microsoft GPG key
rpm_key:
state: present
key: https://packages.microsoft.com/keys/microsoft.asc
- name: Add Visual Studio Code repository
yum_repository:
name: code
description: Visual Studio Code
baseurl: https://packages.microsoft.com/yumrepos/vscode
enabled: yes
gpgcheck: yes
gpgkey: https://packages.microsoft.com/keys/microsoft.asc
- name: Add Intel oneAPI repository
yum_repository:
name: oneAPI
description: Intel® oneAPI repository
baseurl: https://yum.repos.intel.com/oneapi
enabled: yes
gpgcheck: yes
repo_gpgcheck: yes
gpgkey: https://yum.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
- name: Create Keybase repository file
yum_repository:
name: keybase
description: Keybase repository
baseurl: http://prerelease.keybase.io/rpm/x86_64
enabled: yes
gpgcheck: yes
gpgkey: https://keybase.io/docs/server_security/code_signing_key.asc
metadata_expire: 60
- name: Add Netbird repository
yum_repository:
name: netbird
description: Netbird repository
baseurl: https://pkgs.netbird.io/yum/
enabled: yes
gpgcheck: no
gpgkey: https://pkgs.netbird.io/yum/repodata/repomd.xml.key
repo_gpgcheck: yes
- name: Create Google Chrome repository file
copy:
dest: /etc/yum.repos.d/google-chrome.repo
content: |
[google-chrome]
name=google-chrome
baseurl=https://dl.google.com/linux/chrome/rpm/stable/x86_64
skip_if_unavailable=True
gpgcheck=1
gpgkey=https://dl.google.com/linux/linux_signing_key.pub
enabled=1
owner: root
group: root
mode: "0644"
- name: Add Github CLI repository
ansible.builtin.command:
cmd: >
dnf5 config-manager addrepo --from-repofile=https://cli.github.com/packages/rpm/gh-cli.repo
args:
creates: "/etc/yum.repos.d/gh-cli.repo"
- name: Add openSUSE repository for home:ra3xdh
ansible.builtin.command:
cmd: >
dnf5 config-manager addrepo --from-repofile=https://download.opensuse.org/repositories/home:ra3xdh/Fedora_Rawhide/home:ra3xdh.repo
args:
creates: "/etc/yum.repos.d/home:ra3xdh.repo"
- name: Add openSUSE repository for home:bespokesynth
ansible.builtin.command:
cmd: >
dnf5 config-manager addrepo --from-repofile=https://download.opensuse.org/repositories/home:bespokesynth/Fedora_40/home:bespokesynth.repo
args:
creates: "/etc/yum.repos.d/home:bespokesynth.repo"
- name: Add terra repository
ansible.builtin.command:
cmd: >
dnf install -y --repofrompath 'terra,https://repos.fyralabs.com/terra$releasever'
--setopt='terra.gpgkey=https://repos.fyralabs.com/terra$releasever/key.asc'
terra-release
args:
creates: /etc/yum.repos.d/terra.repo
- name: Configure Wazuh repository
block:
- name: Import Wazuh GPG key
ansible.builtin.rpm_key:
state: present
key: https://packages.wazuh.com/key/GPG-KEY-WAZUH
- name: Add Wazuh repository
ansible.builtin.yum_repository:
name: wazuh
description: EL-$releasever - Wazuh
baseurl: https://packages.wazuh.com/4.x/yum/
gpgcheck: yes
gpgkey: https://packages.wazuh.com/key/GPG-KEY-WAZUH
enabled: yes
protect: yes
- name: Create CrowdSec repository file
copy:
dest: /etc/yum.repos.d/crowdsec_crowdsec.repo
content: |
[crowdsec_crowdsec]
name=crowdsec_crowdsec
baseurl=https://packagecloud.io/crowdsec/crowdsec/fedora/$releasever/$basearch
repo_gpgcheck=1
gpgcheck=1
enabled=1
gpgkey=https://packagecloud.io/crowdsec/crowdsec/gpgkey
https://packagecloud.io/crowdsec/crowdsec/gpgkey/crowdsec-crowdsec-EDE2C695EC9A5A5C.pub.gpg
https://packagecloud.io/crowdsec/crowdsec/gpgkey/crowdsec-crowdsec-C822EDD6B39954A1.pub.gpg
https://packagecloud.io/crowdsec/crowdsec/gpgkey/crowdsec-crowdsec-FED78314A2468CCF.pub.gpg
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
[crowdsec_crowdsec-source]
name=crowdsec_crowdsec-source
baseurl=https://packagecloud.io/crowdsec/crowdsec/fedora/$releasever/SRPMS
repo_gpgcheck=1
gpgcheck=1
enabled=1
gpgkey=https://packagecloud.io/crowdsec/crowdsec/gpgkey
https://packagecloud.io/crowdsec/crowdsec/gpgkey/crowdsec-crowdsec-EDE2C695EC9A5A5C.pub.gpg
https://packagecloud.io/crowdsec/crowdsec/gpgkey/crowdsec-crowdsec-C822EDD6B39954A1.pub.gpg
https://packagecloud.io/crowdsec/crowdsec/gpgkey/crowdsec-crowdsec-FED78314A2468CCF.pub.gpg
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
owner: root
group: root
mode: "0644"
- name: Add rpm-fusion repository
ansible.builtin.shell:
cmd: >
dnf install -y https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
- name: Install rpmfusion-free-tained respotories
dnf:
name: rpmfusion-free-release-tainted
state: present
- name: Install rpmfusion-nonfree-tained respotories
dnf:
name: rpmfusion-nonfree-release-tainted
state: present
- name: Install Guix
ansible.builtin.command:
cmd: >
dnf install -y guix --setopt=optional_metadata_types=filelists
- name: Install Nix
dnf:
name: nix
state: present
- name: Install Multimedia Codecs
block:
- name: Switch to full ffmpeg
ansible.builtin.command:
cmd: >
dnf swap -y ffmpeg-free ffmpeg --allowerasing
- name: Switch to full mesa-va-drivers
ansible.builtin.command:
cmd: >
dnf swap -y mesa-va-drivers mesa-va-drivers-freeworld
- name: Switch to full mesa-vdpau-drivers
ansible.builtin.command:
cmd: >
dnf swap -y mesa-vdpau-drivers mesa-vdpau-drivers-freeworld
- name: Switch to full mesa-va-drivers (x86)
ansible.builtin.command:
cmd: >
dnf swap -y mesa-va-drivers.i686 mesa-va-drivers-freeworld.i686
- name: Switch to full mesa-vdpau-drivers (x86)
ansible.builtin.command:
cmd: >
dnf swap -y mesa-vdpau-drivers.i686 mesa-vdpau-drivers-freeworld.i686
- name: Install libdvdcss
ansible.builtin.command:
cmd: >
dnf install -y libdvdcss
- name: Install Firmwares
ansible.builtin.command:
cmd: >
dnf --repo=rpmfusion-nonfree-tainted install "*-firmware"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment