8000 Merge branch 'pyinfra-archserver' into pyinfra-archserver · unkn0wnAPI/sysadmin-scripts@17d2a64 · GitHub
[go: up one dir, main page]

Skip to content

Commit 17d2a64

Browse files
authored
Merge branch 'pyinfra-archserver' into pyinfra-archserver
2 parents a79cd10 + ccc13e7 commit 17d2a64

File tree

1 file changed

+54
-53
lines changed

1 file changed

+54
-53
lines changed

Universal/PyInfra/ArchServer/deploy.py

Lines changed: 54 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -19,88 +19,86 @@
1919
#
2020
## PyInfra Functions
2121
#
22-
@deploy("Pacman mirror preparation")
22+
@deploy("Initial pacman Operations")
2323
def prepare_pacman():
24-
pacman.update(
25-
name = "Updating pacman repositories",
26-
_sudo = True
27-
)
28-
2924
pacman.packages(
30-
name = "Installing bootstrap packages",
25+
name = "Installing initial packages",
3126
packages = ["archlinux-keyring", "rsync", "rebuild-detector", "reflector"],
3227
present = True,
33-
update = False,
28+
update = True,
3429
_sudo = True,
3530
)
3631

3732
server.shell(
38-
name = "Updating arch mirrors",
33+
name = "Changing pacman mirrors to the fastest available in the specified region",
3934
commands = [f"reflector -c {host.data.get("MIRROR_REGION")} -p https,rsync --delay 12 --sort rate --save /etc/pacman.d/mirrorlist"],
4035
_sudo = True
4136
)
4237

4338
pacman.update(
44-
name = "Updating newly synced pacman repositories",
39+
name = "Syncing local mirror cache with remote sources",
4540
_sudo = True
4641
)
4742

48-
@deploy("Package Management")
43+
@deploy("Packages Installation")
4944
def install_packages():
5045
pacman.packages(
51-
name = "Installing system packages",
52-
packages = ["linux-lts-headers", "pacman-contrib", "base-devel", "dmidecode", "dkms", "amd-ucode",
53-
"linux-firmware", "lm_sensors", "curl", "e2fsprogs", "exfatprogs", "iproute2", "mtr",
54-
"lsof", "smartmontools", "udisks2", "dosfstools", "less", "wget"],
46+
name = "System",
47+
packages = ["linux-lts-headers", "pacman-contrib", "base-devel", "dmidecode",
48+
"dkms", "amd-ucode", "linux-firmware", "lm_sensors", "curl",
49+
"e2fsprogs", "exfatprogs", "iproute2", "mtr", "lsof", "smartmontools",
50+
"udisks2", "dosfstools", "less", "wget"],
5551
present = True,
5652
update = False,
5753
_sudo = True,
5854
)
5955

6056
pacman.packages(
61-
name = "Installing AMDGPU drivers",
62-
packages = ["mesa", "xf86-video-amdgpu", "vulkan-radeon", "libva-mesa-driver", "mesa-vdpau", "nvtop"],
57+
name = "AMD APU/GPU",
58+
packages = ["mesa", "xf86-video-amdgpu", "vulkan-radeon", "libva-mesa-driver",
59+
"mesa-vdpau", "nvtop"],
6360
present = True,
6461
update = False,
6562
_sudo = True,
6663
)
6764

6865
pacman.packages(
69-
name = "Installing Services packages",
70-
packages = ["docker", "docker-compose", "samba", "zerotier-one", "openssh", "clamav",
71-
"mariadb-clients", "openldap", "smbclient", "vsftpd"],
66+
name = "Services",
67+
packages = ["docker", "docker-compose", "samba", "zerotier-one", "openssh",
68+
"clamav", "mariadb-clients", "openldap", "smbclient", "vsftpd"],
7269
present = True,
7370
update = False,
7471
_sudo = True,
7572
)
7673

7774
pacman.packages(
78-
name = "Installing Archiving & Compression packages",
75+
name = "Archiving & Compression",
7976
packages = ["tar", "bzip2", "unrar", "gzip", "unzip", "zip", "p7zip"],
8077
present = True,
8178
update = False,
8279
_sudo = True,
8380
)
8481

8582
pacman.packages(
86-
name = "Installing Runners & SDK packages",
87-
packages = ["jre17-openjdk-headless", "jre21-openjdk-headless", "python"],
83+
name = "Code Runtime",
84+
packages = ["jre17-openjdk-headless", "jre21-openjdk-headless", "python", "rustup"],
8885
present = True,
8986
update = False,
9087
_sudo = True,
9188
)
9289

9390
pacman.packages(
94-
name = "Installing User packages",
95-
packages = ["eza", "neovim", "rustup", "trash-cli", "git", "dos2unix", "screen", "iperf3",
96-
"lolcat", "zsh", "zsh-autosuggestions", "zsh-syntax-highlighting", "beep", "ffmpeg", "influx-cli",
97-
"speedtest-cli", "uwufetch", "yt-dlp", "duf"],
91+
name = "User Specific",
92+
packages = ["eza", "neovim", "speedtest-cli", "trash-cli", "git",
93+
"dos2unix", "screen", "iperf3","lolcat", "zsh", "zsh-autosuggestions",
94+
"zsh-syntax-highlighting", "beep", "ffmpeg", "influx-cli","speedtest-cli",
95+
"uwufetch", "yt-dlp", "duf"],
9896
present = True,
9997
update = False,
10098
_sudo = True,
10199
)
102100

