WebYaST Remote Web Based System Management Ladislav Slezák lslezak@suse.cz SUSE Linux s.r.o.
Content YaST WebYaST features WebYaST demo Implementation details, solved problems Installation, customization Questions
YaST
YaST – Yet another Setup Tool System management tool for Linux System installer Open source (GPLv2+) Included in openSUSE, SUSE Linux Enterprise Desktop application, administration account needed
YaST – Installation
YaST – Control Center
YaST – Package Manager
YaST – Package Manager
WebYaST
WebYaST Features Successor to YaST Access via a web browser Open source (GPLv2 and LGPLv2)
WebYaST – Target Users Beginner users Experts (remote system monitoring) Appliance (virtual machine) management e.g. SUSE Lifecycle Management Server (SLMS)
Comparing YaST and WebYaST Remote access YaST WebYaST SSH VNC HTTPS No special SW needed, just a web browser OS/HW independent
Comparing YaST and WebYaST Authorization and security YaST WebYaST Admin Password User administrator SW administrator ? Linux System User administrator SW administrator User's password Access rights Linux System No password sharing Access control Role based access
WebYaST Demo
WebYaST
WebYaST
WebYaST
WebYaST
WebYaST
WebYaST in Details
YaST Architecture YaST UI Application Logic Low Level Access (Qt, Gtk, ncurses) Application Logic YaST Low Level Access System Privileged user (root)
WebYaST Architecture – Overview Web browser HTML/HTTPS Web client Non-privileged user XML/HTTP Web service (REST service) Non-privileged user ? System WebYaST
WebYaST Architecture – Details Web browser HTML/HTTPS Web client Non-privileged user Client Web XML/HTTP Web service (REST service) Non-privileged user DBus WebYaST YaST DBus service PackageKit ... Privileged user System REST Service Direct non-privileged access
WebYaST – Details WebYaST uses Ruby on Rails framework Reusing existing YaST code DBus Access control PolicyKit UI (Qt, Gtk, ncurses) DBus Wrapper Application Logic Low Level Access DBus service System Legacy YaST Privileged user (root)
REST Service The backend which actually configures system XML or JSON format over HTTP Can be also used by 3rd party software or from commadline (via curl, wget)
REST Service Key components/features Small privileged part – DBus service Access control – using PolicyKit Reusing existing YaST components
Web Client HTML output over HTTPS Key features XML communication with REST – Rails ActiveResource Cross-browser compatibility – jQuery JavaScript library Localization support – GetText
Web Client – Customization First boot mode – first time configuration Set of modules started before the main application Started just once Example: license agreement, root password, registration Custom icon/link in the control panel, custom label Custom CSS (layout, colors, ...)
WebYaST – Customization
WebYaST – Plugins Plugin design Similar to legacy YaST Basic and shared functionality in base packages Plugins implement the actual functionality Decrease package dependencies Install only the needed modules (security) Plugins make WebYaST easily extensible
Installing WebYaST
WebYast – Installation Already preinstalled WebYaST in an appliance Installing from RPM packages http://download.opensuse.org/repositories/YaST:/Web/ Start yastws and yastwc system services Open webyast-ui firewall port (optional for remote access) Open https://localhost:54984 in your browser Running directly from sources (GIT) The latest version for developers See http://en.opensuse.org/YaST/Web/Installation
WebYaST – Development Interested in WebYaST development? Open source (GPLv2 and LGPLv2) Contact: yast-devel@opensuse.org IRC freenode.net #yast Bug reporting http://bugzilla.novell.com, product: WebYaST
Resources WebYaST Documentation User and Vendor Guide General Terms http://en.opensuse.org/WebYaST User and Vendor Guide http://www.novell.com/documentation/webyast/ book_webyast_use/data/cha_webyast_user_overview.html http://www.novell.com/documentation/webyast/ book_webyast_vendor/data/cha_webyast_vendor_overview.html General Terms REST: http://en.wikipedia.org/wiki/Representational_State_Transfer
Questions?