 It's Thomas Lange from Cologne or Köln, as we say in German, and it's about the fully active installation of not only Debian, but also Solaris and whatever. So have fun with Thomas. Thank you very much. Thank you very much for the introduction. That doesn't matter. It's not about it's a feature. So overview, I want to give a short introduction why automatic installations are very important. Then one or two words about the planning of a computer infrastructure. Then I will show you or explain you how FI works. A little comparison between DI and FI and some things about the FI project, the present and the future, and I will also give a little show. So what are the values of your computers or what happens if your computers are not running for one hour or for one day? What are you doing? Are you going to eat? Are you reading a book? Or are you in really trouble because you have to do very important work? So how important is a computer infrastructure for you? It is running all the time. There are several values included in the computer, services, applications, but also data. And if your computers are not running, for example, you cannot write builds and you cannot get the money from your customers. So that's very important. So save these values. Most people are doing this very well. They are using tape backups or they are using Snapshot. They have a high availability file server. That's very good. But is data backup the only thing you have to do? Have you really saved everything for running computer infrastructure if you only do data backups? So there's one guy, Steve Traugott, who created the word computer infrastructure. He gave a little test. Grab a random machine and the machine where you did not do any backups, you do not need backups because all your important data on a file server. So grab one of those machines and throw it out the tensed floor. We're just doing it or I prefer the DD command. That's better than throwing the machines. And now the task is recover all sysadmin work within 10 minutes. Can you do it with your type of backups or installation or something else? Who thinks that he can does it with one, one, two, so two, yeah, two and a half person think they can recover the whole machine within 10 minutes. Who likes to install these machines by hand? Oh, no, no, who likes to have these machines? Yeah, that's everybody. These are three examples that are all installed with Fi. On the right side, these are small robots, 100 robots, and they are driving through a floor and try to discover the whole floor and they are running Debian on it. And they installed the machines with Fi. So these are some examples where everybody thinks, yes, I cannot do it by hand. I have to create an automatic type of installation. Another example, can you guarantee that all these machines are really, really equal if you install them by hand? They should have the same configuration of all applications and whatever. And this was an example also by Steve Tolgo to works at trading floors, where it's very, very important that the machines are very equal. So really 100% equal. Even there's some bug in the configuration, all machines need to have the same bug. And you can't do this with some sort of manual installation. So something about manual installation, the major thing that drives me to create a fully automatic installation that I'm very lazy and no simple task is found more than twice. So even typing the root password bothers me a little bit. The manual installation lasts many hours. For the basic install, you can do it in maybe 20, 30 minutes. But then you have to tune the whole system. And this will last many hours. And you have to answer all these questions. And if you have several computers and you want to install them in a common way, you have to enter this data or these questions, you have to answer them again and again. Because you can't do parallel installation. Maybe you can do two installations with your two hands, but that's a limit. So I think repeating tasks are very stupid. And if you are doing stupid and boring work, you will make errors. If you have to type the root password for 20 machines, so you have to type it 40 times, you will make an error, surely, pretty surely. And also since the manual installation lasts a long time, nobody will do a very good documentation of everything he configured on the machines. And then the question is, can you rebuild the machine after a week or after a month? Do you really know how the configuration was made two months ago? I'm pretty sure I couldn't do it after two weeks. So you have installations that are unique, and normally unique is a very positive word. But in this common sense, unique is not good because we want to have very equal installations. So the summary is a manual installation does not scale. That's very important. So we have two things that are bad with manual installation. We can reproduce them, and they does not scale. So why not fully automatically? It's very quick. We can guarantee identical installations even after several months. We can do some disaster recovery as seen in the test. We can manage it to recover a machine within 10 minutes. With one command, we can install 100 of machines. That's no problem. And if we have different types of hardware or different types of configurations, that's very easy to handle, and it scales very well. And so we can save very much work. And for the companies, it's very important to have less work, and you can save time. There's some estimation about how much cheaper is it if you have automated configuration installation or IT work. They say manual IT work is twice as much as automatic work in IT. But the important thing is that you should have a plan for your computer infrastructure. You have to plan it. So now what is FI? FI does everything a system admin, and I think most of you are the system admin for your company or for your computers yourself. So everything you have to do before a user and user can lock into the machine. You've got a brand new machine, and everything you have to do before you can give this machine to your users, and they can work with it. It's a server-based tool, and we are using scripts. And so since we are only using scripts, we have open source by design. And currently, we can install Debian GNU Linux, and also we did it for Solaris. It installs and configures the whole operating system, but also all applications. So after a fully automatic installation, the machine is ready to go. You do not have to do anything by hand, because it's completely installed and configured. We also do not use a master or golden image thing and deploy this image, because I think this also does not scale. There's only one exception. One told me in a FI tutorial, he said, oh, I'm doing an image-like installation, and it scales very well. And so I said, no, it will not scale. And he said, yes, it scales, because I'm creating the images with FI. And that's OK for me. If you are creating the image in a fully automatic way, and then deploy this image, that would be OK. We have a class system, and this class system provides very fine modularity, and we are also very flexible. We can expand or replace certain functionality inside FI. But there's one disadvantage. FI can't plan your installation. But if you plan your installation, then FI installs your plan. So a few words about infrastructure thinking. You do not have to look at a single computer. Have a look at your infrastructure, which services are needed. Which application do I need, or which tasks do I have to do in my normal work. There's a very good website called infrastructures.org, and the paper from Traugott and Huddleston calling bootstrapping an infrastructure. You should read it. It's a very nice paper. And if you say, oh, no, I want to recreate or want to start doing computer architectures, infrastructures, then record your actual state, and think about things maybe you want to change now. But bear in mind that your system will not be fixed. You have to be flexible for the future. So also version control, all configuration data should be put in version control. And keep in mind, for example, this is the one data, one source thing. For example, in kickstart, if you have several machines, you have only one kickstart file for one machine or a group of machines. So normally you will have certain or several kickstart files. And if there's one data, for example, the name of the time zone you have, this is only one information, but you have different sources of this information because you must put this information in every single kickstart file. And with file, we can do it in another way. So we have only one source for one data. There are also some questions when you are planning the infrastructures, very high-level questions, but also very detailed questions about what is the IP address of your DNS or NTP or whatever. I do not want to go into details with this file. So how does file work? First there's a sysadmin point of view, and this is the nicest point of view. It looks like this. You can go to a very nice remote site, and the only thing you have to do is just type in a command that boot up the machines, and then you can go to vacations, and that's all. But there's also the technical point of view. As I said before, it's a server-based tool. We have an installed server on the left side, and there are three main parts. The first part is the NFS route. The install client, the machine that gets installed, is running as a diskless client during the installation. And so we need a NFS route for this diskless system for running. Then we have the configuration space, and the configuration space is only a directory tree with certain files. And this configuration space holds all configuration information for all clients you are installing. So even if you have three departments or whatever, you can put all the configuration data for all your departments and all machines in one configuration space. And by default, we are mounting this configuration space during the installation via NFS, but that's also no problem to use a CVS checkout or HTTP request to get a table and then to extract this table on the install client and to use it. And we also need access to a Debian mirror, and the normal protocols are supported. The whole configuration is on the installed server and also all log files from all installations of all machines are also installed on the installed server. So we have a central repository of configuration, but also of the log files, and we can control all install clients from the installed server. But the installation itself really runs on the install client, so it really runs on the hardware where it must run after the rebooting. And what's also very nice for debugging or for looking at the installation, we can lock into the install client during the installation via SSH. So we have also during the installation full remote control over the machine. What do we need? A server with DHCP, NFS, and TFTP. This need not to be a Debian machine, but it's easier, but you can also use a RATED or Solaris machine or whatever system is providing these services. By default, we assume that the install client has a network card. It's very good if there's a boot from on it, but we can also boot from CD or we can also do installation from CD. But the default thing is boot your computer from network card. We do not need floppy disk CD-ROMs, keyboard, graphic cards, and so on. So in cluster environment, you also mostly have this cluster notes sometimes without video card. There's no problem to install these things, also it's fine. The access to the local Debian mirror. And we do not need that much disk space on the installed server. The biggest thing is the Debian mirror. And today, 9 gigabytes, it's no problem. Disk space is cheap. And since the file package or the configuration space and also the NFS route is shared among all machines, this does scale very well. We do not need much more or any more disk space if we install one or a thousand machines. We have constant disk space. If you do image installation, it tends to be that you need more disk space because when you start using image installation, you have only one image, and then with the time you have a testing or production image and then another kind of image. But today, disk space is cheap that's not so important. Yeah? No, the question was, if you boot from a local media, if you still need HTTP support or access DHCP, no, you do not need it. So the sequence of the installation, the first part, and this is the most time-consuming part, plan your installation. That's very important. So by default, install clients boot from its network card via PixiBoot. That's very common today, gets the kernel via TFTP. And then it boots the Linux kernel and the Linux kernel mounts the NFS route. And then the machine is running like a diskless client. So we have a whole system running on the install client without using the local disk. And this is also kind of a disaster recovery system. If the disk fails to boot, for example, the boot loader was destroyed, but there are still some data on the machine. I can boot this machine with a normal setup and try to recover some data or do a backup of a partition. So it's just, you get this feature for nothing. It's like a life, no, not like a life file system, but you have the disaster recovery. Then the main script is started, and this main script is a shell script, and this controls the whole sequence of the installation. Then we are doing hardware detection, therefore we use discover true. But you can also define kernel modules that will be loaded. So if discover true does not detect some certain hardware and you have planned your installation, you know your hardware, then you can say, for this kind of machines or for machines with a certain hostname, please load a certain list of kernel modules. Then we define classes and variables. I will explain this later. And then we have written a partitioning tool in Perl that uses SFDisk. And yes, you will see there's a very flexible configuration file for partitioning. So after we have partitioned the hard disk, we mount the file systems and then we are doing the software installation. At the end, we save all the log files to the local disk. But also to the installed server and reboot the new machine. Something about the class system, a host belongs to several classes. And the list of classes is only our ordered list. We have a priority, and in this example, its default has the lowest priority. And the classes are mostly written with upper cases except for the hostname. And so the hostname in this example, it's called demohost, has nearly the highest priority. We also defined a class last for some special things. It's very easy to define classes. We have a directory called phi class. And in this directory, you can write whatever script, shell script, pull script, or even execute some executables. And whatever these tools write to standard out are automatically defined as a class. So you are very flexible how to define your classes. And all the other parts that come after the class definition are using these classes automatically. And there's a special command F copy, which also uses the classes for copying templates, different kinds of templates. So, and what's very nice with the system, we have a two level kind of installation. If you have a senior admin that plans the infrastructure, creates the classes, writes the configuration and the scripts for these classes, and then you can have a union system admin that only needs to pull out the new machines, put on the cables, and assigns the classes to the machine, and then push on the power. That's all. So that's very easy because then the PC installs itself. This is a more detailed look at the configuration space. And this is example we have three scripts that start with bigots that are used for defining classes. And the file base and German dot bar files are scripts for defining variables. In this config, we have several templates for the disk partitioning. And you see the file names are the names of classes. So each install client knows by itself to which class it belongs. And then file selects the partitioning configuration with the highest priority. So if you have a machine called foobar04 that also belongs to the class pi base, for the disk partitioning, the file foobar04 will be selected because it has a higher priority. For the software package installation, there's a sub directory package config. And there we choose several files for creating the list of packages that should be installed. So this is an example how we can define classes. We are using very simple Unix or Linux commands and everything that they print to standard out will automatically defined as a class. If you like to put all your assignment of classes to the host into a database, no problem, write a simple shell script that extracts these data, these class information that receives it from the database and just print the class names to standard out and then the classes are defined for the clients. For defining variables, we use very simple shell syntax, that's all. So no magic in it. Now the disk partitioning, that's a very nice configuration script. It's written in Perl, but it uses SF disk. So there's a limitation that we do not support all architectures. As you can see, first we have to define if we want to create a primary or logical partition, then we define the mount point, the size. For example, the swap partition should be from 50 to 500 megabytes. We can also give some mount option and also options for the creating of the file system. For example, the min free or the number of inodes can be defined. And now the Perl script detects the available hard disks. For example, this configuration, it says this config disk one. So it's a configuration for the first hard disk. Whatever, even if it's a serial ARTA, SCSI, or an IDE disk. This tool will detect the first hard disk and then it will partition this disk. And it tries to maximize all the values. So there's a scratch partition where we said the size should be zero and up to whatever you can have. So yeah, it will take the rest if all the other partitions have their maximum size reached. Currently, we can create X2, X3, DOS, XFS, and RyzaFS partitions. But it should be no problem to create other kind of file systems. RAID and LVM is currently not supported and that's the reason why we want to rewrite the script from scratch. But there are some guys that's doing also RAID and LVM configuration with PHY and therefore they write some scripts. You are not that flexible then. And even with the itanium or Spark and yeah, all the architectures that do not have the SF command, you can use some simple shell scripts and use part for petitioning. Then you are not flexible with this format but hopefully we will have this new partitioning tool. So now the file systems are created and mounted. We have to install the software. And a very simple ASCII file format. You can define which packages should be installed. We are using apt-get or aptitude, the command line interface for installing it. And here you can do some logical and because the configuration file is called bio-wolf. And there's a line packages install bio-wolf underscore master. So the packages gmeter d and a patch g will only be installed if the machine belongs to both classes. So it must belong to bio-wolf and bio-wolf master. But all the other packages that are listed there are installed for all machines that belong to the class bio-wolf. We support also the d-package get selection format. So if you have a machine already installed and want to install this list of packages, no problem, just use the output of this command. After the software is installed, we are calling some scripts. And there we are also flexible because we support very different script languages. And for each class, you can call one or more scripts. I will show you some things later. Can you please stop talking things? Now the example for the F copy command. Often, you have several templates for a configuration file. For example, you will never configure an HTTP configuration. You can't configure a configuration file with depth config. You cannot answer that many questions. Or for example, the XF86 config file. For a very different situation, most people will prepare a template for it. And now there's a directory tree where XF86 config 4 is not a file, but it's a directory. You will just put the configurations with the name of the class. And then with a single command, with the F copy, etc, x11, x86 config 4, command each client selects by the list of classes and which class has the highest priority, selects one of these templates to install this template into the right location. So for customization scripts, you can use some shell scripts or maybe it's more important, who knows CF Engine? That's who is using CF Engine for configuration. Four, five, six, that's not that many. Have a look at it, it's very nice. I think it has its power in certain commands. For example, the append if no such line command. It's very nice, it's a long command, but you do not have to read any manuals because you know it will append this line if it's not already there, or the hash command lines containing. So if you have a config file that you only want to edit, so not create from scratch, CF Engine is very good in this for simple editing of files. So now some things about installation times. The main part that takes the most time during the installation is writing the software packages to disk. All other things are not that much important. And above there's a table where we did the cluster installation with a fast ethernet, and we really started the installation of 20 nodes concurrently. And this scales very well. Somebody else told me that he did an installation with 60 machines, and I'm not sure if it was with the gigabit uplink to the server. But it scales very well. Often people complain, you're using NFS amounts that will not scale. But since we only use read only access, this really scales very well. So who is using Fi? I've created a questionnaire, and I have over 100 questionnaire that will return to me, and there are several very big cluster. And for example, the high performance computing center North, they have two clusters. And what's very nice, I'm not sure if one or both of these clusters are currently listed in the top 500. Yeah? Okay, currently only one cluster is listed in the top 500 list. That's the list of the fastest machine all over the world. So what's very important for me, please fill out the questionnaire. So if you're using Fi and you have some experiences, good or bad, or even if you only install one or two machines, please fill out the questionnaire. It's included in the package. And then maybe you will get onto this list if I give the next talk. So now a short comparison between DI and Fi. In my opinion, one of the main reasons or one of the main objectives for DI, it must be very small. Because the DI has to fit into the RAM. During an installation with the AI, everything is run from RAM. And we are using the NFS route. So since it must be very small, the only thing you can create this is that's very modular, so there are several modules. And if you do not need a certain module, you do not have to load it into the RAM. It's mainly a new driven manual installation of one host. This is the main purpose of the Debian installer. And first, it asks for language. And after that, a whole of, or I think currently with ten questions, you can do the installation. But there are questions that you have to answer in a certain language. The Debian installer tries to cover the most common installation. So we tried to make it for most end users very easy to use the Debian installer. But if you have very special environments, if you want to tune your system, you cannot do it with the DI installer, you have to do it manually. And it only installs the base system. After the Debian installer has finished and the base config is all other application and configuration parts have to done by hand. And currently, it only uses discover one for hardware detection. Everyone says, this is right or am I wrong with it? So now the difference fires more the infrastructure thinking way of installing. So we do not look at a single host, we look at the whole infrastructure. It's a zero keystroke installation. And you first have to plan it and then only put on the power and so there are no questions. So also in FI, you cannot set a language or something else because there are no questions. So why should we set a language in which a question should be displayed? Since disk space is cheap, the NFS route can contain anything. So in DI, you are using the busybox versions of certain commands. So you do not have the normal commands with all the options and features. And during a FI installation, we are using the normal commands. We can install whatever you want into the NFS route. Moon buggy will be added maybe in the next version or audio support or video support, whatever. Since we are not limited in the disk space, we are using the classes for grouping and we have a central configuration space for all the things. And we install and configure not the base system, but the whole thing and all applications. And we are using Discover 2 for hardware detection. So before I start with telling some things about recent changes, I need a volunteer, one volunteer doing an installation. Okay, Enrico. The first thing, the recent changes we did is we created the FI CD. So this is a FI CD and now you should install the machine with the FI CD. This one, please. So here's the, okay, yeah, okay. So what is a FI CD? As I showed before, yes, just reboot and try everything. I will not explain that much. Normally, you have to set up the installed server and have the three parts. And with the FI CD, we put all the things on the left side. The NFS route, a bootable kernel, the configuration space. And I think just put on the power. Yeah, I can do it. Yeah, okay. On the FI CD, we have every three parts that are on the left side. And if you set up an install server and do some installation, there are only two commands to create this FI CD. And then the same installation that is normally run over the network is then run from the FI CD. So this is a simple grab menu where Enrico can choose. If he wants to try the automatic installation, or the installation with GNOME, or a FI installation without network, or the rescue system. And I think he chooses the installation with GNOME. Yeah, then the zero keystroke installation is if you boot from network, but I can also create a FI CD without keystroke. But I think it's very dangerous and a lot of people will blame me if they put in this CD. So, it's up to you. I choose? You have, I do not say anything. Yeah, you're a little bit in the camera, Enrico. We cannot see the secret password. Okay, now the kernel is booted with an initial RAM disk. This is for the CD detection. Normally, we are not using a kernel with init rd. The password is that people will not blame me that they install a machine without. Why couldn't I choose yes or no? So this is a normal screen you also see when you're doing installation over network. Yeah, you can't read it that much. The hardware detection goes on now there. You can see the list of classes that are defined. And then there's a simple sleep command. We echo beep three times, and then we sleep for five seconds. So this is the last chance to quit. And if you do not quit, the installation will start. Now the make x2 file system command is called for several partitions and maybe a little bit. The config file for the partitioning was the FI base because the machines belongs to FI base. And yeah, I think we can leave it alone, or you have to watch it. That's very important. And tell me if there are some errors. Okay, so the FI CD. We also create a depth conf and preceding support in, I'm not sure, in the 2.6 or 2.7 version of FI. And currently a nice thing happens because until now, I was the only developer. I also get some patches for certain people. But we had a developer meeting in April with about 10 people. And there are about five to seven people that are very interested in coding much more than before. And so the FI project moves from one developer to a small team. And during the developer meeting, they also convinced me to include a new feature. It's called soft updates. So you do not need to reinstall the whole machine. If you make changes in your configuration space, you can say FI soft update during when the machine is in the normal running state. So you do not have to reboot it or whatever. You can just update your configuration. And we also created a Linux FI Devil mailing list. The FI mailing list was already there. One of the team members also managed to do Ubuntu installation. So some words, here you say just see just up get or aptitude that's installing the packages. And everything's okay with installation. Perfect. No error messages. If installed, it's still needed. Because I prefer to C shell. So that's my default. So what are the future plans? We call them or the future plans for FI3. Currently, I finished, I think today or tomorrow to replace our CVS repository with Subversion. We will create a FI wiki where we can collect a lot of information and maybe most parts of the FI web page will go into the wiki. We want to split the FI package in a doc server client or a tilt packages. There are plans for replacing currently. We have a special install kernel and we want to use the default Debian kernel for booting up during the installation. The root file system is used or is mounted read only but we need some files with writable access and currently we are using Zimlinks to a RAM disk and that's a little bit work. And I heard using device mapper and a RAM disk it would be much easier to do it. I'm not sure if it really works because somebody told me device mapper only works with block devices and yeah, we will look into it. A GUI is needed, surely everyone wants a GUI and we have a monitor daemons so you can monitor the action of all the machines if you're doing installations in parallel and therefore we want to have some GUI. Yes, Henning? Okay, we also want to have an administration GUI and okay, he's working on it. You can see it tomorrow? The first version, half an hour, okay. The new partitioning tool, I already said it. We want to rewrite it and I think we will use a parted server and then we need to include LVM and RAID support. There are two or three people start working on RPM distro support so if somebody else want to install some other things subversion and arc support for the configuration space we have some testing or yeah, developer code for subversion support and the F copy command should also be enhanced. So the summary, there's a web page where you can find all information. We have two mailing lists. If you start with Fi, there's also the IRG Fi channel on OFTC, free note, free note. I'm also most time of fit on it and yeah, it's very good to get quick help. You can see examples of the log file. The Fi CD image, this one is for E386. You can have it. I have I think 10 or so CD. If somebody wants to have it, no problem or can burn you one. There's also the Linux TARC DVD. I think they have some more at the reception and on this DVD you have also the Fi system that Enrico uses here. What's very important for me are the Fi users that helps me to improve the system. For example, I only have access to a 386 machine but we have success stories for six architectures where people are using Fi for installing it and the Fi project is more than five years old. So yeah, it's very important for a project not to work on it for one or two years or a half a year. A project can only be very good if it's less for a long time. Yeah, and the feedback packages are patches I'm important from the users and there's also some commercial support, FiCluster.de, that's me. So I'm giving Fi tutorials but there are also some companies that are using this for installing the machines for their users. So that's all. I can see that the package installation of Enrico's installation just finished and now the configuration scripts are running and I think in a couple of seconds we are ready and Enrico can use his new system. With this example, there's a second keystroke because we want to see the results. You can see the installation took only 487 seconds. That's about eight minutes. So we have still two minutes to be in the 10 minutes limit and yeah, error's found in the log file, just ignore it. And that's the easiest way. Yeah, type return and then you have to remove the CD otherwise the machine will boot from CD again and again and again. I also have some flyers with some facts on it there. It's a door. So I now questions. Yeah. What's with the microphone? Welcome. Hurry up. Time about, it's okay. Oh, could you explain the difference between system image and Fi? Pardon. System image and Fi. System image, that's a tool for automatic installation that we used to use for clustering. Yeah, it's like an image-based or async-based installation method and this will not scale. Next thing is what you do with the tweaking of the system because the problem is if you're doing update later and you are violating the policies, you will have a hard time updating the system later. So how do you solve that? Why do I have a hard time when I... Updated later. Or we are also using or tweaking all the configuration files during installation and since we are basically violating a lot of the policies, when you're doing an upgrade later. Then you have to use d-package-dvert and if you use d-package-dvert, then the normal package updates will not remove your changes from the config files or from whatever. Does d-virt work on config files? What? Does d-virt work on config files? I don't know. Does anybody know? I don't think so. So it should work, but over there or over there. So you can log in with demo. The user's installation was demo and the password is fi. Regarding the config files, I'd rather propose to you CF Engine where you can make sure that you only edit the config file if it's not already added. And it does not really violate policy because it's not a custom d-vian distribution but an admin tool. So it's okay and the admin should plan the installation and do only upgrades. It's a problem when you upgrade from Woody to Sarge or whatever. And the other thing I'd like to add is that the soft update feature is really nice because you can update systems and you can also use it in the end of a DI install to then execute a Fi soft update. This is what I've done here. So if you net boot the machine in the DOM or in the Smirky, then it first installs with DI, also fully automatic except for the question, do you really want to partition the hard disk? And then a Fi soft update is really nice because you can use the hard disk and then a Fi soft update is run to configure more classes based on the machine and install software based on that. And this is really a neat feature. I start here because I don't want to run. May Fi be also used for diskless clients to... Yeah, diskless clients is also... I also did it once and yeah, no problem. And how do you manage to... I mean, what I don't understand is if you have different diskless clients with different kernel images, you have basically more kernel images on the Fi server. Yeah, yeah. Okay. One point about the images is that you can also use the Fi. We've used it actually to install Red Hat because some people for some reason didn't want Debian. And, but okay, my question actually is, I'm interested in how does the Fi soft update work? And then the Fi soft update runs most part of the installation. It skips the partitioning of the disks, but then the software will be installed. So the normal software installation part will be called and for most packages, the message will be is already the newest version, but you can also remove packages in this part. And then the most important part is calling the customization scripts in a class-based manner. That's all. So this requires a reboot? No, no reboot. Only if you installed a new kernel. Okay, but so how does this work without doing a reboot? You have a normal running system and then you just set up the Fi infrastructure is just mounting the config space and then call Fi soft update. So no reboot is needed for soft updates. So it's handled by a cron or a cron job? You can handle it by cron or you can just do it manually. Okay. Thank you. About the users that using Fi, I saw some people that were afraid of Fi and thought that can be only used for clusters. I want to say I use it at home for my four machines and I'm so excited about it that I started to develop it further. So don't be afraid, use it for a small number of machines also it's useful. It's useful even for only one machine. If this one machine is very important for you and you want to have downtime with less than 10 minutes, use Fi for it. Because if you have a hardware failure just replace the hard disk or just get a new machine, restart the installation and then you're ready to go after a few minutes. So even for one machine this would be okay. Okay. We are much out of time now. I think we saw that only very experienced Debian developers such as Enrico are able to use Fi. Thank you. The normal users are left out as always. I don't know. Okay, thank you. Thank you.