This commit is contained in:
DeveloperDurp 2025-04-06 20:13:27 -05:00
parent 1110cf573c
commit 0e46b7c6be
32 changed files with 799 additions and 0 deletions

View file

@ -3,3 +3,6 @@ export
run: run:
ansible-playbook ./DesktopAnsible/local.yml -K ansible-playbook ./DesktopAnsible/local.yml -K
devpod:
ansible-playbook ./DesktopAnsible/local.yml

View file

@ -0,0 +1,10 @@
[Unit]
Description=Set the charge threshold at startup.
After=default.target
[Service]
Type=simple
ExecStart=system76-power charge-thresholds 75 80
[Install]
WantedBy=default.target

75
ansible/files/durp.crt Normal file
View file

@ -0,0 +1,75 @@
-----BEGIN CERTIFICATE-----
MIIEszCCA5ugAwIBAgIUZEzzxqEuYiKHkL1df+Cb22NRRJMwDQYJKoZIhvcNAQEL
BQAwFDESMBAGA1UEAxMJZHVycC5pbmZvMB4XDTI1MDEyMzIyMzQ0MloXDTM1MDEy
MTExMTU1NVowIDEeMBwGA1UEAxMVdmF1bHQuaW5mcmEuZHVycC5pbmZvMIIBIjAN
BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkZM0ue4bMcmmATs+kGYSpR2hLUzq
scGIwCtqmaKCMbd1xhmgjnIR3zvSRptLR2GVGvc1ti6qby0jXYvcqbxkHvay00zW
2zYN+M2m4lXpuWzg1t6NEoO6XGAsGj2v0vcVktPPU9uj0rGUVGWWfsvjoXqQFg5I
jdxsxK9SvMvw2XtE3FgKxpzCyw94InIHlcPwFTO+3ZdKStZlMbUDIkmszLBrWFcr
XOsPDfLxqMy0Ck//LKIt8djh3254FHB1GG5+kI+JSW1o+tUcL2NymvIINwm/2acS
1uTm+j9W7iEXav0pJNmm+/dzSskc3Y0ftM0h2HCXgitBIaEZnUVneNHOLwIDAQAB
o4IB7zCCAeswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O
BBYEFCaQ2q7j7LyBGETEZ5qaJAdlISKCMB8GA1UdIwQYMBaAFO1jCyGkpFO+QiR2
dfBMWVYeWrQ2MIH0BggrBgEFBQcBAQSB5zCB5DAzBggrBgEFBQcwAYYnaHR0cHM6
Ly8xOTIuMTY4LjIwLjI1Mzo4MjAxL3YxL3BraS9vY3NwMD0GCCsGAQUFBzABhjFo
dHRwczovL3Jvb3QtdmF1bHQuaW50ZXJuYWwuZHVycC5pbmZvL3YxL3BraS9vY3Nw
MDEGCCsGAQUFBzAChiVodHRwczovLzE5Mi4xNjguMjAuMjUzOjgyMDEvdjEvcGtp
L2NhMDsGCCsGAQUFBzAChi9odHRwczovL3Jvb3QtdmF1bHQuaW50ZXJuYWwuZHVy
cC5pbmZvL3YxL3BraS9jYTAgBgNVHREEGTAXghV2YXVsdC5pbmZyYS5kdXJwLmlu
Zm8wbwYDVR0fBGgwZjAsoCqgKIYmaHR0cHM6Ly8xOTIuMTY4LjIwLjI1Mzo4MjAx
L3YxL3BraS9jcmwwNqA0oDKGMGh0dHBzOi8vcm9vdC12YXVsdC5pbnRlcm5hbC5k
dXJwLmluZm8vdjEvcGtpL2NybDANBgkqhkiG9w0BAQsFAAOCAQEAuJ+lplY/+A5L
5LzkljbKDTy3U6PLv1LtxqVCOFGiJXBnXMjtVW07bBEUadzFRNW8GHQ3w5QzOG6k
/vE/TrrJho7l05J/uc+BUrPSNjefLmQV6hn4jrP86PR0vzRfbSqKKBIID9M7+zi6
GFvHlVkSHsQyMQp7JOoax9KVzW2Y+OIgw7Lgw2tP122WCt2SIF0QenoZHsoW0guj
tzTJRmJDjn6XeJ7L3FPkf37H6ub0Jg3zBGr6eorEFfYZNN5CXezjqMFBpRdq4UIo
1M3A7o3uyZFcFsp/vGDcMBkwaCsBV9idu/HwkvGaTUNI285ilBORPD0bMZnACq/9
+Q/cdsO5lg==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEmzCCA4OgAwIBAgIUQwCAs82sgSuiaVbjANHScO2DSfAwDQYJKoZIhvcNAQEL
BQAwFDESMBAGA1UEAxMJZHVycC5pbmZvMB4XDTI1MDEyMzExMjEyNVoXDTM1MDEy
MTExMTU1NVowFDESMBAGA1UEAxMJZHVycC5pbmZvMIIBIjANBgkqhkiG9w0BAQEF
AAOCAQ8AMIIBCgKCAQEAn9fjGRqqFsqguz56X6cXZwEMtD9wElwSFCb4Fc8YTzlH
4fV13QwXKESLE/Q+7bw4y4FJQ8BiGNbxxbQOOgWhfGGlQyFa1lfhJtYLfqRN5C2/
S7nr0YxDB9duc4OAExVL6Pr4/Koc+vDZY03l7RzwnF2AOM9DjFTASw01TphCQjRk
U+upiN2TUhUPejV/gMR+zXM6pn98UBKG1dNubS0HzAMwAEXAPm141NDyWUCPT9+3
6P03Ka8mUTx3X49OCtvJEGEQbtlnTFQaOSkP1yLW+XRMHw3sQaV2PWXu5fInbEpZ
+SuzmgLOXtmQNmHLav9q1qeTVkpBGPWvfh2Vh1JJhQIDAQABo4IB4zCCAd8wDgYD
VR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFJaP17f1Zw0V
55Ks9Uf0USVWl0BPMB8GA1UdIwQYMBaAFO1jCyGkpFO+QiR2dfBMWVYeWrQ2MIH0
BggrBgEFBQcBAQSB5zCB5DAzBggrBgEFBQcwAYYnaHR0cHM6Ly8xOTIuMTY4LjIw
LjI1Mzo4MjAxL3YxL3BraS9vY3NwMD0GCCsGAQUFBzABhjFodHRwczovL3Jvb3Qt
dmF1bHQuaW50ZXJuYWwuZHVycC5pbmZvL3YxL3BraS9vY3NwMDEGCCsGAQUFBzAC
hiVodHRwczovLzE5Mi4xNjguMjAuMjUzOjgyMDEvdjEvcGtpL2NhMDsGCCsGAQUF
BzAChi9odHRwczovL3Jvb3QtdmF1bHQuaW50ZXJuYWwuZHVycC5pbmZvL3YxL3Br
aS9jYTAUBgNVHREEDTALgglkdXJwLmluZm8wbwYDVR0fBGgwZjAsoCqgKIYmaHR0
cHM6Ly8xOTIuMTY4LjIwLjI1Mzo4MjAxL3YxL3BraS9jcmwwNqA0oDKGMGh0dHBz
Oi8vcm9vdC12YXVsdC5pbnRlcm5hbC5kdXJwLmluZm8vdjEvcGtpL2NybDANBgkq
hkiG9w0BAQsFAAOCAQEAiqAZ4zNIEkCWcvpDRq0VyJuk59sVtJr5X4FscHQ179nE
QbbvMe+EBDFS6XQml1Elj8jiPa/D5O9Oc6Iisnm5+weZKwApz/lQ+XVkWLCoEplB
ZZ9fcWVCbMLt0xlt8qn5z/mYKfbCT7ZCqDO+prQZt+ADJcQbiknfroAAqEbNKxwN
Y9uUyOWNF3SxJEch4w2dtX+IEVmxeZnhMy8OuP0SQKl8aW40ugiG0ZD5yTBBfOD9
zsrGSU/iSatn0b7bevBhaL96hz1/rNR1cL+4/albX2hrr8Rv3/SB2DLtNQlQW0ls
AfhXAqP5zL+Ytgf1Of/pVdgnhxrYUY7RKCSGY5Hagw==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDLzCCAhegAwIBAgIUNHdvOzam2HPVdwXpMHUy4wl8ZRYwDQYJKoZIhvcNAQEL
BQAwFDESMBAGA1UEAxMJZHVycC5pbmZvMB4XDTI1MDEyMzExMTUyNVoXDTM1MDEy
MTExMTU1NVowFDESMBAGA1UEAxMJZHVycC5pbmZvMIIBIjANBgkqhkiG9w0BAQEF
AAOCAQ8AMIIBCgKCAQEA8XDTVEtRI3+k4yuvqVqfIiLRQJcXbmhfVtAeYk+5j9Ox
p1w9YHdnPLqLFrD1PzadjqYeAp/fwlEFfs6lqwoTS8S9vhaFqcgB57nVMb77dTBb
/08XHXOU6FPRjdFKm5QMpS7tn1XacPMy/o0bKqRREQeiuFDGVRyuF5PUgvWc1dvJ
l27JvvgYktgjfpNS4DlCxg4lGXT5abvaKf2hnr65egaIo/yRWN9wnvAzRiY7oci7
GA1oKz87Yc1tfL2gcynrwccOOCF/eUKesJR1I6GXNkN/a1fcr+Ld9Z9NhHBtO+vE
N8DsZY+kG7DE3M4BCCTFUzllcYHjaW4HaF9vZW+PYwIDAQABo3kwdzAOBgNVHQ8B
Af8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU7WMLIaSkU75CJHZ1
8ExZVh5atDYwHwYDVR0jBBgwFoAU7WMLIaSkU75CJHZ18ExZVh5atDYwFAYDVR0R
BA0wC4IJZHVycC5pbmZvMA0GCSqGSIb3DQEBCwUAA4IBAQAS/qUI/1Yv07xUTK5k
r93kC7GSPpmpkXIsfjChAl93sebN143fu70NUP74jjCc0Wkb8hRofGg10E+/24r1
AI0KsLhzKzfIASxUVQAn8RTptLruaaPLboSA4MUZ8IB5y8Vy8E3/KtD0gD80j64Y
rm9XGHA0HTJHbPUTb/Rux2g0E7WtiyWSWH8mqzbegU8IrkM3eVT4+ylBE7YkfWDD
dw44sB71tfmDKpzWg6XQ6YMh0YfnyG1fYCj9LhuecNY9Uuo6cjDaAvkzMewWwqDx
Q2Ekas98Di6itCP8vET+gBDjeCc+XR6Hx6vzWmxlZhwDuxEKL1a2/DabUxJyMNzv
55Fn
-----END CERTIFICATE-----

