staging.inyokaproject.org

Feedback / Kritik CLI Tool Core

Status: Ungelöst | Ubuntu-Version: Server 22.04 (Jammy Jellyfish)
Antworten |

Frankenstein

Avatar von Frankenstein

Anmeldungsdatum:
1. Juni 2020

Beiträge: Zähle...

Hey Leute,

ich bin aktuell dabei ein kleines CLI Tool zu schreiben was ich immer weiter ausbauen möchte um so mein Wissen im Bash Scripting zu verbessern.

Zu finden hier: https://github.com/GeeksBase/gcli

Ich wollte das mal so in Raum werfen und Horchen ob ihr Lust habt mir vielleicht bisschen Feedback zu geben oder Verbesserungsvorschläge zu machen, da ich die Core soweit fertig habe.

Danke euch im voraus.

Grüße Frankenstein

Moderiert von Thomas_Do:

Dieses Thema ist verschoben worden. Keine Supportanfrage für Shell und Programmieren, sondern eher ein Projekt. Bitte beachte die als wichtig markierten Themen („Welche Themen gehören hier her und welche nicht?“)!

noisefloor Team-Icon

Ehemaliger
Avatar von noisefloor

Anmeldungsdatum:
6. Juni 2006

Beiträge: 28316

Hallo,

bevor du das Skript auf die Menschheit los lässt, solltest du es _dringend_ ausführlich dokumentieren, weil es ungefragt ziemlich ins System eingreift. Also ich würde es so nie benutzen wollen.

Mir ist nicht klar, aus welchem Grund das Skript snaps automatisch deaktiviert und entfernst bzw. warum du die Ubuntu Advantage Tools deinstallieren willst / musst. Und wenn du schon snap entfernen willst: dann mach' es doch ordentlich. Es reicht die Prüfung auf snapd, das ist die Basis für alles. Wenn du nur sudo apt purge snapd ausführst, bleiben aber ggf. Artefakte von snap Paketen im System zurück. Details: siehe Wiki.

Gruß, noisefloor

encbladexp Team-Icon

Ehemaliger
Avatar von encbladexp

Anmeldungsdatum:
16. Februar 2007

Beiträge: 17277

Ubuntu Advantage / Pro zu deinstallieren steht deinem Script nicht zu, es gibt Leute die nutzen die kostenlose Subscription um bessere/längere Updates für das universe Repository zu bekommen. Das gleiche gilt für Snaps.

Sowas wie source /root/gcli/conf/env hat auch in einem Script das andere verwenden sollen nichts zu suchen, /root ist das home vom root, da gehört garnichts hin.

Warum fummelt das Ding an der /etc/skel rum? Und was an der .bashrc von root? Und was geht dem Tool meine sshd_config an? Warum wird .ssh/authorized_keys per /etc/skel verteilt?

Um es kurz zu machen: Das ist kein guter Einstieg in dein neues Hobby. Dein Problem wurde z.B. von Ansible & Co schon gelöst, und dort haben viele hundert Entwickler viel Zeit auf das Problem geworfen um nicht bei Kleinigkeiten auf die Nase zu fallen.

Frankenstein

(Themenstarter)
Avatar von Frankenstein

Anmeldungsdatum:
1. Juni 2020

Beiträge: 47

Grundsätzlich ein Großteil der Dinge, die in "init base" passieren, werden optional werden. Da bin ich gerade bei. Man bekommt während der Installation dann entsprechende abfragen, ob man z.B. Advantage Tools deinstallieren möchte oder nicht. Das selbe gilt für snap.

solltest du es _dringend_ ausführlich dokumentieren

Bin ich dran. Jede Option, jeder Parameter, jede Aktion des Tools wird dokumentiert werden.

aus welchem Grund das Skript snaps automatisch deaktiviert und entfernst

Weil ich mich persönlich gegen Snap als Paketmanager entschieden habe und mich um Abhängigkeiten und dergleichen selbst kümmern möchte. Dies wird später noch optional. Man kann quasi entscheiden, ob man snap behalten möchte oder nicht.

warum du die Ubuntu Advantage Tools deinstallieren willst / musst.

Wie bereits erwähnt, dass wird noch optional. In meinem Fall benötige ich es nicht und wer es nicht brauch, kann es eben entfernen.

Und wenn du schon snap entfernen willst: dann mach' es doch ordentlich.

