Skripte als GIT HUb oder als DEB* aus eigenem Repo ?

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
Benutzeravatar
speefak
Beiträge: 439
Registriert: 27.04.2008 13:54:20

Skripte als GIT HUb oder als DEB* aus eigenem Repo ?

Beitrag von speefak » 06.09.2022 15:06:15

Moin, ich habe eine recht einfach Frage :

Ich nutze viele selbst geschriebene Scripte auf diversen Systemen. Script Änderungen implementiere ich z.Z. händisch - das macht kein Spass :/

Daher eine einfache Frage : Sollte für ich Bash Scripte ein Eigenes Repo aufsetzen oder via GIT updates auf die Rechner bekommen ?

- aktualisieren sich die Systeme automatisch auch über GIT ( wie beim APT ? )

Benutzeravatar
towo
Beiträge: 4403
Registriert: 27.02.2007 19:49:44
Lizenz eigener Beiträge: GNU Free Documentation License

Re: Skripte als GIT HUb oder als DEB* aus eigenem Repo ?

Beitrag von towo » 06.09.2022 15:35:34

aktualisieren sich die Systeme automatisch auch über GIT ( wie beim APT ? )
Nein.

Benutzeravatar
TRex
Moderator
Beiträge: 8038
Registriert: 23.11.2006 12:23:54
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: KA

Re: Skripte als GIT HUb oder als DEB* aus eigenem Repo ?

Beitrag von TRex » 06.09.2022 15:55:23

Es hält dich natürlich niemand davon ab, deine git-repos per cron zu pullen...
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

Benutzeravatar
cosinus
Beiträge: 3410
Registriert: 08.02.2016 13:44:11
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Bremen

Re: Skripte als GIT HUb oder als DEB* aus eigenem Repo ?

Beitrag von cosinus » 06.09.2022 16:12:18

speefak hat geschrieben: ↑ zum Beitrag ↑
06.09.2022 15:06:15
Ich nutze viele selbst geschriebene Scripte auf diversen Systemen.
Wieviele Skripte sind denn das, und wie oft musst du die aktualisieren? Ich würd auch gern mal wissen was das für Skripte sind und warum die so oft Updates brauchen.

DeletedUserReAsG

Re: Skripte als GIT HUb oder als DEB* aus eigenem Repo ?

Beitrag von DeletedUserReAsG » 06.09.2022 18:26:49

TRex hat geschrieben: ↑ zum Beitrag ↑
06.09.2022 15:55:23
Es hält dich natürlich niemand davon ab, deine git-repos per cron zu pullen...
Naja nein – ich halte das zwar für keine gute Lösung, aber abhalten würde ich keinen, der sowas machen will. Solange er nur weiß, was er macht – sonst geht’s halt schief.

Benutzeravatar
bluestar
Beiträge: 2334
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: Skripte als GIT HUb oder als DEB* aus eigenem Repo ?

Beitrag von bluestar » 07.09.2022 18:42:08

speefak hat geschrieben: ↑ zum Beitrag ↑
06.09.2022 15:06:15
Daher eine einfache Frage : Sollte für ich Bash Scripte ein Eigenes Repo aufsetzen oder via GIT updates auf die Rechner bekommen ?
Das ist ja letztlich deine Entscheidung, also ich habe pro Script ein Repository in meinem Gitea und lasse über mvoCi bei Releases automatisch Debian Pakete bauen.

Ein Build-Script sieht etwa folgendermaßen aus:

Code: Alles auswählen

#!/bin/bash
SCRIPTS="mein-script.sh"
#
# syntax check
#
for i in ${SCRIPTS}; do
	echo "Testing $i"
	if ! bash -n ./src/usr/sbin/$i; then
		echo "BUILD: Syntax error in script ./src/usr/sbin/$i"
		exit 1
	fi
done
echo "Syntax check finished without errors"
#
# Continue with build if MVO_EVENT = "release"
#
if test "${MVO_EVENT}" != "release"; then
	exit 0
fi
if test "${MVO_REPO}" = "" -o "${MVO_COMMIT_SHA}" = ""; then
	echo "Relase not possible MVO_REPO and MVO_COMMIT_SHA are missing"
	exit 1
