update
This commit is contained in:
parent
1110cf573c
commit
0e46b7c6be
32 changed files with 799 additions and 0 deletions
3
Makefile
3
Makefile
|
|
@ -3,3 +3,6 @@ export
|
|||
|
||||
run:
|
||||
ansible-playbook ./DesktopAnsible/local.yml -K
|
||||
|
||||
devpod:
|
||||
ansible-playbook ./DesktopAnsible/local.yml
|
||||
|
|
|
|||
10
ansible/files/charge-thresholds.service
Normal file
10
ansible/files/charge-thresholds.service
Normal 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
75
ansible/files/durp.crt
Normal 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
1
ansible/files/go-bin.sh
Normal file
|
|
@ -0,0 +1 @@
|
|||
export PATH=$PATH:/usr/local/go/bin
|
||||
3
ansible/files/go-path.sh
Normal file
3
ansible/files/go-path.sh
Normal 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
10
ansible/local.yml
Normal 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
3
ansible/requirements.sh
Executable file
|
|
@ -0,0 +1,3 @@
|
|||
sudo apt install python3-pip python3-psutil
|
||||
ansible-galaxy collection install community.general
|
||||
|
||||
36
ansible/roles/customize/tasks/defaults.yml
Normal file
36
ansible/roles/customize/tasks/defaults.yml
Normal 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
|
||||
11
ansible/roles/customize/tasks/main.yml
Normal file
11
ansible/roles/customize/tasks/main.yml
Normal 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"
|
||||
|
||||
2
ansible/roles/customize/vars/Archlinux.yml
Normal file
2
ansible/roles/customize/vars/Archlinux.yml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
#fonts:
|
||||
# - {name: 'GoMonoNerd', url: "https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/Go-Mono.zip"}
|
||||
11
ansible/roles/customize/vars/Pop!_OS-22.04.yml
Normal file
11
ansible/roles/customize/vars/Pop!_OS-22.04.yml
Normal 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"}
|
||||
3
ansible/roles/customize/vars/Pop!_OS-24.04.yml
Normal file
3
ansible/roles/customize/vars/Pop!_OS-24.04.yml
Normal 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"}
|
||||
32
ansible/roles/packages/tasks/defaults.yml
Normal file
32
ansible/roles/packages/tasks/defaults.yml
Normal 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"
|
||||
11
ansible/roles/packages/tasks/main.yml
Normal file
11
ansible/roles/packages/tasks/main.yml
Normal 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"
|
||||
|
||||
148
ansible/roles/packages/vars/Archlinux.yml
Normal file
148
ansible/roles/packages/vars/Archlinux.yml
Normal 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
|
||||
53
ansible/roles/packages/vars/Pop!_OS-22.04.yml
Normal file
53
ansible/roles/packages/vars/Pop!_OS-22.04.yml
Normal 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
|
||||
|
||||
89
ansible/roles/packages/vars/Pop!_OS-24.04.yml
Normal file
89
ansible/roles/packages/vars/Pop!_OS-24.04.yml
Normal 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
|
||||
3
ansible/scripts/configure_bat.yml
Normal file
3
ansible/scripts/configure_bat.yml
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
- name: Build Bat Cache
|
||||
become_user: user
|
||||
shell: "bat cache --build"
|
||||
32
ansible/scripts/configure_gitlab.ps1
Normal file
32
ansible/scripts/configure_gitlab.ps1
Normal 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
|
||||
}
|
||||
}
|
||||
7
ansible/scripts/configure_groups.yml
Normal file
7
ansible/scripts/configure_groups.yml
Normal 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
|
||||
12
ansible/scripts/configure_qemu.yml
Normal file
12
ansible/scripts/configure_qemu.yml
Normal 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
|
||||
14
ansible/scripts/configure_ssh.yml
Normal file
14
ansible/scripts/configure_ssh.yml
Normal 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
|
||||
30
ansible/scripts/configure_systemd.yml
Normal file
30
ansible/scripts/configure_systemd.yml
Normal 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
|
||||
36
ansible/scripts/install_apt.yml
Normal file
36
ansible/scripts/install_apt.yml
Normal 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
|
||||
49
ansible/scripts/install_brew.yml
Normal file
49
ansible/scripts/install_brew.yml
Normal 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
|
||||
22
ansible/scripts/install_flatpak.yml
Normal file
22
ansible/scripts/install_flatpak.yml
Normal 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
|
||||
23
ansible/scripts/install_fonts.yml
Normal file
23
ansible/scripts/install_fonts.yml
Normal 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 }}"
|
||||
36
ansible/scripts/install_go.yml
Normal file
36
ansible/scripts/install_go.yml
Normal 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
|
||||
9
ansible/scripts/install_goapps.yml
Normal file
9
ansible/scripts/install_goapps.yml
Normal 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"
|
||||
7
ansible/scripts/install_local_ca.yml
Normal file
7
ansible/scripts/install_local_ca.yml
Normal 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
|
||||
14
ansible/scripts/install_pacman.yml
Normal file
14
ansible/scripts/install_pacman.yml
Normal 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
|
||||
4
ansible/scripts/install_tpm.yml
Normal file
4
ansible/scripts/install_tpm.yml
Normal 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue