1 / 41

Comanche A GUI management tool for Apache comanche

Comanche A GUI management tool for Apache http://www.comanche.org. Daniel L ó pez Ridruejo daniel@covalent.net. Talk Overview. Part I What is Comanche, features overview, demo, architecture, future development Part II XML and Comanche How to add support for Apache modules

Download Presentation

Comanche A GUI management tool for Apache comanche

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ComancheA GUI management tool for Apachehttp://www.comanche.org Daniel López Ridruejo daniel@covalent.net

  2. Talk Overview Part I • What is Comanche, features overview, demo, architecture, future development Part II • XML and Comanche • How to add support for Apache modules • How to add support for other programs

  3. Part I: Comanche Overview • Introduction • Motivation • Features • Demo • Architecture • The future

  4. Part I: Comanche Overview • Introduction • Motivation • Features • Demo • Architecture • The future

  5. Introduction • Configuration Manager for Apache • GUI for managing Apache • Common framework for developing other configuration programs

  6. Part I: Comanche Overview • Introduction • Motivation • Features • Demo • Architecture • The future

  7. Motivation • Current GUIs shortcomings • Make it easy for users • Make it easy for developers

  8. Motivation: Users • Guide the user • Hide complexity for newbies • Full access for power users

  9. Motivation: Developers • Modular, extensible design • Make it easy to contribute • Simple API • Simple tasks via XML • Complex tasks via XML + a little bit of coding • “One afternoon” learning curve

  10. Part I: Comanche Overview • Introduction • Motivation • Features • Demo • Architecture • The future

  11. Open-source Multi-platform Modular Extensible Easy to set up Non-intrusive Multiple language support Context-sensitive help Convenient Features

  12. Demo

  13. Part I: Comanche Overview • Introduction • Motivation • Features • Demo • Architecture • The future

  14. Architecture Namespace Plug-in User interface Plug-in

  15. Architecture Abstract: • Configuration Information (httpd.conf, smb.conf) • Information presentation (User Interface)

  16. Architecture • XML for user interface • XML for configuration format description • Multiple front-ends • Distributed and multiple language support

  17. Part I: Comanche Overview • Introduction • Motivation • Features • Demo • Architecture • The future

  18. The future • Covalent support • Distributed architecture (XML-RPC, CORBA). Hidden from developer • Write plugins in Perl, Java, etc • HTML interface • Apache directly configured via XML

  19. The future: getting involved • Translations • Add support for Apache modules • Write new plug-ins: ftp server, user management, qmail… • Submit bug reports • Buy some beers to the author :)

  20. Talk Overview Part II • XML and Comanche • How to add support for Apache modules • How to add support for other programs

  21. XML and Comanche • XML basics • XML for configuration • XML for User Interface

  22. XML Basics • eXtensible Markup Language. • Standard way of defining, storing and exchanging structured data. • Tag based and similar to HTML

  23. XML and Comanche • XML basics • XML for configuration • XML for User Interface

  24. XML for configuration • Translate multiple formats  XML • Configuration directives syntax changes from release to release • User Interface needs to know information about the parameters of a particular directive

  25. XML configuration language • Schema language • Combine basic blocks to define complex directives Number Choice Alternate Boolean Structure String List

  26. XML configuration language <list name="userNames" label="Names of users"> <syntax> <string name="user" label="Name of the user" > <default>nobody</default> </string> </syntax> <default> <item>dani</item> </default> </list>

  27. XML and Comanche • XML basics • XML for configuration • XML for User Interface

  28. XML User interface • Programmatic User Interface generation • Multiple front-ends • No coding required • Isolate configuration tasks from presentation

  29. XML User Interface <list name="userNames" label="Names of users"> <syntax> <string name="user" label="Name of the user" > <default>nobody</default> </string> </syntax> <default> <item>dani</item> </default> </list>

  30. Talk Overview Part II • XML and Comanche • How to add support for Apache modules • How to add support for other programs

  31. Support for Apache modules • Describe directives • Property pages • Module description

  32. Mod_cgi: Directives <string name="scriptLog" label="apache1.3_cgi_scriptLog" classes="file"> <default></default> </string> <number name="scriptLogLength" label="apache1.3_cgi_scriptLogLength"> <default>10385760</default> </number> <number name="scriptLogBuffer" label="apache1.3_cgi_scriptLogBuffer"> <default>1024</default> </number>

  33. Mod_cgi: Property pages <propertyPage label="apache1.3_cgi_cgi" icon="smallWheel" name="cgi" align="vertical"> <directiveInclude name="scriptLog"/> <directiveInclude name="scriptLogLength"/> <directiveInclude name="scriptLogBuffer"/> </propertyPage>

  34. Mod_cgi: Module description <apacheModuleDescription name="cgi" directivesXMLDefinition="directives.xml" propertyPagesXMLDefinition="propertyPages.xml" description="This modules provides for execution of CGIs." icon="smallWheel"> <nodesInterested> <node type="mainserver"> <propertyPage name="cgi" /> </node> </nodesInterested> </apacheModuleDescription>

  35. Talk Overview Part II • XML and Comanche • How to add support for Apache modules • How to add support for other programs

  36. Support for other programs • Design property pages • Add nodes to the namespace • Answer property pages requests • Receive property pages results

  37. Example: DNS configuration • /etc/resolv.conf • Nameservers • Domain search order

  38. Design property pages <propertyPage name="nameserversPP" icon="network" align="vertical"> <list name="domainList" label="resolv_domain_order"> <syntax> <string name="domain“ label="resolv_domain_suffix" /> </syntax> </list> <list name="dnsList" label="resolv_dns_order"> <syntax> <string name="dns" label="resolv_dns_suffix" /> </syntax> </list> </propertyPage>

  39. Add node ::plugInUtils::addNode $this $namespace $parentNode \ -classes {nameservers leaf} \ -openIcon network \ -closedIcon network \ -label [mesg::get \ resolv_nameservers_settings]

  40. Answer property page body nameserversPlugIn::_inquiryForPropertyPages { node } { fillPropertyPages return $nameserversXuiPP }

  41. Process prop. pages result body nameserversPlugIn::_receivedPropertyPages { node xuiPropertyPages } { set pp [$xuiPropertyPages getComponentByName nameserversPP] saveNameServerSettings $pp }

More Related