1
ansible/files/go-bin.sh Normal file
View file

@ -0,0 +1 @@
export PATH=$PATH:/usr/local/go/bin

3
ansible/files/go-path.sh Normal file
View file

@ -0,0 +1,3 @@
export GOPATH=$HOME/go
export GOROOT="/usr/local/go"
export PATH=$GOPATH/bin:$PATH

10
ansible/local.yml Normal file
View file

@ -0,0 +1,10 @@
- hosts: localhost
connection: local
become: true
vars:
GITLAB_TOKEN: "{{ lookup('env', 'GITLAB_TOKEN') }}"
# vars_prompt:
roles:
- packages
- customize

3
ansible/requirements.sh Executable file
View file

@ -0,0 +1,3 @@
sudo apt install python3-pip python3-psutil
ansible-galaxy collection install community.general

View file

@ -0,0 +1,36 @@
- name: install fonts
include_tasks: "./scripts/install_fonts.yml"
- name: generate ssh keys
include_tasks: "./scripts/configure_ssh.yml"
#- name: Configure Gitlab SSH
# become_user: user
# ansible.builtin.command: pwsh -f ./scripts/configure_gitlab.ps1 "{{ GITLAB_TOKEN }}"
- user:
name: "user"
shell: /usr/bin/zsh
- name: Create bin folder
become_user: user
ansible.builtin.file:
path: ~/.local/bin
owner: "user"
group: "user"
mode: '0770'
state: directory
- name: run stow
become_user: user
shell: "stow --adopt ."
args:
chdir: ~/.dotfiles
- name: set gnome config
become_user: user
dconf:
key: "{{ item.key }}"
value: "{{ item.value }}"
with_items: "{{ dconf }}"
when: dconf is defined

