Scripting in the Current Novell Environment a Cheat Sheet by Johnnie Odom Anyone Can Script
Total Page:16
File Type:pdf, Size:1020Kb
Scripting in the Current Novell Environment A Cheat Sheet By Johnnie Odom Anyone Can Script If you type it in the Terminal or Command Window, it can be scripted. If you can write a basic webpage, you can create a GUI for your scripts. If you learn any programming, you can get fancy with your scripts. And if you look around, you can steal or modify lots of existing scripts. What You Will Need A good text editor. On Windows: Notepad++ or Visual Studio Not Notepad. NOT WORDPAD! OS X: TextWrangler / BBEdit, Coda, TextMate Linux: Various based on religion (Seriously: Gedit, Vi, Emacs, nano, joe, jedit ...) Ideally a test environment. A server to run central scripts. Hint: SuSE / OES. A means to send desktop scripts to workstations. Hint: It’s ZENWorks What You Need to Find Out The path to the scripting engine. /usr/bin/php [Unix Style scripts begin with #!/path/to/engine] “C:\Windows\System32\cmd.exe” [ZENworks likes to know engine path.] What libraries are available? Libraries installed by default or at system install. Package system for installation of additional libraries. Most script libraries are just shims to system libraries. Google for documentation and scripting examples. Also, look at Cool Solutions and developer.novell.com And steal from Novell engineering (see what scripting files are included with the products.) How do I run arbitrary executables / shell commands? What facilities are available for error reporting and logging? System versus log file. Can I put a GUI on it or make it clickable? Novell / TAG Targets ZENWorks: Command Line Interface (zman and zac - “zman batch” is your friend!) Data Model OES / SuSE / eDirectory LDAP! Any traditionally scriptable component of Linux (i.e. everything) Screen-Scraping iManager GroupWise Current SOAP interface Upcoming RESTful admin interface eDirectory attributes Vibe Windows registry and Linux / OS X configuration files. NetIQ / SuSE Just about everything from these divisions has a firmly supported scriptable component. Workstation Targets Files Windows Registry Application-Specific Databases System commands Windows Options Traditional batch (cmd.exe) VBScript Powershell (Use this!) Other .NET languages as needed. Soon, lots of Javascript. Linux / OS X Options Shell + Unix Utils Perl PHP Python Ruby Expect - TCL CGI Javascript AppleScript / osascript Mono I Take Working Vacations A Few Words on Mono and .NET GUI targets keep shifting on Windows. If on Mono, use GTK# and install on Windows for cross-platform compatibility. Don’t use DirectoryService for eDirectory connections -- it does not support SSL on standard LDAP. Use the Novell C# LDAP libraries instead. Also, those are (somewhat) cross-platform. Mono is quite good now. Good for cross-platform solutions. LDAP Tips Use a raw LDAP tool like LDAP Browser (have to search for that one) to see how eDirectory really represents items. Use your imagination. Group-Like Things have two entries -- one in the group, and one in each member object. Always filter searches by object class to make sure you avoid getting other objects with similar names. CLI Vs. GUI CLI allows more flexible deployment and combination of scripts with other tools. GUIs allow users to self-service. If using a heavy environment (.NET), GUIs are fairly easy. On OS X, osascript can trigger AppleScript GUI events (buttons, text boxes). But the best GUI is the web. PHP of course, but also Perl, CGI, ruby, ASP etc. Demos Deploying Your Scripts Yes, you can still do one-liners in the NCP login script. ZENworks! Yes, it can move script files to HD and run them as a launch action, but ... Why not just run them direct as a ZENworks bundle? Run from mapped drive. File copy. System package format - .msi (Win), .pkg (OS X), rpm (Linux) Some Crazy Ideas Screen-Scraping iManager Novell Virtual File System XTier LibFLAIM Conclusion On the Unix side, check out Eric. S. Raymond’s “The Art of Unix Programming” Be sure to submit to Cool Solutions http://www.novell.com/communities/coolsolutions Write lots of code comments. Remove your site assumptions. Compose a friendly title page Fabulous Prizes! Have Fun!.