Ich deaktiviere erstmal alle systemd services die es gibt und anschließend wird jedes Paket, dass "snap" ENTHÄLT entfernt. Also eben auch snapd. Das findet per purge statt, sodass hier komplett abgeräumt wird. Ein autoremove für liegengebliebene Abhängigkeit mit einzusetzen, nehme ich mal mit auf meine Liste.

Sowas wie source /root/gcli/conf/env hat auch in einem Script das andere verwenden sollen nichts zu suchen, /root ist das home vom root, da gehört garnichts hin.

Da ich was meine Kenntnisse noch nicht so weit bin, eigene deb Pakete zu bauen, liegt es aktuell noch im /root Verzeichnis. Ich bin aktuell am Abwägen, ob ich - unabhängig von der Paketerstellung, das Script in /usr/local/ einsortiere und config files (wie das env file) unter /etc/. Oder was wäre da best-practice?

Warum fummelt das Ding an der /etc/skel rum Warum wird .ssh/authorized_keys per /etc/skel verteilt?

Überbleibsel von privatem Setup. Fliegt raus. War für mein privates Home-Setup um alle Benutzer, auch neu-erstellte über den selben SSH Key zu erreichen da PasswordAuthentication aus ist. Und ansonsten für die Prompt, damit alle user die selbe Prompt haben...Siehe beim nächsten Zitat.

Und was an der .bashrc von root?

Eine hilfreichere Prompt (mit RC, Zeitstempel, workdir, hostname, $/#) und dafür das komplette "default" styling der prompt raus

Und was geht dem Tool meine sshd_config an?

Macht im Endeffekt nichts anderes als X11Forwarding aus, Password-Auth aus, root Login aus, PrivKeyAuth an, authorized_keys Pfad definieren und steht im Zusammenhang mit der Erstellung des sudo-Users. Warum? Viele v/Cloud Server Anbieter haben nur den root-User und fügen keinen sudo-User hinzu. Soll in Richtung mehr Sicherheit für den SSH Server schubsen.

Dein Problem wurde z.B. von Ansible & Co schon gelöst

Spiele tatsächlich auch schon mit der Überlegung, die komplette Einrichtung (Base, LAMP+Mail) über Ansible stattfinden zu lassen. Da ja eben das Tool eigentlich nur das CLI Tool für den LAMP+Mail Stack werden soll - unabhängig ob du dich eben für/gegen Snap/Advantage Tool entschieden hast. Der LAMP+Mail Stack müsste dann aber halt eben übers Ansible PlayBook installiert werden, damit das CLI Tool kompatibel ist (gerade im Bezug auf Mail).


Im Endeffekt soll es ein CLI Tool zur Verwaltung eines LAMP Stacks+Mailserver werden. Das "init base" quasi ein kleine "Überarbeitung" des Base Systems bei dem nahezu alles optional wird. (raus was man nicht braucht, Prompt Styling, SSH auf Public Key mit passenden sudo-User)

Der eigentliche Teil kommt dann erst mit den CLI Commands für die Dienste, die Einrichtung z.B. einer Domain, eines Proxy, einer neuen E-Mail Adresse etc. pp. erleichtern soll.

encbladexp Team-Icon

Ehemaliger
Avatar von encbladexp

Anmeldungsdatum:
16. Februar 2007

Beiträge: 17277

Frankenstein schrieb:

Da ich was meine Kenntnisse noch nicht so weit bin, eigene deb Pakete zu bauen, liegt es aktuell noch im /root Verzeichnis. Ich bin aktuell am Abwägen, ob ich - unabhängig von der Paketerstellung, das Script in /usr/local/ einsortiere und config files (wie das env file) unter /etc/. Oder was wäre da best-practice?

Ist im FHS definiert was wohin kommt. Kurz: $HOME von einem normalen User ist es niemals.

Und was an der .bashrc von root?

Eine hilfreichere Prompt (mit RC, Zeitstempel, workdir, hostname, $/#) und dafür das komplette "default" styling der prompt raus

Systemtools fummeln nicht am $HOME von jemandem rum, das machen nur die User selbst. Du kannst maximal irgendwelche dings.d Verzeichnisse um deine Sachen anreichern, bei allen weiteren Modifikationen wird man dich nicht mehr sonderlich mögen.

Antworten |