Devel79 Tray

UPDATE verze 4.0! Pro svůj lokální virtuální vývojový server jsem potřeboval utilitu, kterou bych mohl jednoduše ovládat jeho běh, sledovat stav a přistupovat rychle ke konzoli. Postupem času jsem potřeboval mít možnost pouštět více serverů najednou a jednodušše na nich spouštět vzdáleně příkazy.

Proto jsem vytvořil program Devel79 Tray, který se usídlí ve Windows vedle hodin, informuje mě o stavu serveru (serverů) a dovolí mi ho (je) jednodušše ovládat.

Program spustí server v headless režimu, což znamená, že běží bez konzole a tu není možné ani nijak zobrazit. Při dvojkliku na ikonu programu dojde k připojení na server přes SSH. Pokud už je konzole SSH spuštěna přes tento program, pouze se přenese do popředí. To samé lze provést i z menu, které se zobrazí při kliknutí na ikonu pravým tlačítkem myši. Z menu lze server spustit, restartovat a vypnout (vypnutí volá funkci VirtualBoxu ACPI power button a restart pak jenom znovu server spustí). Pokud je server spuštěný pak se při vypnutí programu zobrazí dotaz, zda se má vypnout i server (či servery). Pokud je odpověď kladná, vypne se i otevřená SSH konzole.

Další přidanou hodnotou programu je monitorování adresářů. Tam se mohou ukládat emaily odeslané na testovací SMTP server, logy a podobně. Pokud přijde email nebo se vygeneruje nový log, zobrazí se bublina s upozorněním a při kliknutí na bublinu se soubor spustí v přidružené aplikaci. Dále lze přímo z menu tyto adresáře otevírat.

Program také monitoruje stav serveru a zobrazí upozornění, pokud ho zapnete nebo vypnete externě, případně pokud se virtuální stroj nečekaně ukončí (prostě spadne, i to se mi už s VirtualBoxem stalo…).

Ve čtvrté verzi přibyla možnost spouštět více virtuálních serverů najednou (dříve se mezi servery přepínalo) a monitorovat více adresářů.

Na serveru je možné spouštět i příkazy. Ty se definují pro každý server zvlášť a primárně byly implementovány pro odesílání příkazu na server přes SSH a zobrazení výsledku. Není, ale problém nechat spustit jakýkoliv příkaz, který systém Windows zvládne vykonat. Pokud má server definované příkazy, zobrazí se v menu.

Program můžete spustit s následujícími parametry:

devel79tray [--run|-r machine] [--config|-c filename]

--run (-r) - po spuštění programu se spustí automaticky i server nebo servery oddělené mezerou
--config (-c) soubor - načte soubor s nastavením (defaultně devel79tray.conf)

Konfigurační soubor

Jako konfigurace programu se použije textový soubor devel79tray.conf (pokud neurčíte jinak) umístěný ve stejném adresáři jako spustitelný soubor:

[server]

# Server name
name = Devel79 Server

# VirtualBox machine name 
machine = devel79

# SSH client shell command
ssh = D:\Console2_x64\Console.exe -r "/k ssh devel@devel79 -i D:\id_rsa"

# Directories for watching
watch = emails | New email | C:\Emails
watch = logs | New log | C:\Web\logs

# Commands
command = Flush Redis | D:\Programs\putty\plink devel@devel79 -i E:\id_rsa.ppk "redis-cli flushall"
command = Backup WWW | D:\Programs\putty\plink devel@devel79 -i E:\id_rsa.ppk "/home/devel/scripts/backup www"

Pro každý server musíme založit novou sekci [server].

Parametr name určuje váš vlastní název virtuálního server, který se budu zobrazovat v programu.

Parametr machine určuje přesný název virtuální serveru tak, jak je ve VirtualBoxu (rozlišuje velká a malá písmena!)

Parametr ssh určuje příkaz, kterým se připojíte přes SSH na server (v tomto příkladě se používá ssh klient z msys a otevírá se v programu Console2).

Parametr watch určuje adresář, kam server ukládá soubory. Přebírá 3 parametry oddělené pomocí |, první je název zobrazný v menu, druhý zpráva zobrazená při vytvoření nového souboru a třetí je samotný adresář určený k monitorování.

Parametr command definuje jeden příkaz. Název oddělený | následuje příkaz, který se má zavolat. Zde se volá SSH přes plink (SSH z MSYS mělo s tímto problémy).

Stažení

Pro stažení zip souboru s aplikací navštivte adresu http://forrest79.net/?produkt=8. Pro běh programu je potřeba .NET Framework 4 (stahujte zde).

Zdrojový kód

Zdrojový kód aplikace je šířen pod licencí BSD a naleznete ho na adrese https://github.com/forrest79/devel79tray.

Napsat komentář

Vaše emailová adresa nebude zveřejněna.