Unify everything into one config playbook. Handle some more stuff

This commit is contained in:
exu 2024-10-09 21:40:52 +02:00
parent 9a00a664fe
commit 916b0d41eb
5 changed files with 308 additions and 269 deletions

View File

@ -197,7 +197,6 @@ sudo cp -r "$tempdir/arch-config/etc" /
# Copy pacman config depending on system architecture
# This is required due to differences in available repos between Arch on x86_64 and ALARM for aarch64
# TODO
if [ "$(uname --machine)" == "x86_64" ]; then
sudo cp "/etc/pacman-x86_64.conf" "/etc/pacman.conf"
fi
@ -231,7 +230,6 @@ EOF
systemctl --user daemon-reload
# set systemd services for vmware (only if installed)
# TODO
if [[ $(pacman -Q | grep vmware-workstation) ]]; then
sudo systemctl enable --now vmware-networks.service || echo "Service failed, continuing"
sudo systemctl enable --now vmware-usbarbitrator.service || echo "Service failed, continuing"
@ -247,7 +245,6 @@ fi
sudo systemctl enable fstrim.timer
# enable btrfs maintenance timers
# TODO
if [[ $(pacman -Q | grep btrfsmaintenance) ]]; then
sudo systemctl restart btrfsmaintenance-refresh.service
sudo systemctl enable btrfs-balance.timer
@ -261,7 +258,6 @@ sudo timedatectl set-ntp true
systemctl --user enable --now ssh-agent
# enable reflector timer
# TODO
if [[ $(pacman -Q | grep reflector) ]]; then
sudo systemctl enable reflector.timer
fi
@ -277,7 +273,6 @@ cat <<EOF
EOF
# set systemd and group for vmware (only if installed)
# TODO
if [[ $(pacman -Q | grep vmware-workstation) ]]; then
echo "Setting up group for vmware"
sudo groupadd -f vmware

View File

@ -1,66 +0,0 @@
---
- name: Copy new files and directories
ansible.builtin.copy:
src: "files/{{ item }}"
dest: "~/{{ item }}"
loop:
- ".config"
- ".face"
- ".gitconfig"
- ".gtkrc-2.0"
- ".local"
- ".ssh"
- "scripts"
- name: Copy new files and directories (root)
ansible.builtin.copy:
src: "files/{{ item }}"
dest: "~/{{ item }}"
loop:
- "etc"
become: true
- name: Symlink xdg environment variables
ansible.builtin.file:
src: "~/.config/user-dirs.dirs"
dest: "~/.config/environment.d/user-dirs.dirs.conf"
state: "link"
- name: Download bash cat
ansible.builtin.git:
repo: https://github.com/exu-g/bash-cat-with-cat.git
dest: "/tmp/bash-cat-with-cat"
- name: Copy bash cat to scripts
ansible.builtin.copy:
src: "/tmp/bash-cat-with-cat/cat.sh"
dest: "~/scripts/pieces/cat.sh"
mode: "0755"
- name: Reload user systemd services
ansible.builtin.systemd_service:
daemon_reload: true
- name: Enable fstrim
ansible.builtin.systemd_service:
name: fstrim.timer
state: "started"
enabled: true
become: true
- name: Enable NTP
ansible.builtin.command: timedatectl set-ntp true
become: true
- name: Enable ssh-agent
ansible.builtin.systemd_service:
name: ssh-agent
state: "restarted"
enabled: true
- name: Enable vnstat
ansible.builtin.systemd_service:
name: vnstat
state: "started"
enabled: true
become: true

View File

