Sunday, July 17, 2011

More then basic Centos 6 install

If anyone is still installing Centos 6 boxes in a manual fashion using the dvd or the netinstall isos this article will help with some of the menus of what to select.

1.While booting from your dvd/usb stick the first screen is the following. Just pick the "Install or upgrade an existing system". I do not know why they say upgrade as upgrades from 5 to 6 is not officially supported as far as I know.

Kernel loading screen:

2. Skip the media test dialog screen by choosing "Skip":

3. In my case the media is a dvd iso thus the following screen:

4. Initial menu after everything is loaded, just hit "Next" (doooh):

5. Select the language used for the install process, I normally pick the default here:

6. The keyboard layout, again the default for me:

7. I'm using an internal local disk so "Basic Storage Devices":

8. Confirm the hard drive initialization :

9. In the following screen two very important things can be setup the hostname of the server and the why the network will behave after install. I really hate it that eth0 is not used as default after install both for servers and desktops, the next following screens will detail how to fix that.

Here select "Connect automatically" and "Available to all users"

10. Select your time zone either by using the drop down list or using the map:

11. Type in your root passwords (make it as secure as possible or you will see an warning) :

12. Now the fun part about setting up the partitions:

13. From the full disk space first we will create a /boot partition as grub can only boot your os from standard partitions.

14. Let's make it primary (by default the first four are, but I like to tick that box anyway), ext4 for a filesystem and a fixed size of 250 MB, next two slides:

15. Now if this is going to be a server the real important data will reside on some data storage box (isci, nfs comes to mind here), or even on a spare disk/raid and will get attached later on. The next slide will partition the reaming of the internal OS disk using LVM.

16. Allocate the the maximum amount of availible space to the physical volume.

17. Now normally I create a volume group for the OS and a volume group for the data, this is the first one:

18. As a naming convention is use vg_os or something similar and for the partitions LogVolRoot/Tmp/Swap/Home/Var and so on:

19. The partition sizes here would reflect a normal medium size web server and are just representative and this depends so much on what the server will "serve".

20. This warning is because my disk was really blank:

21. If nothing else comes to mind you can commit the changes made:

22. One interesting setting in the menu below is the grub password you can setup:

23. Here it comes, the packages that are going to be installed on your system determining your why of using the server:

24. You can customize the package selection:

25. In the "Web Services" group select "PHP Support" and "Web Server":

26. From the "Databases" group pick the mysql client and server:

27. Packages dependencies are checked in the picture below:

28. The install process:

29. Reboot the server into your newly installed OS:

30. Choosing the "Minimal" installation will save us the first boot menu:

31. Before doing anything else update your system:

This is the first draft of this article, I will update it with some more comments on the installation process.

Well I think that most modern deployments of any OS Win/Linux will have at least one data partition where you store the production app/data. This been said you can safely do a clean re-install and remount the data partition, ofc this does not apply to more complicated apps like Oracle servers and other funky enterprise applications, but applies to web and infrastructure servers.

I normally do not like to use the default LVM layout of Anaconda and then customize it because it implies more typing from my side :).

I think that the new groups setup in Anaconda for RHEL/Centos 6 are very good. I like the minimal install because it saves me the pick manually each package in kickstart builds.

The upshot is that by far the best way to do install inside of VirtualBox is (1) make sure that you allot at least 1 gigabyte of memory to the image --- if you don't, then CentOS decides to use the text installer and creates a nasty mess in the networking and (2) choose the "desktop" profile so that you get NetworkManager --- the networking configuration seems to be heavily dependent on that stupid package.

I used to ran Fedora 12 (which I thought that RH/CentOS 6.0 was supposed to be based on), but I don't remember F12's NetworkManager dependencies being so strong as they are in CentOS 6.0 --- I know that I always "chkconfig NetworkManager off && chkconfig network on" on any desktop machine that runs that shoddy package. (Yes, it's useful enough for portable computing, but I very rarely use anything portable.)