symbolic: simplify your network management
TRANSCRIPT
SymbolicSimplify your network
management
Marco [email protected]
This presentation is licensed under a Creative CommonsAttribution-NonCommercial-ShareAlike (BY-NC-SA) 3.0 license.
What is Symbolic?● Advanced WebBased Ajax Application made
with Groovy/Grails (Web 2.0)
● Manage complex enterprise infrastructures
● Execute commands and scripts on remote machines
● Based on Func (Fedora Unified Network Control)
● Secure SSL guest connection
What is Symbolic?
Why Symbolic?
● Large scale environments● Increasing every day number of machines
(especially virtual machines)● Lots of people to control different
environments
Why Symbolic?
● Tool to take all under control● Centralization of many tools in a single
product (cobbler, puppet, func, oVirt, ...)
Main Functions
● Auto discovering machines info● Call each controlled machine to auto
complete symbolic database
● Func auto alignment● Ask for list of modules installed for specific
machine● Ask for list of methods accessible for each
module
Main Functions
● Scripts execution● Can manage Python, Groovy, Bash, Ruby and
Perl scripts
● User roles definition● Act only on assigned machines and/or scripts
● Schedule Operations● Quartz Framework● Executed by different threads
XML-RPC Server
● Exposes some methods that “external” scripts and program could use
● Protected with HTTP Basic Authentication● User data is stored in database with each
roles
XML-RPC Server
● Scripts Runner Example
Access & Security● Security assured by using Java Framework:
Spring Security
● Provides powerful and flexible security solutions for enterprise applications
● Widely used in Java projects● Personalize each area/page for specific user
group
Access & Security
● Access assured by major login systems● Spring Security Database● LDAP● Kerberos ● Active Directory
Plugins
● Symbolic application dynamic extension provided by external plugin installation● Scripts + library (Jars) added at run time
● Symbolic configuration file specifies plugin folder● Default: /etc/symbolic/plugins
Plugins
● Must be packaged respecting defined structure
/etc/symbolic/plugins/plugin-1-folder
configuration-filescript-file/lib-folder
lib-files /plugin-2-folder
configuration-filescript-file/lib-folder
lib-files
Plugins
● Configuration File● Extension must be .conf● Needs these two properties
● jobName = nameYouWant● JobCron = 0/5 * * * * ? (Respecting Quartz spec.)
jobName = nagios-pluginjobCron = 0/5 * * * * ?
mailType = imapmailHost = mail.byte-code.commailPort = 143mailUname = usernamemailPassword = password
Plugins
● Script File● Supports for groovy scripts● Used as Quartz Job: for scheduled and
autonomous operations
import com.opensymbolic.plugins.nagios.MailReader
MailReader reader = new MailReader()reader.checkNewMessages(mailHost, new Integer(mailPort).intValue(), mailUname, mailPassword)
Plugin
● Lib Folder● Not required● You can store all jars and classes you need to
execute your script● Isolated Class Loader
● No conflicts with different plugins● Problems isolated in a specific plugin
Future
● New skinnable graphic interface
Future
● Problem adaptive plugin● For example a Nagios alarm could activate
some special function in symbolic● This plugin will define only the rules and then
symbolic will decide looking the context of the problem
● Complete Puppet integration● Extend the use of plugin
● Not only Quartz Job (schedulable)
More Info
● Web Site: http://www.opensymbolic.com
● Trac: http://projects.byte-code.com/trac/symbolic
● Git: git://projects.byte-code.com/symbolic
THANK YOU!