v1.3.1
Dvestezar Terminal Manager je nástroj pro správu systémů založených na Debianu, jako jsou Ubuntu, Raspbian, OrangePi a další distribuce. Poskytuje jednoduché menu pro ovládání různých funkcí systému přímo z terminálu.
Tento nástroj je navržen jako modulární framework, který lze snadno rozšiřovat o nové podaplikace a funkce podle potřeb.
Aktuální funkce aplikace:
-
User Management:
- Správa uživatelů systému včetně přidávání, mazání a nastavování hesel.
- Generování a správa SSH klíčů s automatickým ukládáním do
authorized_keys
. - Správa přístupu uživatelů k sudo.
-
Node-RED Instance Manager:
- Vytváření, editace, zálohování a mazání instancí Node-RED.
- Správa šablon pro rychlé nasazení nových instancí.
- Automatická kontrola a konfigurace služeb pro každou instanci.
Aplikace je připravena na rozšiřování o další moduly a podaplikace. Pokud máš nápad na novou funkcionalitu nebo chceš přidat podporu pro specifickou službu, jsi vítán!
Každý nový modul může být jednoduše přidán jako nová podaplikace do adresáře libs/app/menus/<app_dir>
. Tato struktura umožňuje snadnou integraci do hlavního menu a přehlednou správu kódu.
Hlavní menu se vytváří tak, že projde libs/app/menus/<app_dir>
kde app_dir
je adresář aplikace, který musí obsahovat`:
menu.py
tento soubor musí obsahovat:- property
_MENU_NAME_
které obsahuje text zobrazený pro volbu v hlavním neu - class
menu
které bude z hlavního menu voláno jako výchozí menu aplikace
- property
Node-Red Instance Control je nástroj pro správu instancí Node-RED, který umožňuje konfigurovat a spravovat jednotlivé instance na serveru. Aplikace poskytuje uživatelsky přívětivé menu přímo v terminálu, které vám umožní snadno provádět různé úkony, jako je vytváření, úprava, zálohování a mazání instancí Node-RED. Tento nástroj je určen zejména pro efektivní správu instancí v multi-uživatelském prostředí, kde každý uživatel může mít svou vlastní instanci Node-RED.
-
Nastavení nových instancí a jejich úprava:
- Možnost vytvoření nové instance Node-RED pro konkrétního systémového uživatele.
- Úprava stávajících instancí, včetně změny názvu, hesla, portu nebo typu instalace (např. čistá instalace nebo instalace z archivu).
- Nastavení služby na čtení nebo plný přístup.
-
Správa služeb Node-RED:
- Spuštění, zastavení a zakázání služby Node-RED.
- Možnost ověřit stav služby pro konkrétního uživatele.
-
Zálohování a obnovení:
- Automatické zálohování všech instancí nebo jednotlivých instancí Node-RED.
- Vytvoření zálohy aktuální konfigurace a uživatelských dat.
-
Šablony služeb:
- Možnost vytvoření šablony služby Node-RED, která slouží jako výchozí pro nové instance.
- Odinstalace či odstranění šablon služby.
-
Správa uživatelů:
- Přidání nového uživatele.
- Nastavení a úprava uživatelského přístupu do Node-RED Dashboard-u.
- Možnost nastavit uživatele na režim pouze pro čtení nebo plný přístup.
- Hlavní menu nabízí přehled o konfiguraci, jako je URL serveru, adresáře pro zálohy, dočasné adresáře a výchozí instance. Můžete zde provést akce, jako je vytváření nebo úprava instancí, zálohování, nebo vytvoření šablony.
- Editační menu umožňuje detailně konfigurovat konkrétní instance – měnit porty, názvy, přístupy a další parametry.
- Uživatelské menu poskytuje možnosti pro přidávání uživatelů, nastavení přístupů, a správu jednotlivých uživatelských profilů.
- Fresh: Čistá instalace z repozitáře, vhodná pro nové uživatele nebo vytvoření zcela nové instance.
- Copy: Instalace z existujícího archivu, která umožňuje rychlé obnovení nebo klonování předchozí konfigurace.
- Bezpečnost a přístup: Uživatelé mohou být nastaveni s úrovněmi oprávnění "full" a "pouze pro čtení", což je vhodné pro auditní nebo kontrolní účely.
Tento nástroj zjednodušuje správu více instancí Node-RED v jednom prostředí a nabízí flexibilitu při správě jednotlivých uživatelů, což zajišťuje efektivitu a konzistenci v provozu.
Manager spravuje certifikáty ssh SSH pro připojení k terminálu, ale lze využít jakkoliv.
Je určeno hlavně pro správce serveru. Např správa instancí např node-red, kde vytvoříme instanci a na ni pak vytvoříme SSH klíč pro uživatele, který se může připojit pro debug node-red
Spravuje přímo soubor uživatelů authorized_keys
- Spravovat uživatele systému:
- vytvořit uživatele systému
- nastavit heslo uživatele systému
- smazat uživatele systému, nejdřív je ale provedena záloha home adresáře uživatele a po úspěchu je uživatel kompletně smazán ze systému vč. dat home adresáře.
- v home uživatele vytvoří v
~/.ssh/sshManager
kde ukládá generované klíče - generované klíče může:
- zobrazi privátní klíč pro předání uživateli
- zahrnout nebo vyřadit do/z
authorized_keys
Spouštíme pomocí !run.py
Co je potřeba ke spuštění
Nutné pro běh:
config.ini
je potřeba vytvořit před prvním spuštěním podlecfg.py
Doporučené:
/home/defaultNodeInstance.7z
výchozí zabalený adresář s instancí, (není povinné)
Tento soubor může obsahovat kompletní instanci node-red v dané verzi, nainstalovanými moduly a základní flow
Uvnitř musí být jako root dir adresář se jménemdefaultNodeInstance
a v něm je vpodstatě zabalený (jen potřebný obsah) home uživatelského adresáře
Testováno na Ubuntu 22+
Testováno na python 3.10+
Viz soubor
Lze instalovat pomocí souboru níže
7zip:
apt install p7zip-full
Node.js:
Pro bezproblémovou funkčnost musí být node.js instalován globálně, pro aktuální LTS 22 je to takto:
Provádíme pod sudo nebo se sudo příkazem
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt-get install -y nodejs
Tato app používá submodul 'JBLibs-python', takže po naklonování tohoto repo je potřeba:
git submodule update --init --recursive
Nebo přímé přidání, pokud by nic se submoduly nefungovalo
git submodule add -b <branch> https://github.com/dvestezarzlkl/JBLibs-python.git libs/JBLibs
Hlavní soubor kterým se app spouští
Soubor kterým lze spustit !run.app
z linku.
Př. globální spuštění bez modifikace PATH:
Vytvoříme link do /usr/local/bin
a v systému pak stačí napsat kdekoliv sys_app.sh
nebo jiný název podle názvu symlinku.
např:
ln -s /cesta/k/tvemu_skriptu/sys_apps.sh /usr/local/bin/sys_apps
Toto vytvoří symlink pro příkaz sys_apps
který lze potom odkudkoliv spustit.
Generuje requirements.txt, knihovny které nejsou standartní součástí pythonu
Soubor:
requirements.txt
obsahuje seznam potřebných knihoven, které můžeme doinstalovatpip install -r requirements.txt
pro venv
rq.log
- poslední log i verzí pythonu pro které bylo generováno
utilitku pipreqs
Pokud máme např čistý ubuntu server kde je python3, a chceme nainstalovat globálně, kde nefunguje pip kvůli externí správě (apt), tak budeme potřebovat pipx
Instalace pip
apt install python3-pip
a pipx:
apt install pipx
pipx install pipreqs
# čteme info co zobrazí a popřípadě, pokud potřebujeme
pipx ensurepath
PO TOMTO KROKU je nutné restartovat terminál !!!!
Pokud chceme instalovat v prostředí venv tak postup je viz. venv prostředí.
!! Jen pro globální instalaci knihoven !! a je potřeba mít admin práva !!!
Soubor se pokusí instalovat requirements.txt
přes apt a pak pipx
Pokud je v requirements modul s prefixem 'python_' tak se následně pokusí instalovat bez tohoto prefixu
Pokud chceme instalovat v rámci prostředí tak stačí
pip install -r requirements.txt
!!! Script může zrušit nebo přepsat lokální změny !!!
Aktualizuje lokální repo podle aktuálního stavu na GITu. Pokud tu budeme mít nějaké změny tak budou anulovány.
Script má základní ochranu na test přepnutí lokálního repo do readonly, pokud není provedeno, script se nespustí.
Přepnutí do readonly:
Lokální repo přepneme do readonly pomocí příkazu z terminálu
git config remote.origin.pushurl no_push
Zabalí tento adresář do ZIP jen se soubory a adresáři, které jsou potřeba a výsledný soubor uloží do podadresáře release
.
Adresář release
nebude součástí ZIP a je v gitignore
Tyto nebudou součástí release
a jsou v gitignore
Spustitelné soubor musí mít samozřejmě práva pro spuštění
Např. pro základní skripty
chmod +x '!run.py' 'sys_apps.sh'