fi
cat ./src/DEBIAN/control.template | sed "s/###VERSION###/${MVO_COMMIT_SHA}/g" >src/DEBIAN/control
rm ./src/DEBIAN/control.template
fakeroot dpkg-deb --build "./src" "./${MVO_REPO}-${MVO_COMMIT_SHA}.deb"
if test -e "${MVO_REPO}-${MVO_COMMIT_SHA}.deb"; then
	echo "BUILD RLEASE SUCCESSFULL"
	if test "${MVO_ARG_SKIP_RELEASE}" != "yes"; then
		if test -e /usr/local/bin/release-debian-package.sh -a "${MVO_ARG_SKIP_RELEASE}" != "yes"; then
			echo "RELEASING DEBIAN PACKAGE"
			sudo /usr/local/bin/release-debian-package.sh "${MVO_REPO}" "./${MVO_REPO}-${MVO_COMMIT_SHA}.deb"
			echo "RELEASE SUCCESSFULL"
		else
			echo "RELEASE SCRIPT NOT FOUND: /usr/local/bin/release-debian-package.sh not found"
		fi
	else
		echo "NOT RELASING PACKAGE => MVO_ARG_SKIP_RELEASE == 'yes'"
	fi
	exit 0
else
	echo "BUILD RELASE FAILED"
	exit 1
fi
Dazu noch ein Template für die control-Datei (src/DEBIAN/control.template):

Code: Alles auswählen

Package: mein-script-package
Version: ###VERSION###
Section: base
Priority: optional
Architecture: all
Maintainer: "Ich <me@example.com>"
Description: Mein Script
Requires: sudo, zfsutils-linux, mbuffer, openssh-client
Das Repo hat folgende Struktur:

Code: Alles auswählen

build.sh
src/DEBIAN/control.template
src/usr/sbin/mein-script.sh
Das Script "/usr/local/bin/release-debian-package.sh" sieht folgendermaßen aus:

Code: Alles auswählen

#!/bin/bash

PACKAGE_NAME="$1"
PACKAGE_FILE="$2"

if test "${PACKAGE_NAME}" = "" -o "${PACKAGE_FILE}" = ""; then
        echo "$0 PackageName PackageFile"
        exit 1
fi

if ! test -d /var/www/deb.meine-domain.de/${PACKAGE_NAME}; then
        echo "Could not find repository for ${PACKAGE_NAME}"
        exit 1
fi

if ! test -d /var/www/deb.meine-domain.de/${PACKAGE_NAME}/binary; then
        echo "Could not find binary directory in repository"
        exit 1
fi
install -m 0644 $PACKAGE_FILE /var/www/deb.meine-domain.de/${PACKAGE_NAME}/binary
cd /var/www/deb.meine-domain.de/${PACKAGE_NAME} ; dpkg-scanpackages . /dev/null | gzip -9c > /var/www/deb.meine-domain.de/${PACKAGE_NAME}/Packages.gz
cd /var/www/deb.meine-domain.de/${PACKAGE_NAME} ; dpkg-scanpackages . > /var/www/deb.meine-domain.de/${PACKAGE_NAME}/Release
Danach liefere ich /var/www/deb.meine-domain.de via Nginx aus und trage auf den Rechnern in /etc/apt/sources.list.d/mein-script.list das Repo ein:

Code: Alles auswählen

deb [trusted=yes] http://deb.meine-domain.de/mein-script /

Benutzeravatar
speefak
Beiträge: 439
Registriert: 27.04.2008 13:54:20

Re: Skripte als GIT HUb oder als DEB* aus eigenem Repo ?

Beitrag von speefak » 07.09.2022 20:56:46

