 so we are ready to go great so welcome to the welcome to the talk about SUSE Studio I will tell you now how to create customized open SUSE versions with SUSE Studio so my name is Konil Shumacher I will start with an overview about studio and then Daniel Bornkessel will do the demo and later we will have some example appliances and Andrew and Jordy will tell a bit about that so that's where we go that's that's the three parts so let's start with the overview about SUSE Studio who of you has already seen a studio who knows what's what studio is please raise your hand okay and who's actually used studio to create appliances okay so you can learn something about studio how it works what it is and what we want to do with it so our vision is we want to enable the community to create customized open SUSE versions we basically want to enable everyone to create a distribution and we want to make this as easy and fast and accessible as possible so what we are trying to do is we you we want to really make it easy and make it possible to create and share customized versions of open SUSE and software appliances so as I will use the term appliance a bit some words about what what I mean by software appliance so basically a software appliance is a combination of an application with the underlying stack of software which is required together with the configuration so it's bundled in one thing so so you it's easier to deploy it's easier to maintain so it makes life easier for for customers for for users for for creators for for everybody so and then software appliance can be either a virtual appliance like a VM where image or something you run under KVM or it can be for example a live CD which we also consider to be appliance in the context of studio so in our witness to make this as easy and possible and as it can be and some use cases for that so why would you want to do that for example you could create live CDs one example is a mono live CD where you want to demonstrate the mono system and how it works with some example applications so the mono team actually has done that with studio and there's a mono live CD which is distributed at trade shows and stuff like that another use case would be you want to enhance your distribution so so you have open zoos 1101 you are happy with it but you want a more recent version of KDE so you take KDE 4.2 put it on your own version of open zoos and put this on a on a USB stick and carry it with you as a live USB stick so that's also something you you can do with studio or you do demo CDs I have I have as example craft which is an application for small businesses to create invoices and and offers and so this is somebody the author of that made made a demo CD with some sample data and so users could try that out and this demo CD which was built with studio was I think on the February edition of the German Linux magazine so it's a nice way to distribute a complete stack of software where you know it's working and you don't have to install and set anything up and stuff like that that's more more less graphical applications desktop applications I talked about you also can do several appliances for example you could do a lamp server appliance where you put the stack of Apache and MySQL and PHP and all the underlying operating system into one appliance and then you can deploy that and just put your own PHP application on top of that and everything works and you don't have to care about which version of of the database works with which version of the operating system and these kind of problems you can have another example would be installation images for specific hardware so one example is the EPC which is also a real-world example and appliances which already have been built with studio so you can put all the drivers you need specific software you need put it together into to one bundle and have an installation image you can just use on the computer you make the appliance for or a more fun example would be a customer's distribution for your grandmother so if you have a grandmother which likes to use a PC you could put a web browser and her favorite games together with some configurations so you make the fonts bigger she can read it put a picture of yourself as background of the appliance on the booting and on the desktop and give it to your grandmother as Christmas present so and she will be happy I promise this also works with parents by the way or not you that would be an example for for distribution specific for for person but you can also do a distribution specific for for a target audience so could you you could use in a studio to create an education CD so what what the open source education project for example is doing so you can do that to address special target markets or you do a conference CD put some browser and some data on on on the CD everything put together so that it just works so there's just a lot of examples and what we want to do and one of the goal one of the vision behind the project is that we want to enable you to actually implement all these use cases come up with new use cases come up with ideas and and power you to to really implement that use that build that and do that without a lot of effort so the question is how how can we do that and our concept is we have a web application so it's a hosted service studio runs on our servers and the only thing you need to use studio is a web browser so you don't need a big machine with lots of disk space and stuff like that you can basically use a studio from from your iPhone if you like and one one big focus of studio is on on the user interface so we have put a lot of effort into making studio a great experience for the user to make it easy to use to make it fast and to make it really empower users with which don't bother to use complicated command line tools and stuff like that to enable them to still build their own appliances and their own distributions so in the way we do that is the way you create an appliance in studio is you you clone something which already exists so you can use some of the ready made templates you can create a tax only appliance or some some basic desktop appliance or you can also clone existing appliance and so make variants of existing stuff and you can share that again and then people can work together on on making making software better and making better distributions better appliances and to get all the software which is in the world into that not only the stuff which is an open zoos anyway we have a tight build service integration so you can import all the all the software which is in the build service and put it in into studio and run it there so in this all together create some kind of contribution stack so upstream developers are writing their code writing a great application all the free software which is around maintain that somewhere in some source code management tool and then you can packages go and build packages from that in the open zoos a build service which is a great tool to collect all these upstream software and make packages from it and then with a studio distributor and that not only means a company doing distributions but that means a user acting as distributor can go along and just combine the stuff and tune it configure it and put it together to something a new product and maybe very specialized product or something very generalized whatever the user wants to do put it together and give it to users so in the end point is the user which is down there if you can see it who then can use the software and by making it accessible and easy to use these tools we also want to encourage users to become distributors to to enable users to actually make their own distribution and maybe then move up the stack and also package some more interesting software and other interesting software or maybe even get involved into upstream development and and work on improve applications they use so that's just an idea about the philosophy how how we hopefully can enable people to contribute and to to work together on great distributions so now just just a few words about the basic workflow in studio we will see more of that in the demo but the three building blocks are create test and share so we provide an editor to create appliances to create distributions which is has a nice you will see that later and we have a feature to test the appliance on the server so you don't have to download it you can run it on our server you can connect to it in the browser and boot it modify it have a look at it test it you also will see that later in the demo and then we when when you're when you are happy about your appliance you can put it you can share it with other users so that this is something which is still under construction that's not yet live so we are working on that and hopefully you can enable it soon and that's that's so so when you're happy with your appliance you release it to the public and then it appears on our shared area in in studio and other people can can see it can use it can download it can clone it to create an own variant of that so if you see okay somebody has created a great appliance has done some clever tricks you can just use that put your own software on top of that and publish it again as an improved or another version of something so you can whatever replace desktop environments or whatever you want to do so and by this we we want to enable the community to to work together in distribution building and to make make it really easy and quick to yeah create what what users actually want so just a few words about the implementation of that you don't have to read that that's the architecture of studio it's a pretty complex system we use a couple of of different servers talking to each other via HTTP with our web application here and which schedules jobs and we share some data there's some data storage and stuff like that so basically it's one challenge of this is to make it scalable in a way so that's why we use this this pretty modular architecture of different servers so we run run a farm of back-end nodes to build appliances and to to run test drive and how did we do that basically what we did we put Kiwi on rails so Kiwi is the command line front-end or the command line tool to build open zoos images like you had if you hadn't the the talk before you heard already about that it's a command line tool which creates images which is great for open zoos and it can output all kind of different formats virtual appliances VMware images live CDs and different stuff and our user interface is mostly written in rails Ruby on rails and then this covers all the the the web front and we also use it internally as HTTP server and to implement APIs and stuff like that as lock-in system we use OpenID which is a great distributed authentication system where you don't have to we can reuse your your OpenID account to lock into multiple systems and in the back-end we use for for running builds in something Q away use we use KVM as the that's the virtualization implementation which is in the kernel and we use that to to run contained builds for security reasons and we also use this to run the test drive where you start the appliance on the server and another tool I want to mention is lip-sat server which is the great software dependency resolution back-end which is us used by Zippa and just and we also use that to provide our package dependency resolution and to provide live feedback about dependency so users see at once where which packages are available and what what they what they need so that's for the overview about studio and now I will give the word to Daniel to show you what studio can actually do okay okay after Cornelius already gave you a brief overview of the studio I would like to give you a brief demo in which I create a KD for appliance including Firefox so I'll take all the software and then we started and tested and modify it and then I'll show you what you can do with the modifications so that you don't have to download anything you can do the whole process in the browser so usually what you do when you do an appliance you have a set of software in mind you want to show off to people or you want to run as an appliance as a dedicated service and usually those are different groups you usually start off from if you have a server usually have a text-based appliance we have a desktop usually have a GNOME or KDE based desktop so that's why we provide a few templates where you start off from so you don't have to start from scratch but we want to build the KDE for appliance now so we start with the KDE for template and then from there we just refine our software so it's very few steps in order to go from here to our KDE for Mozilla appliance on the first page you're just welcomed and you you can give the appliance a name and you give you get a short introduction from where to go now so as we start with the KDE for template we already have kind of a pre-selection of software which we want to refine now so we want to add a browser etc etc so if you go to the software tab you already see like repositories and software all stuff you you probably know already when you use Jastor if you use Linux so the repositories that were added in the template are the OpenSUSE 11.1 plus the OpenSUSE 11.1 update repositories then we selected some software for you patterns are if you don't know that those are software bundles so it's it's a selection of software and as we selected the KDE for appliance we have the KDE for pattern in here so if you click on it you get some information you see okay it's including KDE basis and then it has like it recommends some software like you get the basic stack for KDE for here but if you want to have the full experience you should install KDE for internet multimedia etc etc and if you want to add this software you could just do it by press the at all button apart from the patterns we have some basic packages and they'll get installed as well for example the KTM as a login manager if you want to remove a software you just click the X button here and gets removed and then you get an instant feedback of what just happened on the sidebar usually I show that in a bit as well so I just removed the YAS2 package if I want to add other packages now I can either search for software or I can use the browsing mode which reflects the RPM groups so if I go in development for example I guess I'll get a list of all development packages I can search only within development because I have the endeavor here KDE if I want to add Firefox for example search for Firefox then I add Firefox here and it shows up here in my software selection now and we do like the resolving we do on the fly so apart from Firefox it had some dependency in need to fill in so I'm just told us I added 34 megabytes and the other packages it added by I want to have the standard KDE branding the search branding and KDE so you can do or and end searches here if I add the upstream branding from KDE I'll get a conflict now because it can't install open zoosa and KTM packages and you get instant feedback here as well like those packages can't be installed at the same time and if you want to solve this problem you just click one of those two links which removes one of the packages which is troublesome so I remove the open zoosa package now so now we started with the KDE for template we added Mozilla and for now that's actually what we want to have so our software selection is finished if there's if you have there would be some software for example KDE 4.2 if you wanted to edit some something of that software that's not found because it's not in our open zoosa 11.1 repository then you get a message down here I don't know if you can read it from behind there but like it wasn't found but you can search in other repositories so if you click this button this takes you to the repository page and searches in other repository that we have cached on our servers so here you can see now that you have the KDE 4 devil pattern in in this repository here which is from the build service if the package was still not found you can easily add a new project from the build service just by providing the name if it's a build service project or if you have some other RPM repository some in the web you can just provide a URL and give it a name and then add this repository so if I add this repository here now go back to the software overview it should yeah it shows up here I get the software changes on the site here because it removed the 11.1 KDE packages and took the packages from KDE factory because they are newer it always takes the new software and it updated the search here as well so now you have a hit for the KDE 4.2 search I remove that for now again so now we have actually selected all our software and we can go on configuring our appliance so we have some basic basic configurations here like for example the language you can set it to like static values or for example if you want to do an appliance which you want to ship all over Europe you can do like ask on first boot which is the just feature so like the first time the appliance boots you can set the language and then it stays like that forever so we have that for language keyboard layout even for network as well I mean the default is DHCP you can do it manually if you want or you can just do the ask on first boot as well then we have some some other firewall for example you can add a new user we have default to the huge and tux or tux it's all pretty easy so you move it so we're going here start up there you can select that the run level you want to start in so if you have a graphical system but you don't want it to start in graphical mode you can switch it to like normal console model run level 3 you have a server for example if you have a MySQL database and you have a MySQL dump you can just upload it and the MySQL database will be preloaded with this dump and here at the site you see again that there's an error now because you said okay please enable MySQL but you didn't have that in your package selection so if you click the link then this package will be added so we try to make it really easy one thing I can show as well if we have an error we couldn't build later because this build button gets disabled so we try really to prevent that you start building appliances which will not work later on the desktop you can select to automatically log in your user and if you want to start if it's like a Firefox Kiosk or browsing Kiosk and you want to auto start Firefox when you log in you just provide the binary here and this program will be started when you build the appliance so at your memory are some settings when you have VM where you can set the ramp size to a certain size but that's not that interesting right now and personalize you can easily theme your appliance so I did a photo of this room before so you can upload it and then you have so that's the the grab this the boot screen that's how your appliance will look like later so it's just uploading an image with one click then everything is themed okay overlay files I will come back to those later and now actually we are ready we ready to build we selected all our software we can configure some basic things and now we only select the build type we want to have later currently we have activated a disk image which is something you can just put on a USB stick and this USB stick will boot we have a live CD and VM images and now when this is finished I won't build it now because this takes like five or six minutes so I build it earlier when this is finished it looks like this and then you can if you want to get a brief overview at first you can do view files which gives you you can browse the file system here but the major feature which really distinguishes I think this appliance builder from a lot of others is that you can test drive this which means it opens another browser window and has a Java plate running which is connected to a VNC server and then it boots your appliance here so this little gap thing and now I put the appliance inside and so you now you can test your appliance and this stuff is really really important because once you put the appliance and and you do some changes for example if you have an Apache appliance and you adjust the the configuration file for example you change this file and then later you go to modified file and you get a list of all files that were changed and you can put these files later in your appliance and this is the overlay files tab I was talking about earlier so what you can do usually you install software you have your whole system you have your directory tree and after that you can say I would like to have a special file like this for some PNG in my home directory as user and permissions and everything so that's for example when you have configuration files you already have ready on your computer you can just upload your Apache configuration file put it in the right directory and then Apache will behave as you wanted to behave go back to test drive okay it's booting up I activated autolog in so it's logging into KDE now and that's the greeting and now Firefox should show up as well close this is first one thing I will do now I will create a new file to show you this modified files feature save this file meanwhile Firefox showed up so the autostart did work so and if you go now to modified files this takes a while the first time this list of all the files which were modified during startup and what you can do you you can download the file you can do or you can just view it in line and now if I do another it's Mozilla so now I have to look for this first time file I just created that was okay here's the first time file I created early on the desktop I can view it and get an error but what the main feature is I can select this file and say add this to my appliance and what happens is when I go in Novel a files now this file shows now up so I created it in on desktop with foster and next time I rebuild this appliance it will be at the right place with with the right user and the right permissions and everything that's how you can tweak your appliance and then some other features in test drive are you can connect with SSH to your test drive so if you don't want to type in the Java applet you just connect with SSH you can do your changes and then go to modified files and see all the changes as well or if it is a web application you can browse to it on port 80 and for 143 the HTTPS yeah so you have the complete process in this web appliance and building this is all running on this little laptop now like this KDE for built took eight minutes here on our servers it's a little bit faster so it's not really long it is a really long time you have to wait that's pretty quick to to do the whole process that's now Jordy wants to talk about some appliances he built with the SUSE studio okay so I've done 20 appliances with SUSE studio and we have a DVD we have one copy for everyone with those 20 appliances we have appliances like the web base like the appliances he talked about before we have a Yonba appliance a Moodle a sugar cerium egroupware we have mysql appliances we have poskets appliances world-class well we have 20 appliances then we have we have a built service appliance also so if you were at the previous talks about the open-build service you have one appliances so you can have your own build service we also have a appliance lime juice development appliance that's an appliance that has the Kiwi models we were seeing before so you can build your own distribution using the Kiwi the Kiwi is what we have behind SUSE studio so if you want to learn how it works you also have one here then we have some games we have the a chess appliance a jibranip appliance and a mojo mojo portal appliance that's a cm a CMS done with mono yeah we have 20 appliances so we like we're giving I'm giving this to you now and it would be great to have some feedback if you like and tell us what you think about it's another thing I asked Andrew to because he built some some EPC appliances which I think is pretty interesting so this gets open SUSE on on the EPC so and this also was done with studios so yeah as one of many thousands of people I've got a EPC netbook and one of the things with the netbook is due to ASUS's wisdom they've got some specific drivers that aren't upstream so none of the distributions package it by default so instead of users having to add separate repositories and mess around trying to find the right applications and software that they need to get their EPC running I decided that you know studio would be an ideal testbed to see if it works basically I just chose both a standard known template no KDE template added the respective repositories to get all the applications on there the ASUS drivers both for ACPI on-screen display I also added the multimedia aspects so people could out of the box play their audio files play their video files I included the you know some of the less than desirable applications like acrobat reader or Adobe Flash I've added moonlight on there so out of the box you've got a netbook that can boot up into Linux and access all websites media that you need it took me all of about 15-20 minutes to get it up and running test drive feature really does help a lot you can get on there fire up test drive you'll see instances where you've forgotten to include an application or a package and your install list something's missing go back add the application rebuild yet it's all there and you can have multiple versions of your build available so if you want to keep tweaking but you know your base builds fine you have that as your naught point one and then you can move on and carry on adding and you can see the growth from there and modified files list again it does help being able to tweak configurations for instance hotkeys and stuff like that so I know it all works very easily thank you okay and to conclude so the studio runs on so the studio.com you can go there see it we currently run an alpha version for invited users so this is still under heavy development it's bleeding edge so we don't have it publicly available yet but if you want to use it let us know give us your email address and we will send you an invitation so you can try it and use it and they are also mailing lists IRC channels that's all available from the SUSE studio home page and if you want to know more or want to try a studio yourself go to the open SUSE booth we have a demo station there with studio and you can build an appliance get it burned on on DVD or written to a USB stick and take it with you to at home yeah so that's it about SUSE studio other questions so can I have can I install like SUSE studio of my company I mean in my own servers at the moment that's not possible yet so at the moment it's only a hosted service so we run it and it's it wouldn't be easy to install so at the moment it's just hosted service yeah okay can I make my virtual machines I mean the distributions I will private so they are not public because when I tried it I think you have to you must make it public no it's it's you're built by default as private so it's not accessible to anyone else than you so and only if you explicitly publish it then it will be visible to other users so you can do your own stuff we are also working on on a feature where you can upload your own RPMs so you can can do proprietary projects with the studio as well and like can you create the distribution from the novel I mean from the SUSE commercial version instead of open SUSE from the novel desktop version yeah and at the moment we only support open source but we are working on on slats and slats support for slats and slats 11 so when this will be released we will enable it in some way it's it's not completely clarified how this will be done in yeah if it will be available to everybody or only partners or whatever but we're working on that and so that's also a target of and the goal of studio to make it possible to build slats based appliances I was wondering about the way you get this new appliance on the medium with CDs it's easy you born ISO what about USB sticks yeah USB sticks is a bit problematic we provide instructions how to do that so you can do it on the command line we provide instructions how to do it but we also have it's still under development as well but we have a tool which which is able to to write disk images to use B sticks so that that's a graphical tool which which scans your system and then just offers all the devices you have and then writes it shows progress so and it even runs on our windows so that's we haven't released it yet but that's a problem we yeah you can see it at the booth okay and other questions no okay great then thank you