View file

@ -0,0 +1,11 @@
- name: Load a variable file
include_vars: "{{ item }}"
with_first_found:
- "vars/{{ ansible_distribution }}-{{ ansible_distribution_version }}.yml"
- "vars/{{ ansible_distribution }}.yml"
- "vars/{{ ansible_os_family }}.yml"
- "vars/defaults.yml"
- name:
include_tasks: "defaults.yml"

View file

@ -0,0 +1,2 @@
#fonts:
# - {name: 'GoMonoNerd', url: "https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/Go-Mono.zip"}

View file

@ -0,0 +1,11 @@
dconf:
- {key: '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings', value: "['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/']"}
- {key: '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/binding', value: "'<Super>t'"}
- {key: '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/command', value: "'terminator'"}
- {key: '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/name', value: "'Terminator'"}
- {key: '/org/gnome/desktop/background/picture-uri', value: "'file://${HOME}/.config/configfiles/wallpaper.png'"}
- {key: '/org/gnome/desktop/background/picture-uri-dark', value: "'file://${HOME}/.config/configfiles/wallpaper.png'"}
fonts:
- {name: 'GoMonoNerd', url: "https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/Go-Mono.zip"}
- {name: 'FiraCodeNerd', url: "https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/FiraCode.zip"}

View file