@ -1,8 +1,143 @@
---
- name: Include tasks from preparation.yml
ansible.builtin.include_tasks:
file: preparation.yml
# - name: Include tasks from preparation.yml
# ansible.builtin.include_tasks:
# file: preparation.yml
- name: Include tasks from copy_new.yml
ansible.builtin.include_tasks:
file: copy_new.yml
- name: Gather the package facts
ansible.builtin.package_facts:
- name: Create backup structure
ansible.builtin.file:
path: "~/old_dat"
state: "directory"
- name: Copy files to backup
ansible.builtin.copy:
src: "~/{{ item }}"
dest: "~/old_dat/{{ item }}"
loop:
- ".config"
- ".ssh"
- ".local/share/applications"
- ".mozilla"
- "scripts"
- name: Remove old files and directories
ansible.builtin.file:
path: "{{ item }}"
state: "absent"
loop:
- "~/.config/Vorlagen"
- "~/scripts/in_path"
- "~/scripts/pieces"
- "~/scripts/polybar"
- "~/scripts/archive"
# - name: Include tasks from copy_new.yml
# ansible.builtin.include_tasks:
# file: copy_new.yml
- name: Copy new files and directories
ansible.builtin.copy:
#src: "files/{{ item }}"
src: "{{ item }}"
dest: "~/{{ item }}"
loop:
- ".config"
- ".face"
- ".gitconfig"
- ".gtkrc-2.0"
- ".local"
- ".ssh"
- "scripts"
- name: Copy new files and directories (root)
ansible.builtin.copy:
#src: "files/{{ item }}"
src: "{{ item }}"
dest: "~/{{ item }}"
loop:
- "etc"
become: true
- name: x86_64 | Copy files (root)
ansible.builtin.copy:
src: "{{ item }}"
dest: "/etc/pacman.conf"
loop:
- "/etc/pacman-x86_64.conf"
when: ansible_architecture == "x86_64"
become: true
- name: Symlink xdg environment variables
ansible.builtin.file:
src: "~/.config/user-dirs.dirs"
dest: "~/.config/environment.d/user-dirs.dirs.conf"
state: "link"
- name: Bash cat | Download
ansible.builtin.git:
repo: https://github.com/exu-g/bash-cat-with-cat.git
dest: "/tmp/bash-cat-with-cat"
- name: Bash cat | Copy to scripts
ansible.builtin.copy:
src: "/tmp/bash-cat-with-cat/cat.sh"
dest: "~/scripts/pieces/cat.sh"
mode: "0755"
- name: Reload user systemd services
ansible.builtin.systemd_service:
daemon_reload: true
- name: Enable fstrim
ansible.builtin.systemd_service:
name: fstrim.timer
state: "started"
enabled: true
become: true
- name: Enable btrfsmaintenance timers
ansible.builtin.systemd_service:
name: "{{ item }}"
enabled: true
loop:
- "btrfs-balance.timer"
- "btrfs-scrub.timer"
when: ('btrfsmaintenance' in ansible_facts.packages)
become: true
- name: Enable btrfsmaintenance services
ansible.builtin.systemd_service:
name: "{{ item }}"
state: "restarted"
loop:
- "btrfsmaintenance-refresh.service"
when: ('btrfsmaintenance' in ansible_facts.packages)
become: true
- name: Enable reflector
ansible.builtin.systemd_service:
name: "{{ item }}"
enabled: true
loop:
- "reflector.timer"
when: ('reflector' in ansible_facts.packages)
become: true
- name: Enable NTP
ansible.builtin.command: timedatectl set-ntp true
become: true
- name: Enable ssh-agent
ansible.builtin.systemd_service:
name: ssh-agent
state: "restarted"
enabled: true
- name: Enable vnstat
ansible.builtin.systemd_service:
name: vnstat
state: "started"
enabled: true
become: true

View File

@ -1,26 +0,0 @@
- name: Create backup structure
ansible.builtin.file:
path: "~/old_dat"
state: "directory"
- name: Copy files to backup
ansible.builtin.copy:
src: "~/{{ item }}"
dest: "~/old_dat/{{ item }}"
loop:
- ".config"
- ".ssh"
- ".local/share/applications"
- ".mozilla"
- "scripts"
- name: Remove old files and directories
ansible.builtin.file:
path: "{{ item }}"
state: "absent"
loop:
- "~/.config/Vorlagen"
- "~/scripts/in_path"
- "~/scripts/pieces"
- "~/scripts/polybar"
- "~/scripts/archive"

View File

