Skip to content

Commit 8d153a2

Browse files
author
marci
committed
Aktualisiere das Bash-Installations-Skript für apt-Pakete, indem eine Funktion zur Überprüfung der .env-Datei hinzugefügt wird. Ergänze die Schritte zur Installation von Netbird und verbessere die Dokumentation mit zusätzlichen Erklärungen und Beispielen. Setze den Entwurf auf false und aktualisiere das Datum.
1 parent cb3edc1 commit 8d153a2

1 file changed

Lines changed: 261 additions & 16 deletions

File tree

content/posts/linux/scripting/bash-apt-packages-installations-script.de.md

Lines changed: 261 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
---
22
title: "Bash-Script | Automatische Installation von apt-packages "
3-
date: 2025-08-18T11:11:41.499Z
3+
date: 2025-08-26T11:59:16.961Z
44
description: In diesem Tutorial zeige ich, wie ihr mit einem Bash-Script automatisch eure Lieblings-Apps installieren könnt,
5-
draft: true
5+
draft: false
66
tags:
77
- bash
88
- linux
@@ -21,6 +21,7 @@ keywords:
2121
- bash-installations-script
2222
preview: ../../../../assets/images/posts/linux/bash-update-script-install-apt-packagesl.webp
2323
hero: /images/posts/linux/bash-update-script-install-apt-packagesl.webp
24+
lastmode: 2025-08-26T11:58:47.069Z
2425
---
2526
## Bash-Installations-Script für Standard-Apps unter Debian
2627

