UnFUG (Unix Friends and User Group der FH Furtwangen) Verteilte Administration mit STAF (Software Testing Automation Framework) Tobias Walter (tobias@unwichtig.org) http://www.unwichtig.org 13. Januar 2005 Verteilte Administration mit STAF UnFUG.org
Fahrplan Was ist STAF? Wie funktioniert STAF? Konfiguration Beschreibung der benoetigten Services Beispiel-Script Verschiedene BS in einem Script Security URLs Verteilte Administration mit STAF 2
Was ist STAF? eigentlich ein Framework fuer automatisierte Softwaretests Multiplatform (Linux, AIX, Windows...) Multilanguage (C/C++, Java...) Entwickelt von IBM (GNU LGPL) Verteilte Administration mit STAF 3
Was ist STAF? Verteile Administration ist ein Missbrauch des Frameworks ;-) Nur kleine Teile des Frameworks werden benoetigt Je nachdem nicht die ideale Loesung Verteilte Administration mit STAF 4
Fahrplan Was ist STAF? Wie funktioniert STAF? STAFProc-Deamon Internal STAF Services External STAF Services STAF Services Requests Konfiguration Beschreibung der benoetigten Services Beispiel-Script Verschiedene BS in einem Script Security URLs Verteilte Administration mit STAF 5
STAFProc-Deamon peer-to-peer kein Client-Server-Prinzip STAFProc Internal Services STAFProc Internal Services External Services Requests External Services Requests Verteilte Administration mit STAF 6
Internal STAF Services HELP Hilfe zu den Services & Fehlern PING Testen, ob STAF einsatzbereit ist SERVICE Auflisten der Services SHUTDOWN STAFProc beenden Verteilte Administration mit STAF 7
Internal STAF Services VARIABLE STAF-Variablen setzen PROCESS Ausfuehren von Prozessen FS Dateien bzw. Ordner kopieren QUEUE, SEMAPHORE,... Verteilte Administration mit STAF 8
External STAF Services werden nicht von STAFProc bereitgestellt C/C++, Java,... Beispiele: LOG MONITOR... Verteilte Administration mit STAF 9
STAF Services Requests STAF <Hostname IP> <Service> <Request> Beispiele: STAF local ping ping STAF oberon.lan service list API fuer C/C++, JAVA,... Verteilte Administration mit STAF 10
Fahrplan Was ist STAF? Wie funktioniert STAF? Konfiguration STAF.cfg Trustlevel Beschreibung der benoetigten Services Beispiel-Script Verschiedene BS in einem Script Security URLs Verteilte Administration mit STAF 11
STAF.cfg STAF.cfg: interface tcpip 6500 trace on error TRUST oberon.lan LEVEL5 TRUST ophelia.lan LEVEL4 TRUST DEFAULT LEVEL 0 VAR EMAIL=tobias@unwichtig.org Verteilte Administration mit STAF 12
Trustlevel Level 0: Kein Zugriff Level 1 4: Zwischenstufen, manche Services oder Dateirechte sind nicht vorhanden Level 5: Vollzugriff, Shellcommandos absetzen, etc. Verteilte Administration mit STAF 13
Fahrplan Was ist STAF? Wie funktioniert STAF? Konfiguration Beschreibung der benoetigten Services VAR-Service PROCESS-Service FS-Service Beispiel-Script Verschiedene BS in einem Script Security URLs Verteilte Administration mit STAF 14
VAR-Service Setzen und Auslesen von Variablen Beispiele: GLOBAL SET NAME=Tobias GLOBAL GET EMAIL GLOBAL DELETE NAME GLOBAL LIST Verteilte Administration mit STAF 15
PROCESS-Service Starten von Prozessen: START COMMAND reboot Mit Parametern: START COMMAND shutdown PARMS -r START SHELL COMMAND "shutdown -r" Auf das Ende der Prozesses warten: START COMMAND sleep PARMS 5 WAIT Verteilte Administration mit STAF 16
PROCESS-Service Standard-Input & -Output : START COMMAND <Befehl> STDIN <File> STDOUT <File> STDERR <File> An Datei anhaengen: START COMMAND <Befehl> STDOUTAPPEND <File> STDERRAPPEND <File> Verteilte Administration mit STAF 17
PROCESS-Service STDERR in STDOUT umleiten: START COMMAND <Befehl> STDOUT <File> STDERRTOSTDOUT STDOUT zurueckgeben: START COMMAND <Befehl> RETURNSTDOUT WAIT File zurueckgeben: START COMMAND <Befehl> RETURNFILE <File> WAIT Verteilte Administration mit STAF 18
PROCESS-Service Shell auswaehlen: START SHELL <Shell> COMMAND <Befehl> Arbeitsverzeichnis auswaehlen: START COMMAND <Befehl> WORKDIR <Directory> Prozess in einen Workload einordnen: START COMMAND <Befehl> WORKLOAD <Name> Verteilte Administration mit STAF 19
PROCESS-Service Alle STAF-Prozesse stoppen: STOP ALL CONFIRM Alle Prozesse eines Workloads stoppen: STOP WORKLOAD <Name> Ein einzelner Prozess kann nicht gestoppt werden. Verteilte Administration mit STAF 20
FS-Service Dateien kopieren: COPY FILE <localfile> TOMACHINE <Host> COPY FILE <localfile> TOFILE <remotefile> TOMACHINE <Host> Nicht Ueberschreiben: COPY FILE <localfile> TOMACHINE <Host> FAILIFEXISTS Verteilte Administration mit STAF 21
FS-Service Verzeichnisse kopieren: COPY DIRECTORY <localdir> TOMACHINE <Host> COPY DIRECTORY <localdir> TODIRECTORY <remotefile> TOMACHINE <Host> Rekursiv: COPY DIRECTORY <localdir> TOMACHINE <Host> RECURSE Verteilte Administration mit STAF 22
FS-Service Datei loeschen: DELETE ENTRY <Datei> CONFIRM Verzeichniss loeschen: DELETE ENTRY <Verzeichnis> RECURSE CONFIRM Verteilte Administration mit STAF 23
Fahrplan Was ist STAF? Wie funktioniert STAF? Konfiguration Beschreibung der benoetigten Services Beispiel-Scripts Logfiles sammeln Nmap installieren Verschiedene BS in einem Script Security URLs Verteilte Administration mit STAF 24
Beispiel Logfiles sammeln #!/bin/sh date=`date +"%Y-%m-%d"` mkdir /logfiles/$date/ for i in pc1.lan pc2.lan pc3.lan do STAF $i FS COPY FILE /var/log/syslog TOFILE /logfiles/$date/$i TOMACHINE server.lan done Verteilte Administration mit STAF 25
Beispiel Nmap installieren #!/bin/sh for i in pc1.lan pc2.lan pc3.lan do STAF $i PROCESS START SHELL COMMAND "wget http://download.insecure.org/nmap/dist/nmap-3.75.tgz" WORKDIR /usr/local WAIT STAF $i PROCESS START SHELL COMMAND "tar xfvz nmap-3.75.tgz" WORKDIR /usr/local WAIT STAF $i PROCESS START SHELL COMMAND "./configure && make && make install" WORKDIR /usr/local/nmap-3.75/ WAIT STAF $i PROCESS START SHELL COMMAND "ln -s /usr/local/nmap- 3.75/nmap /usr/local/bin/nmap" WAIT done Verteilte Administration mit STAF 26
Fahrplan Was ist STAF? Wie funktioniert STAF? Konfiguration Beschreibung der benoetigten Services Beispiel-Scripts Verschiedene BS in einem Script Security URLs Verteilte Administration mit STAF 27
Verschiedene BS in einem Script Pfade zu Dateien und Verzeichnissen in STAF-Variablen ablegen Cygwin auf Windows-Maschienen -> Unix-Tools (z.b. diff) Bei komplexen Aufgaben je nach BS Unterscheidung im Script Verteilte Administration mit STAF 28
Security Rootzugriff ueber STAF moeglich Einziger Schutz ist der IP-Filter Setzen eines andern Users moeglich: SET DEFAULTAUTHUSERNAME test SET DEFAULTAUTHPASSWORD geheim in der STAF.cfg Verteilte Administration mit STAF 29
URLs Software Testing Automation Framework http://staf.sourceforge.net Artikel vom Lead-Developer http://www.research.ibm.com/journ al/sj/411/rankin.pdf Meine Seite http://www.unwichtig.org Verteilte Administration mit STAF 30
UnFUG (Unix Friends and User Group der FH Furtwangen) Fragen? Verteilte Administration mit STAF UnFUG.org