blob: aa73d313a7601ca3feadfd80395a4c1d9f8416c4 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
---
- name: "Bootstrap"
hosts: "raspberrypi"
gather_facts: true
vars:
ansible_become_method: su
user_public_keys:
- "ssh-ed25519 AAAA...fMo"
- "ssh-rsa AAAA...4I3"
user_groups: ["wheel", "test_group"]
roles:
- role: "hostname"
- role: "network"
- role: "user"
- role: "ssh"
- role: "password_policy"
pre_tasks:
- name: "Update package cache"
become: true
ansible.builtin.package:
update_cache: true
async: 60
poll: 5
failed_when: false
tags:
- molecule-idempotence-notest
tasks:
- name: "Configure passwordless sudo for testing"
ansible.builtin.copy:
content: "%test_group ALL=(ALL) NOPASSWD: ALL\n"
dest: "/etc/sudoers.d/test_group"
mode: "0440"
validate: 'visudo -cf %s'
- name: "Configure"
hosts: "raspberrypi"
gather_facts: true
remote_user: "{{ username }}"
vars:
ansible_become_method: sudo
locales:
- "en_US.UTF-8 UTF-8"
timezone: "GMT"
pihole_interface: "eth0"
pihole_domain: "pi.hole"
pihole_totp_secret: "CHANGEME"
pihole_password: "{{ ('changeme' | hash('sha256') | hash('sha256'))[:64] }}"
pihole_dhcp_enabled: false
wireguard_autostart_connection: ""
proxy_type: "nginx"
gateway_enabled: true
gateway_local_ipv4_subnet: "10.0.0.0/24"
grafana_dashboards:
- name: "node-exporter-full"
url: "https://grafana.com/api/dashboards/1860/revisions/45/download"
datasource_mappings:
- key: "000000001"
value: "prometheus"
vimrc_repo_url: "https://git.sr.ht/~a14m/.vim"
password_store_repo_url: "https://github.com/octocat/Spoon-Knife"
firefox_install_browserpass: true
firefox_install_passff: true
backup_mount_point: "/mnt/backup"
backup_device: "tmpfs"
backup_fstype: "tmpfs"
backup_mount_options: "defaults,mode=0755"
pre_tasks:
- name: "Override is_chroot fact for container environment"
ansible.builtin.set_fact:
ansible_facts: "{{ ansible_facts | combine({'is_chroot': false}) }}"
roles:
- role: "locales"
- role: "timezone"
- role: "bash"
- role: "man"
- role: "jq"
- role: "ag"
- role: "libheif"
- role: "tmux"
- role: "python"
- role: "go"
- role: "rust"
- role: "nodejs"
- role: "zoxide"
- role: "gum"
- role: "usbutils"
- role: "wireguard"
- role: "gateway"
- role: "proxy"
- role: "wg_portal"
- role: "pihole"
- role: "prometheus"
- role: "prometheus-node-exporter"
- role: "grafana"
- role: "backup"
- role: "garage"
- role: "gnome"
- role: "gnome-calendar"
- role: "gnome-loupe"
- role: "gnome-papers"
- role: "gnome-disk-utility"
- role: "gnome-newsflash"
- role: "gradia"
- role: "rsync"
- role: "gpg"
- role: "dotfiles"
- role: "vim"
- role: "mise"
- role: "neomutt"
- role: "password_store"
- role: "which"
- role: "firefox"
- role: "chromium"
- role: "font"
- role: "alacritty"
- role: "btop"
- role: "pipewire"
- role: "claude"
- role: "localsend"
- role: "restic"
- role: "ethtool"
|