@@ -111,12 +112,147 @@ sudo nano bash_apt_installations_script.sh
111112
# sudo chmod =x automatic_install_apps.sh
112113
# sudo ./automatic_install_apps.sh or sudo sh automatic_install-apps.sh
113114
```
114-
## Fertiges `apt-packages-Installations-Bash-Script`
115-
Hier findet ihr das ferige Bash-Script, um automatisiert, Applikationen über den `apt-Paketmanager` zu installieren.
115+
### Schritt 3 - (Optional) Überprüfung ob die benötigte `.env`-Datei vorhanden ist
116+
Wenn ihr den optionalen Script-Teil für die Installation von Paketen, die zum Beispiel einen Token für die Authentifizierung benötigen, installieren wollt, dann muss eine Funktion ins Script hinzugefügt werden, welches das Vorhandensein der Datei mit den Umgebungsvariablen überprüft.
117+
118+
Hierzu fügen wir die folgende Funktion in unser Script hinzu:
119+
120+
```bash
121+
# Funktion zur Überprüfung des Vorhandenseins der .env-Datei
122+
123+
if [ -f .env ]; then
124+
export $(grep -v '^#' .env | xargs)
125+
else
126+
echo ".env file not found. Please create a .env file with the required variables."
127+
exit 1
128+
fi
129+
```
130+
Sollte die .env-Datei nicht im gleichen Verzeichnis wie das Script sein, wird bei dieser Funktion die Fortsetzung des Bash-Scripts abgebrochen.
131+
132+
### Schritt 4 - Variable mit den gewünschten apt-packages erstellen
133+
Jetzt erstellen wir im nächsten Schritt eine Variable, in der die Apps aufgelistet sind, welche wir über den apt-Packetmanager installieren wollen.
134+
135+
In diesem Beispiel wollen wir die folgenden Applikationen installieren:
136+
137+
**nano, wget, htop, net-tools, fail2ban und ufw**
138+
139+
Die passende Variable sieht so aus:
140+
141+
```bash
142+
# Variable mit der App-Liste
143+
144+
packages={
145+
nano
146+
wget
147+
htop
148+
net-tools
149+
fail2ban
150+
ufw
151+
}
152+
```
153+
154+
### Schritt 5 - (Optional) Installation der App Netbird
155+
Im nächsten optionalen Schritt, werden wir die Anweisungen für das Einbinden des Repository von Netbird, Installation der erforderlichen apt-Pakete, Installation von Netbird und dessen verbinden mit der Netbird-Instanz einfügen.
156+
157+
#### Installation der erforderlichen apt-Packete
158+
Um das Repository von Netbird einbinden zu können, müssen wir zunächst einige Anwendungen installieren.
159+
160+
```bash
161+
# Pakete für das Einbinden des Repository installieren
162+
163+
echo "Install ca-certificats, curl, gnupg, add netbird sources..."
164+
sudo apt update
165+
sudo apt install ca-certificates curl gnupg -y
166+
```
167+
#### Einbinden des Netbird-Repository
168+
Nun binden wir das erforderliche Repository für Netbird ein.
169+
170+
```bash
171+
# Einbinden des Repository
172+
173+
echo "Adding netbird repository..."
174+
curl -fsSL https://pkgs.netbird.io/install.sh | sh
175+
```
176+
#### Installation von Netbird
177+
Nach dem Einbinden des Netbird-Repository, wird die Installation von Netbird ausgeführt.
178+
179+
```bash
180+
# Installation Netbird
181+
182+
echo "Install netbird... "
183+
sudo apt update
184+
sudo apt install netbird -y
185+
```
186+
#### Netbird-Agenten registrieren und Netbird-Service aktivieren
187+
Nach erfolgreicher Installation, wird im nächsten Schritt die Funktionen für das Registrieren des Netbird-Agenten (hierfür werden auch die Secrets aus der .env-Datei benötigt) und das Aktivieren des Netbird-Service eingefügt.
188+
189+
```bash
190+
echo "Set Netbird-Domain: ${netbird_domain} and register"
191+
netbird up --management-url ${netbird_domain} --setup-key ${setupkey}
192+
193+
echo "Enable netbird service..."
194+
sudo systemctl enable netbird
195+
echo "Starting netbird service..."
196+
sudo systemctl start netbird
197+
198+
echo "Netbird installation and setup complete."
199+
```
200+
### Schritt 6 - Installation der aufgelisteten Packages
201+
Jetzt werden die Funktionen für das Installieren unserer Apps die wir im **Schritt 4** in der Variable `packages` festgelegt haben, in das Bash-Script eingefügt.
202+
203+
```bash
204+
# Installation der Apps in der packages-Variable
205+
206+
echo "Updating package list..."
207+
sudo apt update
208+
209+
echo "Installing packages: ${PACKAGES[*]}"
210+
sudo apt install -y "${PACKAGES[@]}"
211+
212+
echo "All packages installed."
213+
```
214+
### Schritt 7 - Unnötige apt-Pakete entfernen / Installation abschließen
215+
Zu guter Letzt werden wir noch eine Funktion zum Deinstallieren unnötiger apt-Pakete im Bash-Script hinzufügen und dem Nutzer des Scripts eine Ausgabe im Terminal-Fenster geben, dass der Vorgang fertig ist.
216+
217+
```bash
218+
echo "Cleaning up ..."
219+
sudo apt autoremove -y
220+
echo "Cleanup complete."
221+
echo "Installation of custom base packages completed successfully."
222+
echo "You can now use the installed packages."
223+
```
116224
<!-- FM:Snippet:Start data:{"id":"Vertical Space","fields":[]} -->
117225
{{< vs 3>}}
118226
<!-- FM:Snippet:End -->
227+
228+
229+
230+
<!-- FM:Snippet:Start data:{"id":"Vertical Space","fields":[]} -->
231+
{{< vs 3>}}
232+
<!-- FM:Snippet:End -->
233+
234+
<!-- FM:Snippet:Start data:{"id":"Success","fields":[]} -->
235+
{{< alert type="info" >}}
236+
### Optionale Funktion:
237+
Optional ist hier auch die Funktion eingefügt, um zunächst ein App-Repository einer Anwendung welche nicht im Standard `apt-Paketmanager` vorhanden ist, einzufügen und diese mit Hilfe eines Tokens (Secret) der in einer angelegten `.env`-Datei hinterlegt ist, zu installieren.
238+
239+
Für das spichern von Secrets, legt ihr in dem gleichen Verzeichnis in dem sich das Bash-Script befindet, eine Datei mit der Bezeichnung `.env` an. In dieser Datei könnt ihr dann eure Secrets als Variable speichern.
240+
241+
Beispiel:
242+
243+
```sh
244+
# Beispiel-Secrets für den Netbird-Agenten
245+
246+
netbird_domain=eure_netbird-domain.com
247+
248+
setupkey=dfsvhsdklvfhsdlhsdlkjsdhsdlkdsfjhsdfhdslksdhsdlkds
249+
```
250+
{{< /alert >}}
251+
252+
<!-- FM:Snippet:End -->**Optional - :**
119253
```bash
254+
#!/bin/bash
255+
120256
# //// Example - Add the Netbird repository
121257