103-
@deploy("AUR Configuration Support")
101+
@deploy("AUR Integration")
104102
def preparing_aur_support():
105103
server.shell(
106104
name = "Fixing ownership of the `.local` user folder",
@@ -114,7 +112,7 @@ def preparing_aur_support():
114112
)
115113

116114
git.repo(
117-
name = "Downloading paru from Github",
115+
name = "Downloading `paru` from Github",
118116
src = "https://aur.archlinux.org/paru.git",
119117
dest = f"/home/{host.get_fact(User)}/paru",
120118
branch = "master",
@@ -123,13 +121,13 @@ def preparing_aur_support():
123121
)
124122

125123
server.shell(
126-
name = "Bypassing `sudo: a terminal is required to read the password` error",
124+
name = "Bypassing `sudo: a terminal is required to read the password`",
127125
commands = [f"echo '{host.get_fact(User)} ALL = NOPASSWD: /usr/bin/pacman' >> /etc/sudoers"],
128126
_sudo = True
129127
)
130128

131129
server.shell(
132-
name = "Building paru from source",
130+
name = "Building `paru` from source",
133131
commands = [f"cd /home/{host.get_fact(User)}/paru; makepkg -sci --noconfirm"]
134132
)
135133

@@ -139,33 +137,38 @@ def preparing_aur_support():
139137
_sudo = True
140138
)
141139

142-
@deploy("Package Management (AUR)")
140+
@deploy("Packages Installation (AUR)")
143141
def install_aur_packages():
144142
server.shell(
145-
name = "Installing AUR packages",
146-
commands = ["paru -S --noconfirm --cleanafter autojump mkinitcpio-firmware telegraf-bin"],
143+
name = "Services & Firmware",
144+
commands = ["paru -S --noconfirm --cleanafter mkinitcpio-firmware telegraf-bin"],
145+
)
146+
147+
server.shell(
148+
name = "User Specific",
149+
commands = ["paru -S --noconfirm --cleanafter autojump"],
147150
)
148151

149-
@deploy("User Configuration")
152+
@deploy("User Environment Configuration")
150153
def user_configuration():
151154
server.shell(
152155
name = "Changing shell to ZSH",
153156
commands = [f"chsh -s /usr/bin/zsh {host.get_fact(User)}"],
154157
_sudo = True
155158
)
156159

157-
@deploy("Service Configuration")
160+
@deploy("Service Preparation")
158161
def service_configuration():
159162
server.shell(
160163
name = "Joining Zerotier network",
161164
commands = [f"zerotier-cli join {host.data.get("ZEROTIER_NETWORK_ID")}"],
162165
_sudo = True
163166
)
164167

165-
@deploy("System service management")
168+
@deploy("System Configuration")
166169
def system_services():
167170
systemd.service(
168-
name = "Enabling SSH service",
171+
name = "Enabling SSH",
169172
service = "sshd.service",
170173
running = True,
171174
enabled = True,
@@ -181,56 +184,54 @@ def system_services():
181184
)
182185

183186
systemd.service(
184-
name = "Enabling SMB service",
187+
name = "Enabling SMB",
185188
service = "smb.service",
186189
running = True,
187190
enabled = True,
188191
_sudo = True
189192
)
190193

191194
systemd.service(
192-
name = "Enabling NMB service",
195+
name = "Enabling NMB",
193196
service = "nmb.service",
194197
running = True,
195198
enabled = True,
196199
_sudo = True
197200
)
198201

199202
systemd.service(
200-
name = "Enabling Zerotier-one service",
203+
name = "Enabling Zerotier",
201204
service = "zerotier-one.service",
202205
running = True,
203206
enabled = True,
204207
_sudo = True
205208
)
206209

207210
systemd.service(
208-
name = "Enabling Telegraf service",
211+
name = "Enabling Telegraf",
209212
service = "telegraf.service",
210213
running = True,
211214
enabled = True,
212215
_sudo = True
213216
)
214217

215-
@deploy("Post-install tasks")
216-
def edit_files():
218+
@deploy("Post-deployment Tasks")
219+
def session_cleanup():
217220
server.shell(
218-
name = "Add hostname & IP to login screen",
219-
commands = ["echo -e 'Hostname: \\n \nIPv4: \4\n' >> /etc/issue"], # not tested be careful, it should work
221+
name = "Removing sudo bypass",
222+
commands = [f"sed -i '/NOPASSWD/d' /etc/sudoers"],
220223
_sudo = True
221224
)
222225

223-
@deploy("Deploy Cleanup")
224-
def session_cleanup():
225226
server.shell(
226-
name = "Removing `sudo` bypass",
227-
commands = [f"sed '$d' /etc/sudoers"],
227+
name = "Removing `paru-src` leftovers",
228+
commands = [f"rm /home/{host.get_fact(User)}/paru -r"],
228229
_sudo = True
229230
)
230-
231+
231232
server.shell(
232-
name = "Removing paru-src leftovers",
233-
commands = [f"rm /home/{host.get_fact(User)}/paru -r"],
233+
name = "Adding hostname & IP to login screen",
234+
commands = ["echo -e 'Hostname: \\n \nIPv4: \4\n' >> /etc/issue"], # not tested be careful, it should work
234235
_sudo = True
235236
)
236237

0 commit comments

Comments
 (0)
0