@ -1,174 +1,175 @@
---
- name: Update packages
community.general.pacman:
update_cache: true
upgrade: true
update_cache: true
upgrade: true
become: true
- name: Install official packages
community.general.pacman:
state: present
# select the lines and use 'M-x sort-lines'
name:
#- gnome-keyring
#- hdparm
#- libaacs
#- libbluray
#- libcdio
#- libdvdcss
#- libdvdnav
#- libdvdread
#- libsecret
#- phonon-qt5-gstreamer
#- seahorse
- aardvark-dns # containers
- amd-ucode # microcode
- ansible # iac
- base-devel # devel stuff
- bind # dnsutils (nslookup, dig)
- btrfs-progs # btrfs
- buildah # containers
- clang
- cmake
- composer
- discord
- dnsmasq # virtualization
- dosfstools # fat
- e2fsprogs # ext4
- easyeffects # audio effects
- edk2-ovmf # virtualization
- emacs-wayland
- exfatprogs # exfat
- f2fs-tools # f2fs
- fd
- ffmpeg # multimedia
- firefox # browser
- firewalld # firewall
- fish # shell
- flatpak # packages
- freetype2 # fonts
- fuse-overlayfs # containers
- fwupd # firmware
- fwupd-efi # firmware
- gdb
- git # code
- git-lfs # code
- hunspell # spelling
- hunspell-de # spelling
- hunspell-en_gb # spelling
- hunspell-en_us # spelling
- hyphen # spelling
- hyphen-de # spelling
- hyphen-en # spelling
- imv # image viewer
- intel-media-driver # VAAPI
- intel-ucode # microcode
- jre-openjdk # java
- just # command runner
- kde-applications-meta # kde
- kid3 # music metadata
- krita
- languagetool
- lib32-mesa # video driver
- lib32-vulkan-intel # video driver
- lib32-vulkan-radeon # video driver
- libreoffice-fresh # office
- libreoffice-fresh-de # office
- libva-intel-driver # VAAPI
- libva-mesa-driver # VAAPI
- libva-utils # VAAPI
- libvirt # virtualization
- linux # kernel
- linux-firmware # kernel
- linux-headers # kernel
- lldb
- lldb-mi
- lutris # games
- man-db # docs
- mesa # video driver
- mesa-vdpau # VDPAU
- mosh # remote shell
- mtools # fat
- mythes-de # thesaurus
- mythes-en # thesaurus
- nerd-fonts # fonts
- nextcloud-client # cloud
- nodejs
- noto-fonts # fonts
- noto-fonts-cjk # fonts
- noto-fonts-emoji # fonts
- ntfs-3g # ntfs
- nvme-cli # nvme ssd
- obs-studio # recording
- okular # pdf
- openssh # remote shell
- opentofu # iac
- otf-font-awesome # fonts
- p7zip # compression
- packagekit-qt6
- pacman-contrib # scripts
- pandoc
- php # code
- piper # mouse
- pipewire # audio
- pipewire-alsa # audio
- pipewire-jack # audio
- pipewire-pulse # audio
- pkgstats
- podman # containers
- power-profiles-daemon # power management
- prettier # code
- pyright # code
- python-black # code
- python-debugpy # code
- python-isort # code
- python-pip # code
- python-pipenv # code
- python-pyflakes # code
- python-pytest # code
- qemu-full # virtualization
- rebuild-detector # packages
- reflector # mirrors
- restic # backup
- ripgrep # doom emacs
- rsync # file sync
- ruby-sass # code
- shellcheck # code
- shfmt # code
- smartmontools # disks
- steam # games
- stress # benchmark
- stylelint # code
- tesseract-data-deu
- tesseract-data-eng
- texlive-core
- thunderbird # email
- tidy
- traceroute # network
- transmission-remote-gtk # torrent
- ttf-fira-code # fonts
- ttf-fira-sans # fonts
- udftools # udf
- unrar # compression
- unzip # compression
- util-linux # various utils
- vdpauinfo # VDPAU
- vim # editor
- virt-manager # virtualization
- vscode-css-languageserver
- vulkan-intel # video driver
- vulkan-radeon # video driver
- wget # network
- wine # windows
- wireguard-tools # vpn
- wireplumber # audio
- xdg-desktop-portal-gtk # flatpak theming
- xdg-user-dirs # standards
- xdg-utils # standards
- xfsprogs # xfs
- yt-dlp
# - dockerfile-language-server # code # AUR
# - dockfmt # AUR
# - refind-theme-nord # bootmenu # AUR
# - btrfsmaintenance # AUR
state: present
# select the lines and use 'M-x sort-lines'
name: "{{ item }}"
loop:
#- gnome-keyring
#- hdparm
#- libaacs
#- libbluray
#- libcdio
#- libdvdcss
#- libdvdnav
#- libdvdread
#- libsecret
#- phonon-qt5-gstreamer
#- seahorse
- aardvark-dns # containers
- amd-ucode # microcode
- ansible # iac
- base-devel # devel stuff
- bind # dnsutils (nslookup, dig)
- btrfs-progs # btrfs
- buildah # containers
- clang
- cmake
- composer
- discord
- dnsmasq # virtualization
- dosfstools # fat
- e2fsprogs # ext4
- easyeffects # audio effects
- edk2-ovmf # virtualization
- emacs-wayland
- exfatprogs # exfat
- f2fs-tools # f2fs
- fd
- ffmpeg # multimedia
- firefox # browser
- firewalld # firewall
- fish # shell
- flatpak # packages
- freetype2 # fonts
- fuse-overlayfs # containers
- fwupd # firmware
- fwupd-efi # firmware
- gdb
- git # code
- git-lfs # code
- hunspell # spelling
- hunspell-de # spelling
- hunspell-en_gb # spelling
- hunspell-en_us # spelling
- hyphen # spelling
- hyphen-de # spelling
- hyphen-en # spelling
- imv # image viewer
- intel-media-driver # VAAPI
- intel-ucode # microcode
- jre-openjdk # java
- just # command runner
- kde-applications-meta # kde
- kid3 # music metadata
- krita
- languagetool
- lib32-mesa # video driver
- lib32-vulkan-intel # video driver
- lib32-vulkan-radeon # video driver
- libreoffice-fresh # office
- libreoffice-fresh-de # office
- libva-intel-driver # VAAPI
- libva-mesa-driver # VAAPI
- libva-utils # VAAPI
- libvirt # virtualization
- linux # kernel
- linux-firmware # kernel
- linux-headers # kernel
- lldb
- lldb-mi
- lutris # games
- man-db # docs
- mesa # video driver
- mesa-vdpau # VDPAU
- mosh # remote shell
- mtools # fat
- mythes-de # thesaurus
- mythes-en # thesaurus
- nerd-fonts # fonts
- nextcloud-client # cloud
- nodejs
- noto-fonts # fonts
- noto-fonts-cjk # fonts
- noto-fonts-emoji # fonts
- ntfs-3g # ntfs
- nvme-cli # nvme ssd
- obs-studio # recording
- okular # pdf
- openssh # remote shell
- opentofu # iac
- otf-font-awesome # fonts
- p7zip # compression
- packagekit-qt6
- pacman-contrib # scripts
- pandoc
- php # code
- piper # mouse
- pipewire # audio
- pipewire-alsa # audio
- pipewire-jack # audio
- pipewire-pulse # audio
- pkgstats
- podman # containers
- power-profiles-daemon # power management
- prettier # code
- pyright # code
- python-black # code
- python-debugpy # code
- python-isort # code
- python-pip # code
- python-pipenv # code
- python-pyflakes # code
- python-pytest # code
- qemu-full # virtualization
- rebuild-detector # packages
- reflector # mirrors
- restic # backup
- ripgrep # doom emacs
- rsync # file sync
- ruby-sass # code
- shellcheck # code
- shfmt # code
- smartmontools # disks
- steam # games
- stress # benchmark
- stylelint # code
- tesseract-data-deu
- tesseract-data-eng
- texlive-core
- thunderbird # email
- tidy
- traceroute # network
- transmission-remote-gtk # torrent
- ttf-fira-code # fonts
- ttf-fira-sans # fonts
- udftools # udf
- unrar # compression
- unzip # compression
- util-linux # various utils
- vdpauinfo # VDPAU
- vim # editor
- virt-manager # virtualization
- vscode-css-languageserver
- vulkan-intel # video driver
- vulkan-radeon # video driver
- wget # network
- wine # windows
- wireguard-tools # vpn
- wireplumber # audio
- xdg-desktop-portal-gtk # flatpak theming
- xdg-user-dirs # standards
- xdg-utils # standards
- xfsprogs # xfs
- yt-dlp
# - dockerfile-language-server # code # AUR
# - dockfmt # AUR
# - refind-theme-nord # bootmenu # AUR
# - btrfsmaintenance # AUR
become: true