@ -0,0 +1,3 @@
fonts:
- {name: 'GoMonoNerd', url: "https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/Go-Mono.zip"}
- {name: 'FiraCodeNerd', url: "https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/FiraCode.zip"}

View file

@ -0,0 +1,32 @@
- name: install apt
include_tasks: "./scripts/install_apt.yml"
- name: install brew
include_tasks: "./scripts/install_brew.yml"
- name: install pacman
include_tasks: "./scripts/install_pacman.yml"
#- name: install go
# include_tasks: "./scripts/install_go.yml"
- name: install go apps
include_tasks: "./scripts/install_goapps.yml"
- name: install flatpak
include_tasks: "./scripts/install_flatpak.yml"
- name: configure systemd
include_tasks: "./scripts/configure_systemd.yml"
- name: configure groups
include_tasks: "./scripts/configure_groups.yml"
- name: configure qemu
include_tasks: "./scripts/configure_qemu.yml"
- name: configure bat
include_tasks: "./scripts/configure_bat.yml"
- name: trust internal certs
include_tasks: "./scripts/install_local_ca.yml"

View file

@ -0,0 +1,11 @@
- name: Load a variable file
include_vars: "{{ item }}"
with_first_found:
- "vars/{{ ansible_distribution }}-{{ ansible_distribution_version }}.yml"
- "vars/{{ ansible_distribution }}.yml"
- "vars/{{ ansible_os_family }}.yml"
- "vars/defaults.yml"
- name:
include_tasks: "defaults.yml"

View file

@ -0,0 +1,148 @@
required_packages_brew:
- oh-my-posh
- zsh-history-substring-search
- zsh-autosuggestions
required_packages_pacman:
- sway
- waybar
- stow
- lazygit
- tmux
- fzf
- zoxide
- bitwarden-cli
- glab
- go
- neovim
- ffmpeg
- ttyd
- wl-clipboard
- xsel
- pavucontrol
- wofi
- swaybg
- swayidle
- swaylock
- swayimg
- swaync
- pipewire
- pipewire-pulse
- openssh
- xorg-xwayland
- wayland
- kanshi
- xdg-desktop-portal-gtk
- nautilus
- eza
- bat
- wget
- curl
- nmap
- kubectl
- terraform
- podman
- grim
- slurp
- helm
- networkmanager-openvpn
- openresolv
- xsettingsd
- vivid
- lxappearance
- qt5ct
- gnome-calculator
- powertop
- iptables
- gnome-disk-utility
- ranger
- qemu-base
- virt-manager
- virt-viewer
- dnsmasq
- vde2
- bridge-utils
- openbsd-netcat
- dmidecode
- libguestfs
- polkit-kde-agent
- libusb
- qemu-hw-usb-host
- flatpak
- ly
- seahorse
- kitty
- brightnessctl
- smbclient
- gvfs-smb
- gvfs
- cosmic
- htop
- npm
- ripgrep
- podman-compose
- bluez
- xsettingsd
- dnsutils
- yq
- jq
- k9s
- opentofu
- file-roller
- ufw
- gimp
- yazi
- cronie
- fuse2
- libappindicator-gtk3
- webkit2gtk-4.1
flatpak_remote:
- { name: "flathub", url: "https://dl.flathub.org/repo/flathub.flatpakrepo" }
required_packages_flatpak:
- com.discordapp.Discord
- io.gitlab.librewolf-community
- org.gtk.Gtk3theme.Pop-dark
- com.github.tchx84.Flatseal
- com.vscodium.codium
- com.protonvpn.www
- me.proton.Mail
- org.chromium.Chromium
- org.libreoffice.LibreOffice
- com.brave.Browser
systemd_service:
- cronie.service
- cosmic-greeter.service
#- ly.service
- libvirtd.service
- com.system76.PowerDaemon.service
- ufw.service
- podman.socket
go_apps:
- github.com/jorgerojas26/lazysql@latest
- github.com/charmbracelet/vhs@latest
- github.com/charmbracelet/glow@latest
- github.com/swaggo/swag/cmd/swag@latest
- github.com/air-verse/air@latest
yay:
- nwg-look
- catppuccin-gtk-theme-mocha
- ttf-go-nerd
- ttf-hack-nerd
- ttf-jetbrains-mono-nerd
- system76-firmware-daemon
- system76-firmware
- firmware-manager
- system76-power
- gnome-shell-extension-system76-power-git
- system76-driver
- system76-dkms
- system76-acpi-dkms
- system76-io-dkms
- wdisplays
- bluetuith
- powershell

