openSUSE:Appliances events workshop Nuremberg 2010 projects AutoYaST import
Team: Uwe Gansert, David Majda
This project is about feature #309295 (Import AutoYaST scripts and convert it to equivalent Kiwi scripts to build)
The goal is to import an AutoYaST XML file into the Studio UI and cover as many features as possible with Studio/Kiwi, so customers have an easy migration to an autoinstallation with AutoYaST and an image creation with Studio. From the UI point of view, there is not much of a change. It's just adding an "upload AutoYaST XML file" button to the UI and maybe one or two checkboxes.
Of course it's not possible to convert everything that AutoYaST supports into Studio/Kiwi but after some evaluation we found there are some parts that make sense like:
- Software that is getting installed
- Repositories that are used
- Users that are created
- Overlay Files
On the other side, there are a few things that are hard or impossible to convert with a reasonable effort of work like:
- AutoYaST ask-dialogs
- Partitioning information
- Bootloader Configuration
- Most of the script-hooks in AutoYaST
- Many YaST modules like samba, ntp, nfs,....
For the modules above we have a fallback to support it in another way than with Studio. We will implement a checkbox in Studio that will enable AutoYaST during the first boot of the appliance and will take the uploaded AutoYaST XML file to do the 2nd stage AutoYaST configuration. With that trick we pull AutoYaST (and so parts of YaST2) into the image but we can support every 2nd stage feature of AutoYaST like scripts or ask-dialogs. Unfortunately the partitioning and the bootloader configuration is 1st stage stuff and so we can not cover it with this trick.
What we have so far and native in Studio/Kiwi:
- Packages that are installed
- Patterns that are installed
- Packages that are on taboo
- additional Repositories to use
- Users to create
- Groups to create
- overlay files
So if we only have the sections above in the xml file, we don't have to install AutoYaST anymore after the import of the XML file into Studio. All is converted into Studio configuration.
At the end of the workshop we implemented a checkbox for the activation of AutoYaST during the 1st boot of the appliance, so even the settings that are not supported by Studio can be configured by AutoYaST then. We had a long discussion with Garrett Lesage about how to do the final integration into Studio and after some "emotional" discussion we came to a conclusion.
So, we achieved all of the stuff we planned for this week. Of course all code we did is just a prototype and needs cleanup and test cases and better error handling.