cosinus hat geschrieben: ↑ zum Beitrag ↑
06.09.2022 16:12:18
speefak hat geschrieben: ↑ zum Beitrag ↑
06.09.2022 15:06:15
Ich nutze viele selbst geschriebene Scripte auf diversen Systemen.
Wieviele Skripte sind denn das, und wie oft musst du die aktualisieren? Ich würd auch gern mal wissen was das für Skripte sind und warum die so oft Updates brauchen.
Bis jetzt sind es knapp 30 Rechner auf denen die Scripte ( ca. 20 ) laufen. ( https://github.com/speefak ). Anpassungen werden meist bei Syntaxänderungen der verwendeten Programme nötig, wie z.B. bei Postfix/mail : Dort wurde per default eine Mail immer im Plaintext versendet. Eines Tages bekam ich nur noch Buchstaben und Zeichen statt Systemmeldungen - die Option -plaintext beim Programm mail war nun zwingend.

Ich denke ich werde mir aber ein eigenes Repositoy erstellen, denn ich habe auch einiges an Dateien ( Themes, Wallpaper, Preconfigs etc ) und nicht nur reinen Text. Kurz überflogen scheint es ja nicht die Welt zu sein ein Repo aufzusezten - ich bin mal gepsannt was mich da die tage erwartet

Benutzeravatar
cosinus
Beiträge: 3410
Registriert: 08.02.2016 13:44:11
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Bremen

Re: Skripte als GIT HUb oder als DEB* aus eigenem Repo ?

Beitrag von cosinus » 07.09.2022 21:03:01

Nur mal so als Idee. Bei Windows hat man für Login-Scripte in einer Serverdomain ja den Ordner NETLOGON (auf jedem Domaincontroller). Richte doch sowas ähnliches auch für die Linuxkisten ein. Irgendeinen Linux-Server schnappen, den mit NFS verpassen und die Scripte und Themes und was sonst noch so da ist in ein Verzeichnis schieben und dieses dann readonly freigeben über die /etc/exports. Dann müssen die Clients diese Freigabe bloß nur noch mounten, der Rest sollte klar sein. Und dann hast du nur noch eine Stelle an der du Scripte und Dateien pflegen/updaten musst.

Benutzeravatar
speefak
Beiträge: 439
Registriert: 27.04.2008 13:54:20

Re: Skripte als GIT HUb oder als DEB* aus eigenem Repo ?

Beitrag von speefak » 07.09.2022 21:15:21

Die Idee ist gar nicht so schlecht. Ich würde Statt NFS einfach ein Verzeichnis vom Apache nehmen/erstellen und per Script auf den Clients aktualisieren.

Eine Freigabe vom Server zu mounten verursacht dann allerdings bei jedem Zugriff von jedem Rechner Traffic ( bei Wallpapern icon theme etc kann das schon recht viel werden )

Für Scripte könnte man einfach ein Apacheverzeichnis in /usr/local/bin/remote verlinken. Muss man die Pfade unterhalb von /usr/local/bin auch in der PATH Variable angeben oder werden die durch /usr/local/bin includiert ?

Am einfachsten für die Clients ist wohl aber ein Repo. Dafür ist nur Quelleintrag nötig und der Rest läuft dann von selbst. Das Repo aufsetzen ist vllt mehr Aufwand, aber den hat man ja nur einmal. Der Dep-Bau kann mit Scriupten oder checkinstall ( gibs das noch ) umgesetzt werden.

Benutzeravatar
cosinus
Beiträge: 3410
Registriert: 08.02.2016 13:44:11
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Bremen

Re: Skripte als GIT HUb oder als DEB* aus eigenem Repo ?

Beitrag von cosinus » 08.09.2022 10:49:29

Ist das denn echt soviel traffic? Das ist doch eh im internen Netz und dann nur 30 Clients. :?

Benutzeravatar
MSfree
Beiträge: 10686
Registriert: 25.09.2007 19:59:30

Re: Skripte als GIT HUb oder als DEB* aus eigenem Repo ?

Beitrag von MSfree » 08.09.2022 11:01:23

cosinus hat geschrieben: ↑ zum Beitrag ↑
08.09.2022 10:49:29
Ist das denn echt soviel traffic?
Nein. Der Traffic entsteht maximal bei jedem graphischen Login einmal. Und wenn da 100MB zu übertragen wären, ist das eine Sekunde Traffic über GBit, bei 30 Clients also 30 Sekunden Traffic pro Tag. Davon abgesehen, daß es eher deutlich weniger als 100MB sein dürften.

Antworten