View file

@ -0,0 +1,53 @@
install_homebrew_if_missing: true
required_packages_brew:
- lazygit
- fzf
- glab
- go
- neovim
- oh-my-posh
- tpm
- terraform
- kubernetes-cli
- zsh-autosuggestions
- bitwarden-cli
- hashicorp/tap/vault
- ffmpeg
- ttyd
- bat
- eza
- fastfetch
- vivid
- yazi
apt_keys:
- https://packages.microsoft.com/keys/microsoft.asc
apt_repo:
- deb [arch=amd64] https://packages.microsoft.com/ubuntu/22.04/prod jammy main
required_packages_apt:
- powershell
- curl
- wofi
- swaybg
- swayidle
- swaylock
- swayimg
- kanshi
- waybar
#- sway-notification-center
- grim
- slurp
- openresolv
- podman
- brightnessctl
- pavucontrol
- kitty
flatpak_remote:
- {name: 'flathub', url: "https://dl.flathub.org/repo/flathub.flatpakrepo"}
required_packages_flatpak:
- VSCodium

View file

@ -0,0 +1,89 @@
install_homebrew_if_missing: true
required_packages_brew:
- lazygit
- glab
- oh-my-posh
- tpm
- kubernetes-cli
- zsh-autosuggestions
- bitwarden-cli
- ttyd
- fastfetch
- vivid
- yazi
- zsh-history-substring-search
- opentofu
- helm
- bat
- neovim
- eza
- zoxide
- ansible
- ffmpeg
- k9s
required_packages_apt:
- htop
- stow
- zsh
- curl
- xsel
- wl-clipboard
- podman
- wget
- apt-transport-https
- software-properties-common
- qemu-kvm
- qemu-system
- qemu-utils
- python3
- python3-pip
- libvirt-clients
- libvirt-daemon-system
- bridge-utils
- virtinst
- libvirt-daemon
- virt-manager
- vlc
- vault
- fzf
- ripgrep
- libsecret-tools
- rclone
apt_keys:
- https://packages.microsoft.com/keys/microsoft.asc
apt_repo:
- deb [arch=amd64] https://packages.microsoft.com/ubuntu/22.04/prod jammy main
- deb [arch=amd64 signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com noble main
apt_repo_gpg:
- {name: "hashicorp-archive-keyring", url: "https://apt.releases.hashicorp.com/gpg"}
flatpak_remote:
- {name: 'flathub', url: "https://dl.flathub.org/repo/flathub.flatpakrepo"}
required_packages_flatpak:
- io.gitlab.librewolf-community
- me.proton.Pass
- me.proton.Mail
- com.protonvpn.www
- org.remmina.Remmina
go_version_target: "go version go1.23.4 linux/amd64"
go_tarball: "go1.23.5.linux-amd64.tar.gz"
go_checksum: "sha256:cbcad4a6482107c7c7926df1608106c189417163428200ce357695cc7e01d091"
go_apps:
- github.com/charmbracelet/vhs@latest
- github.com/charmbracelet/glow@latest
- github.com/swaggo/swag/cmd/swag@latest
- github.com/air-verse/air@latest
- github.com/minio/mc@latest
systemd_service:
- libvirtd.service
user_groups:
- video
- sudo

View file

@ -0,0 +1,3 @@
- name: Build Bat Cache
become_user: user
shell: "bat cache --build"

View file

@ -0,0 +1,32 @@
param ($GITLAB_TOKEN)
if (!$GITLAB_TOKEN){
Write-Output "Please unlock Bitwarden"
break
}
#Gitlab set ssh key
$header = @{
"PRIVATE-TOKEN"=$GITLAB_TOKEN
}
$GitlabAPI = "https://gitlab.com/api/v4"
$publickey = Get-Content ~/.ssh/id_ed25519.pub
$body = @{
title = "Ansible Script"
key = "$publickey"
} | ConvertTo-Json
Try{
Invoke-RestMethod -Headers $header -Uri $GitlabAPI/user/keys -Body $body -Method Post -ContentType application/json -ErrorVariable gitlabkey | Out-Null
}Catch{
if($gitlabkey -like "*Token is expired*"){
Write-Error "Token Has Expired"
exit -1
}
if($gitlabkey -notlike "*has already been taken*"){
Write-Error "Failed to upload key"
exit -1
}
}

View file

@ -0,0 +1,7 @@
- name: adding existing user '{{ user }}' to group sudo
user:
groups: '{{ item }}'
name: user
append: yes
with_items: "{{ user_groups }}"
when: user_groups is defined

View file

@ -0,0 +1,12 @@
- name: set default network
shell: "{{ item }}"
with_items:
- "virsh net-start default"
- "virsh net-autostart default"
ignore_errors: yes
- name: add user to libvirt
user:
name: user
groups: libvirt,libvirt-qemu,kvm,input,disk
append: yes

View file

@ -0,0 +1,14 @@
- name: Create ssh folder
become_user: user
ansible.builtin.file:
path: ~/.ssh
owner: "user"
group: "user"
mode: '0700'
state: directory
- name: Generate an OpenSSH keypair
become_user: user
community.crypto.openssh_keypair:
path: ~/.ssh/id_ed25519
type: ed25519

View file

@ -0,0 +1,30 @@
- name: Copy .service files from files folder to /etc/systemd/system
find:
paths: "files/"
hidden: yes
file_type: file
patterns: "*.service"
register: service_files
- name: Copy each .service file to systemd directory
copy:
src: "{{ item.path }}"
dest: "/etc/systemd/system"
owner: root
group: root
mode: '0644'
with_items: "{{ service_files.files }}"
when: service_files is defined
- name: Combine predefined list and filesystem paths
set_fact:
systemd_service: "{{ systemd_service | union(service_files.files | map(attribute='path') | map('basename')) | unique }}"
when: service_files is defined
- name: Enable Systemd Services
ansible.builtin.systemd_service:
name: "{{ item }}"
state: started
enabled: true
with_items: "{{ systemd_service }}"
when: systemd_service is defined

View file

@ -0,0 +1,36 @@
- name: download gpg
ansible.builtin.get_url:
url: "{{ item.url }}"
dest: "/etc/apt/keyrings/{{ item.name }}.asc"
with_items: "{{ apt_repo_gpg }}"
become: yes
when: apt_repo_gpg is defined
- name: add apt repository key
apt_key:
url: "{{ item }}"
with_items: "{{ apt_keys }}"
become: yes
when: apt_keys is defined
- name: add apt repository
apt_repository:
repo: "{{ item }}"
with_items: "{{ apt_repo }}"
become: yes
when: apt_repo is defined
- name: Upgrade Packages
package:
update_cache: yes
upgrade: safe
become: yes
when: required_packages_apt is defined
- name: Install Packages
apt:
state: latest
update_cache: yes
pkg: "{{ required_packages_apt }}"
become: yes
when: required_packages_apt is defined

View file

@ -0,0 +1,49 @@
- name: Ensuring Homebrew Is Installed
stat:
path: /home/linuxbrew/.linuxbrew/bin/
register: homebrew_check
when: required_packages_brew is defined
- name: Fail If Homebrew Is Not Installed and install_homebrew_if_missing Is False
fail:
msg: Homebrew is missing, install from http://brew.sh
when:
- required_packages_brew is defined
- not homebrew_check.stat.exists
- not install_homebrew_if_missing
- name: Installing Homebrew
become_user: user
shell: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
when:
- required_packages_brew is defined
- not homebrew_check.stat.exists
- install_homebrew_if_missing
- name: Load Brew shellenv
become_user: user
shell: eval "$(/home/linuxbrew/.linuxbrew/bin brew shellenv)"
when:
- required_packages_brew is defined
- not homebrew_check.stat.exists
- install_homebrew_if_missing
- name: Install Brew Taps
become_user: user
community.general.homebrew_tap:
name: "{{ item }}"
with_items: "{{ required_taps }}"
when: required_taps is defined
- name: Install Brew Casks
become_user: user
community.general.homebrew_cask:
name: "{{ item }}"
with_items: "{{ required_packages_casks }}"
when: required_packages_casks is defined
- name: Install Brew Packages
become_user: user
community.general.homebrew:
name: "{{ required_packages_brew }}"
when: required_packages_brew is defined

View file

@ -0,0 +1,22 @@
- name: configure flatpak
community.general.flatpak_remote:
name: "{{ item.name }}"
state: present
flatpakrepo_url: "{{ item.url }}"
method: system
with_items: "{{ flatpak_remote }}"
when: flatpak_remote is defined
- name: update flatpaks
become_user: user
shell:
cmd: flatpak update --noninteractive
when: required_packages_flatpak is defined
- name: install flatpak
become_user: user
community.general.flatpak:
name: "{{ item }}"
with_items: "{{ required_packages_flatpak }}"
when: required_packages_flatpak is defined
ignore_errors: yes

View file

@ -0,0 +1,23 @@
- name: ensure fonts directory
become_user: user
file:
path: "~/.fonts"
state: directory
when: fonts is defined
- name: Ensuring Fonts Exists
become_user: user
shell: "ls ~/.fonts/*{{ item.name }}*"
register: fonts_exist
ignore_errors: yes
with_items: "{{ fonts }}"
when: fonts is defined
- name: Download Fonts
when: fonts_exist is failed
become_user: user
ansible.builtin.unarchive:
src: "{{ item.url }}"
dest: "~/.fonts/"
remote_src: yes
with_items: "{{ fonts }}"

View file

@ -0,0 +1,36 @@
- name: Register the current Go version (if any)
command: go version
ignore_errors: yes
register: go_version
changed_when: false
- name: Download the Go tarball
get_url:
url: "https://go.dev/dl/{{ go_tarball }}"
dest: /usr/local/src/{{ go_tarball }}
checksum: "{{ go_checksum }}"
#when: go_version|failed or go_version.stdout != go_version_target
- name: Remove old installation of Go
file:
path: /usr/local/go
state: absent
#when: go_version|failed or go_version.stdout != go_version_target
- name: Extract the Go tarball if Go is not yet installed or not the desired version
unarchive:
src: /usr/local/src/{{ go_tarball }}
dest: /usr/local
copy: no
#when: go_version|failed or go_version.stdout != go_version_target
- name: Add the Go bin directory to the PATH environment variable for all users
copy:
src: go-bin.sh
dest: /etc/profile.d
- name: Set GOPATH for all users
copy:
src: go-path.sh
dest: /etc/profile.d
#when: set_go_path

View file

@ -0,0 +1,9 @@
- name: Installing Go apps
become_user: user
shell: "go install {{ item }}"
with_items: "{{ go_apps }}"
when: go_apps is defined
- name: Build Bat Cache
become_user: user
shell: "bat cache --build"

View file

@ -0,0 +1,7 @@
- name: Copy Public certs
copy:
src: durp.crt
dest: /etc/ca-certificates/trust-source/anchors/durp.crt
- name: Trust certs
command: trust extract-compat

View file

@ -0,0 +1,14 @@
- name: Upgrade Packages
community.general.pacman:
state: latest
update_cache: yes
become: yes
when: required_packages_pacman is defined
- name: Install Packages
community.general.pacman:
state: present
update_cache: yes
name: "{{ required_packages_pacman }}"
become: yes
when: required_packages_pacman is defined

View file

@ -0,0 +1,4 @@
- name: Install tmux TPM
become_user: user
shell: "git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm"
ignore_errors: yes