122258
# # Netbird is a secure, open-source VPN solution.
@@ -153,25 +289,51 @@ netbird up --management-url ${netbird_domain} --setup-key ${setupkey}
153289
echo "Enable netbird service..."
154290
sudo systemctl enable netbird
155291
echo "Starting netbird service..."
156-
sudo systemctl start netbird
292+
sudo systemctl start netbird```bash
293+
# //// Example - Add the Netbird repository
294+
295+
# # Netbird is a secure, open-source VPN solution.
296+
# # This section installs Netbird and sets it up with a setup key.
297+
298+
# # Make sure to set the setupkey for Netbird in the .env file
299+
300+
# # Example .env file content:
301+
# # setupkey=your_setup_key_here
302+
303+
# Load environment variables from .env file
304+
305+
if [ -f .env ]; then
306+
export $(grep -v '^#' .env | xargs)
307+
else
308+
echo ".env file not found. Please create a .env file with the required variables."
309+
exit 1
310+
fi
311+
312+
echo "Install ca-certificats, curl, gnupg, add netbird sources..."
313+
sudo apt update
314+
sudo apt install ca-certificates curl gnupg -y
315+
316+
echo "Adding netbird repository..."
317+
curl -fsSL https://pkgs.netbird.io/install.sh | sh
318+
319+
echo "Install netbird... "
320+
sudo apt update
321+
sudo apt install netbird -y
322+
323+
echo "Set Netbird-Domain: ${netbird_domain} and register"
324+
netbird up --management-url ${netbird_domain} --setup-key ${setupkey}
325+
157326
158327
echo "Netbird installation and setup complete."
159328
```
160-
<!-- FM:Snippet:Start data:{"id":"Vertical Space","fields":[]} -->
161-
{{< vs 3>}}
162-
<!-- FM:Snippet:End -->
163329

164-
<!-- FM:Snippet:Start data:{"id":"Success","fields":[]} -->
165-
{{< alert type="success" >}}
166-
Optional ist hier auch die Funktion eingefügt, um zunächst ein App-Repository einer Anwendung welche nicht im Standard `apt-Paketmanager` vorhanden ist einzufügen und diese mit Hilfe eines Token (Secret) der in einer angelegten `.env`-Datei hinterlegt ist, zu installieren.
167-
{{< /alert >}}
168-
169-
<!-- FM:Snippet:End -->
170330

