 So, the tool that I would like to introduce is called Kickstart. Now for a lab we have like 600 machines and we will need to install OS on all the machines. Now as Sir mentioned we had to reinstall OS on around 70 or around 60 machines on one night. So, it is because of this tool that we were able to manage to do this because one by one going into 60 machines and installing overnight giving the user inputs all the time going around with the CDs and DVDs is not really a practical thing. It is a very boring task as well. And so, what this tool does is, yeah, so, when you boot into the CD or into the net boot installation of Linux you can actually give one additional parameter called Kickstart KSC is equal to a Kickstart file. Now there is a tool called System Config Kickstart that is a package that you can install in Ubuntu and if you start that tool then you will get this window. So, basically you can give answers to the different questions that will be asked during the Ubuntu installation. And the first thing is keyboard mouse layout and the language support, the target architecture, the installation method. And here you can actually specify the HTTP location of the installation source and that way you can avoid running around with CD. And then boot loader options, partition information, here you can create the partition table structure that you want to create for all the systems, the network configuration. So, this authentication is not actually implemented in this particular tool, but so, we can create a root password and root account, firewall configurations and finally, there is a post installation script phase also. And the, so, one Kickstart file that is created out of this would look like this. So, at the end in the post stage you can actually specify all the post installation, package installations and configurations that you would have manually done. And there is more things to show that because of the time limitations we are just limiting here. We would give you references to the detailed manual through which you can set up a deployment server using the Kickstart tool. There are a few more components which is required, a TFTP server, a DHCP server and an Apache server with which you can actually host the, host this Kickstart file and the installation files. And only thing that you have to do is, once you set up the deployment server just start the other systems and boot into the network. It will automatically start installation and finish the rest of it automatically. The first step is to set up this Kickstart, what do you call it, the deployment server. And these instructions were for creating the deployment server, so that is a one-time task. And after you create the deployment server and it is running, for all the other machines in your lab you have to first boot them, do a network boot of the DHCP deployment server and then they can, they will load the OS from there. So, that is the basic principle of this Kickstart system. So, all the manual effort is, for all these options is one time and later on you go to each machine and start the boot process and after that everything just runs through. You do not have to do anything more, you can go away and let it run. Once, once this installation is done, still we have the task of setting up all these softwares, the Eclipse, PGAdmin3, Postgres SQL. You had to install all these in all the machines in which these installations were done. So, which itself was a difficult task, I mean, you had to, if you did not have this tool we would have to either go manually on all the machines and run all the installation tasks for each of the softwares or we would have to write scripts to do each of the, to do the installations. But with the help of this Puppet Configuration Management tool which is developed by Puppet Labs, we could do all of these in about 10 minutes like, so Puppet is a tool which is designed by the Puppet Configuration Puppet Labs and what it basically involves is setting up a Puppet server. This server is called as the Puppet Master and all the other machines in the lab are Puppet Clients. They are basically connected to the Puppet Master. In the Puppet Master, we have a configuration file where we edit all, where we maintain a track of all the software installations that need to be done on all these machines. And then the Puppet Client, it asks the Puppet Master, it requests the Puppet Master to check whether it needs to do any installation or any upgradation so that softwares which are not present in it can be installed. So what it does is the default time is 30 minutes. So every day for all these routine tasks that you need to automate, you just need to specify the Puppet, in the Puppet Master, in the Puppet.con file and etc slash default slash Puppet file. Just how to specify the demo of which we will just show. So and hello, so and actually if you see this diagram so you can able to understand clearly. So this host one, host two, host three is like our lab machines. So we have some 200 plus machines over the lab and that Puppet server, so that is called Puppet Master. So if the host like want to install some packages then it will contact the Puppet server and it will install every packages. So I will show some demo actually. There are some installation procedures given here. So actually we thought to install and show all the demo but there is no time. So I am just going that just last step. So here is the requirement of this DBMS workshop. So we need to install PostgreSQL and PgAdmin and some editors like BIM and all. And also we need to create users DBP workshop and copying some software folders to their desktop. So all those things we just, so in the Puppet Master there is one file site.ppp. So this is the main configuration file of the master server. So here we will add OpenJDK and PgAdmin and PostgreSQL and also creating users and copying some softwares to their home directories like that. So we are just, so in the client you can check. So in the client you have to run this Puppet ifen ifen test. No, 9.1. No, no, 9.1 but this is 10.04, this Puppet Master and client, so it will install 8.4. So you have to do Puppet ifen test. So this is the command in the client side, you have to run this command. Then it will contact master server and ensures that all the packages are present. If we do not do this then by default it will keep asking for after every 30 minutes whether it needs to change something, whether it needs to get any software, whether the configuration that it has now is different from what it needs to be there on the machine or something. So if we want it instantly then we need to run this otherwise by default it is configured so that after 30 minutes it will keep asking the Puppet server. Yeah, it automatically ask the server. There is one error, there is something, so now it will run. So now it is installing, so you can see packages will be sensed when installed. So there was no WIM on the Puppet client machine. So after we ran this it contacted the Puppet master, it checked and it found out that it needed to install a package called as WIM and it installed it using the apt-get method. Similarly, we can have it for custom installations as well. This was just for the apt-get installation packages. If we need to do it for installing through source files also then we will have to write a exec execute method if it is there. We need to write a execute block in that we need to specify all the parameters that is the working directory, the name of the source file, the way to get the source file and how to go about the installation and it will do all those things. It is, yeah we will upload this on the machine, yeah and we at the end we have some tutorials, good tutorials to begin with if you want to set this up. So yeah, we separately have to set up that configuration file in the Puppet master. Only thing is for every version of the operating, for every version that the change occurs we just have to configure the master file in the same way and for apt-get we just have to change the repositories from where it fetches, that is it. Right now it's, that DBP workshop user is created and package OpenJDK is created. I mean installed and PostgreSQL is installed by this output. And also no, I mean no need to run this command in client-side so it I mean it will automatically check every 30 minutes to server and make ensure every package is installed. Okay, thanks. Why don't you just make a bootable USB drive, install everything there and just distribute those USB drives? Yes, I just think we have a bootable USB drive which we distribute. So this is a better thing than that because that is a one-time solution. So supposing tomorrow another workshop comes up with a new requirement, you again have to go through all of this. So now if you want a bootable USB which contains all of this, the problem is that today you have an OS version, tomorrow you have another. I think what is more important is that you see the instructions on how to do this. And then you can do it in your lab. And it's important to see that this is actually relatively straightforward. So there is some learning curve initially. You have to understand the format of this command and so forth. But once you have taken that step, managing a very large lab is pretty easy. Okay, maybe. Thank you. Any other questions? Sir, during that Kickstart deployment server, there is something partition process. And that deals with some client mission, I think, I suppose. I mean, some information need to include there about the client missions, the partition information something. Regarding the? Kickstart deployment server, we mentioned, there is some partition information. Yes. And you need to, I think, go for some client missions, information is there. So can you give some details about that? What we need to give in the partition information, right? So for a next installation, at the minimum we need a slash partition. So at least one partition is required. And then for proper working, it is suggested we need a swap partition as well as a slash boot partition which contains the kernels. So what we do in our labs is we have a slash boot partition, a swap partition and a slash partition. Apart from that, we have fixed size for these three partitions. And for the, there is a fourth partition which accommodates the remaining space. So using that tool, we can actually specify that, take the remaining space and allocate it to the extra partition. And that way, you can use the same configuration for different machines having different partition, different hard disk sizes. Okay, okay. Any other questions? Hello. Sir, is it compulsion to have the PXC boot machine? We have to enable PXC boot on each and every client. So for clients, we need to use the boot from LAN. So PXC boot should be there. Okay. But all of the new machines have that facility. You can boot from LAN for most of the new machines. So whether we have to provide some parameter for PXC boot. No, no, nothing. Practically, it will take that puppet master IP. Puppet is a different thing. Yeah, definitely. But it is running on some IP from where it's going to take all the parameters. So actually, for OS installation, for a new machine, once you have set up the deployment server, you just have to press after for the new machine that you want to install. Yeah. Once it starts. So when you press after, it will boot into the network. And then the deployment server will have a TFTP server and a DHCP server which will assign the IP and provide the boot informations. And after the installation is done, then only the puppet comes into the picture. So after the installation is done, we should run the puppet client on all the machines. And in the kickstart file, we can specify that the puppet client should be installed and configured. So after that, it's pretty straightforward. There were a few tips in the presentation. I couldn't present the presentation. There are a few more things that you should ideally do. You should create an RSA key pair and push the public key onto the new machines. So that you can access into all the machines from that deployment server recently. So these are certain things that will actually help you run a large lab. If you want to shut down all the machines, then you can run a command from the deployment server. And you don't have to give password for each and every machine. And certain such tips were there. Okay, one more question. Where we have to provide the repository details on the master unit only or we have to give the details on clients also? So that package repository you were saying, right? Yeah, I'm asking. So that is on client only. So master just give the instruction to client. So I mean, so these are the softwares you need to install. Then client, it will get installed through by its own repository. Like it will go to that sources.list file and it searches and it will install. So it's on Puppet Client only. So Ranjit just mentioned the repository configuration for Puppet. And for kickstart also, for installation you have to specify from where the files has to be taken. And either you can copy an Ubuntu CD or DVD into the deployment server and host it via HTTP via the Apache server. And then in the kickstart configurator, you can specify that location as the installation source. Or if you have a local APT mirror, then you can specify that as the source. Can you provide some details that how to create the APT mirror locally? It's actually a pretty straightforward thing. You have to install, you have to do app to get installed app APT mirror. And there's an app, there's an app mirror.conf file that you have to configure. There are two, these are the two steps. It's pretty straightforward. The only thing is, in order to copy a repository from the main server, it's like 40, 50 GB for the entire repository. So you should have the bandwidth and time to complete the download. Or you should copy the repository from somewhere and then keep on updating it. Thank you.