171331
<!-- FM:Snippet:Start data:{"id":"Vertical Space","fields":[]} -->
172332
{{< vs 3>}}
173333
<!-- FM:Snippet:End -->
174-
334+
## Fertiges `apt-packages-Installations-Bash-Script`
335+
Hier findet ihr das ferige Bash-Script, um automatisiert, Applikationen über den `apt-Paketmanager` zu installieren.
336+
### Komplettes Bash-Script mit optionaler Funktion
175337
```bash
176338
#!/bin/bash
177339
@@ -197,8 +359,9 @@ Optional ist hier auch die Funktion eingefügt, um zunächst ein App-Repository
197359
# sudo chmod =x automatic_install_apps.sh
198360
# sudo ./automatic_install_apps.sh or sudo sh automatic_install-apps.sh/images/posts/linux/bash-update-script-install-apt-packagesl.webp
199361
362+
echo "================================================================="
363+
echo " Install apt-Packages on "
200364
echo " (Debian/Ubuntu/Mint)"
201-
202365
echo "================================================================="
203366
204367
@@ -218,6 +381,8 @@ PACKAGES=(
218381
219382
)
220383
384+
# Optional:
385+
221386
# //// Example - Add the Netbird repository
222387
223388
# # Netbird is a secure, open-source VPN solution.
@@ -278,9 +443,89 @@ echo "Installation of custom base packages completed successfully."
278443
echo "You can now use the installed packages."
279444
280445
```
446+
### Fertiges Bash-Script ohne optionaler Funktion
447+
```bash
448+
#!/bin/bash
449+
450+
# Version: 1
281451
452+
# Hinweis:
453+
# Dieses Script ist für Debian-basierende Betriebssysteme gedacht!
454+
# Es ermöglicht die automatisierte Installation von Anwendungen via dem apt-Paketmanager.
455+
# Es ist wichtig das dieses Script als root-user ausgeführt wird!
282456
283457
458+
# Anwendung:
459+
# sudo chmod =x automatic_install_apps.sh
460+
# sudo ./automatic_install_apps.sh oder sudo sh automatic_install-apps.sh
461+
462+
# Note:
463+
# This script is intended for Debian-based operating systems!
464+
# It enables the automated installation of applications via the apt package manager.
465+
# It is important that this script is executed as root user!
466+
467+
468+
# Usage:
469+
# sudo chmod =x automatic_install_apps.sh
470+
# sudo ./automatic_install_apps.sh or sudo sh automatic_install-apps.sh/images/posts/linux/bash-update-script-install-apt-packagesl.webp
471+
472+
echo "================================================================="
473+
echo " Install apt-Packages on "
474+
echo " (Debian/Ubuntu/Mint)"
475+
echo "================================================================="
476+
477+
# Auflisten der Anwendungen / List your packages here
478+
PACKAGES=(
479+
nano
480+
wget
481+
htop
482+
net-tools
483+
fail2ban
484+
ufw
485+
486+
)
487+
488+
echo "Updating package list..."
489+
sudo apt update
490+
491+
echo "Installing packages: ${PACKAGES[*]}"
492+
sudo apt install -y "${PACKAGES[@]}"
493+
494+
echo "All packages installed."
495+
496+
# echo "Cleaning up package cache..."
497+
# sudo apt clean
498+
# echo "Package cache cleaned."
499+
500+
# Clean up unused packages
501+
echo "Cleaning up ..."
502+
sudo apt autoremove -y
503+
echo "Cleanup complete."
504+
echo "Installation of custom base packages completed successfully."
505+
echo "You can now use the installed packages."
506+
507+
```
508+
### Schritt 8 - Bash-Script ausführbar machen
509+
Wenn das fertige Script nach euren Wünschen fertiggestellt sowie abgespeichert wurde, müsst ihr das Script noch ausführbar machen. Dazu nutzt ihr im Terminal den folgenden Befehl:
510+
511+
`sudo chmod +x bash_apt_installations_script.sh`
512+
513+
Danach könnt ihr euer Script mit einem der folgenden Befehle ausführen:
514+
515+
`bash bash_apt_installations_script.sh`
516+
oder
517+
`./bash_apt_installations_script.sh` oder `sh bash_apt_installations_script.sh`
518+
519+
## Fazit
520+
Ich habe in diesem Tutorial zu zeigen versucht, wie ihr ein Bash-Script zur automatischen Installation von diversen Apps mit dem apt-Paketmanger erstellt.
521+
Als optionale Funktion haben wir das Bash-Script um die Funktion einer App-Installation erweitert, die auch Umgebungsvariablen in einer `.env`-Datei bei der Installation berücksichtigt.
522+
523+
Ich hoffe, dass ich dieses Thema ein wenig näher bringen konnte!
524+
525+
<!-- FM:Snippet:Start data:{"id":"Vertical Space","fields":[]} -->
526+
{{< vs 3>}}
527+
<!-- FM:Snippet:End -->
528+
284529
<!-- FM:Snippet:Start data:{"id":"Help deutsch","fields":[]} -->
285530
> ## Fragen und Antworten
286531
>

0 commit comments

Comments
 (0)