Migrating a Web Development Company from Windows to Linux
From WBITT's Cooker!
(By Amit Kumar Sinsinwar) [ amit at hindicbts dot com ]
Contents |
Introduction
One day, one of my friends introduced me to his friend in a web development company. This company was interested in saving costs and increasing efficiency. They were hoping to convert their windows based setup to Linux. That was a chance to prove (yet again) that Linux is better than windows. After meeting with the company management/administration, I had a go ahead.
First, here is the existing network infrastructure of this company...
Existing Network
Company Profile
It is web development company. Company develops sites in PHP. Most PC's in this company are not high configuration.
Most PC's Configuration
p4 (1.8 to 3.0 GHZ), 512 / 1 GB RAM, Intel 845 /865 Motherboards and 160 / 250 GB HDD.
The main requirement of company is migrate all systems from windows to linux along with Web server (Like local webhosting server, Linux as Domain Controller for some windows systems because all software can not run on linux.) and data server.
Day 1 Work
Before do anything on this work I created a list of software that was running on the company system for designing and programming.
Programming Software * Macromedia Deamweaver 8 Web Browsers * Firefox latest version * Internet Explorer * Google Crome * Opera Messengers * Google Talk * MSN Messenger * Skype File Compressing * Winzip * Winrar Readers * Adobe Acrobat Reader Office * Microsoft Office 2003/2007 Music & Video Players * VLC * Winamp * Classic Media Player Designing * Adobe Photoshop CS2/CS3 * Adobe Flex * Adobe Flash e-mail clients * Outlook Express * Microsoft Office outlook FTP Clients * Cute FTP Drawing * Paint * Dia
Now main work is to create a list of Linux software so that I can replace windows softwares. I create a list -
Software / Package Type | Windows Software | Open Source Package |
---|---|---|
Progaramming / Web Layout Designing |
|
|
Web Browser |
|
|
Messenger |
|
|
File Compressor |
|
|
PDF Viewer |
|
|
PDF Creator |
|
|
Office |
|
|
Drawing |
|
|
Audio and Vidio |
|
|
Graphics Editing |
|
|
Animation |
|
|
Mail Client |
|
|
Now I am relax after creating a list of software so that I can start work.
Day 2 work
Namaskar, Today Will Install Fedora 11. I have fedora 11 32 bit Media. I do not want to stop work tomorrow at company so I will install 1 or 2 PC's for Training because I want to introduce fedora in front of employees sothat he can work on this operating system next days. I installed 2 systems with all needed software / packages. it is time to sleep. good night.....
Day 3 Work
After long discussion, I designed a network for company.
I said to one programmer to work on linux box sothat I can know what problems will be in-front of me. After some time programmer complained me some issues-
- I can not work on quanta because some features are not as well as Dreamweaver, I can not give performance with this.
ok, no problem, now I am thinking a replacement of quanta / bluefish (you can not see preview of your code at working but it is available in quanta.) because programmer is working on Dreamweaver from long time, he wants Dreamweaver on linux box sothat he can work. I searched a software named CrossOver for linux. I download it from official website. [1] Now I installed on linux box and got so many options for installing so many types of software of windows on linux (specially Dreamweaver). There is only option for Dreamweaver MX. Now I am relax that programmer can work on Dreamweaver. I am installing CentOS 5.4 for server. I am instructing programmers sothat they can work on linux with efficiency.
Day 4 Work
Last day I installed CentOS 5.4 on Dell Machine.
Dell Machine Configuration Dell OptiPlex 360 * Processor = Core2Duo 2.93 (Hardware Virtualization) * RAM = 4GB * HDD = 2 TB (1x2)
I will install virtual machines on this server. So I decided to install Xen kernel on this machine for Xen Virtual Machines. Open Terminal and installed Xen, Xen-kernel and Virtual Machine Manager/viewer.
[root@localhost yum.repos.d]# yum install xen kernel-xen virt* Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * addons: mirrors.hns.net.in * base: mirrors.hns.net.in * extras: mirrors.hns.net.in * updates: mirrors.hns.net.in addons | 951 B 00:00 addons/primary | 202 B 00:00 base | 2.1 kB 00:00 base/primary_db | 1.6 MB 00:20 extras | 2.1 kB 00:00 extras/primary_db | 185 kB 00:01 ftp://192.168.1.50/pub/CentOS/repodata/repomd.xml: [Errno 4] IOError: [Errno ftp error] timed out Trying other mirror. updates | 1.9 kB 00:00 updates/primary_db | 332 kB 00:00 Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package kernel-xen.i686 0:2.6.18-194.8.1.el5 set to be installed ---> Package virt-manager.i386 0:0.6.1-12.el5 set to be updated --> Processing Dependency: python-virtinst >= 0.400.3 for package: virt-manager --> Processing Dependency: gtk-vnc-python >= 0.3.8 for package: virt-manager --> Processing Dependency: libvirt-python >= 0.3.3 for package: virt-manager --> Processing Dependency: gnome-python2-gnomekeyring >= 2.15.4 for package: virt-manager ---> Package virt-viewer.i386 0:0.0.2-3.el5 set to be updated --> Processing Dependency: libvirt.so.0 for package: virt-viewer --> Processing Dependency: libxenstore.so.3.0 for package: virt-viewer --> Processing Dependency: libgtk-vnc-1.0.so.0 for package: virt-viewer ---> Package xen.i386 0:3.0.3-105.el5_5.4 set to be updated --> Processing Dependency: bridge-utils for package: xen --> Processing Dependency: xz-libs for package: xen --> Running transaction check ---> Package bridge-utils.i386 0:1.1-2 set to be updated ---> Package gnome-python2-gnomekeyring.i386 0:2.16.0-3.el5 set to be updated ---> Package gtk-vnc.i386 0:0.3.8-3.el5 set to be updated ---> Package gtk-vnc-python.i386 0:0.3.8-3.el5 set to be updated ---> Package libvirt.i386 0:0.6.3-33.el5_5.1 set to be updated --> Processing Dependency: iscsi-initiator-utils for package: libvirt ---> Package libvirt-python.i386 0:0.6.3-33.el5_5.1 set to be updated ---> Package python-virtinst.noarch 0:0.400.3-9.el5 set to be updated ---> Package xen-libs.i386 0:3.0.3-105.el5_5.4 set to be updated --> Processing Dependency: libext4fs.so.2 for package: xen-libs ---> Package xz-libs.i386 0:4.999.9-0.3.beta.20091007git.el5 set to be updated --> Running transaction check ---> Package e4fsprogs-libs.i386 0:1.41.9-3.el5 set to be updated ---> Package iscsi-initiator-utils.i386 0:6.2.0.871-0.16.el5 set to be updated --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: kernel-xen i686 2.6.18-194.8.1.el5 updates 18 M virt-manager i386 0.6.1-12.el5 base 1.5 M virt-viewer i386 0.0.2-3.el5 base 25 k xen i386 3.0.3-105.el5_5.4 updates 1.9 M Installing for dependencies: bridge-utils i386 1.1-2 base 27 k e4fsprogs-libs i386 1.41.9-3.el5 base 108 k gnome-python2-gnomekeyring i386 2.16.0-3.el5 base 16 k gtk-vnc i386 0.3.8-3.el5 base 80 k gtk-vnc-python i386 0.3.8-3.el5 base 12 k iscsi-initiator-utils i386 6.2.0.871-0.16.el5 base 778 k libvirt i386 0.6.3-33.el5_5.1 updates 2.0 M libvirt-python i386 0.6.3-33.el5_5.1 updates 136 k python-virtinst noarch 0.400.3-9.el5 base 379 k xen-libs i386 3.0.3-105.el5_5.4 updates 158 k xz-libs i386 4.999.9-0.3.beta.20091007git.el5 base 100 k Transaction Summary ================================================================================ Install 15 Package(s) Update 0 Package(s) Remove 0 Package(s) Total download size: 25 M Is this ok [y/N]: y Downloading Packages: (1/15): gtk-vnc-python-0.3.8-3.el5.i386.rpm | 12 kB 00:00 (2/15): gnome-python2-gnomekeyring-2.16.0-3.el5.i386.rpm | 16 kB 00:00 (3/15): virt-viewer-0.0.2-3.el5.i386.rpm | 25 kB 00:00 (4/15): bridge-utils-1.1-2.i386.rpm | 27 kB 00:00 (5/15): gtk-vnc-0.3.8-3.el5.i386.rpm | 80 kB 00:00 (6/15): xz-libs-4.999.9-0.3.beta.20091007git.el5.i386.rp | 100 kB 00:00 (7/15): e4fsprogs-libs-1.41.9-3.el5.i386.rpm | 108 kB 00:00 (8/15): libvirt-python-0.6.3-33.el5_5.1.i386.rpm | 136 kB 00:01 (9/15): xen-libs-3.0.3-105.el5_5.4.i386.rpm | 158 kB 00:01 (10/15): python-virtinst-0.400.3-9.el5.noarch.rpm | 379 kB 00:05 (11/15): iscsi-initiator-utils-6.2.0.871-0.16.el5.i386.r | 778 kB 00:11 (12/15): virt-manager-0.6.1-12.el5.i386.rpm | 1.5 MB 00:25 (13/15): xen-3.0.3-105.el5_5.4.i386.rpm | 1.9 MB 00:28 (14/15): libvirt-0.6.3-33.el5_5.1.i386.rpm | 2.0 MB 00:29 (15/15): kernel-xen-2.6.18-194.8.1.el5.i686.rpm | 18 MB 04:27 -------------------------------------------------------------------------------- Total 69 kB/s | 25 MB 06:14 warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID e8562897 base/gpgkey | 1.5 kB 00:00 Importing GPG key 0xE8562897 "CentOS-5 Key (CentOS 5 Official Signing Key) <centos-5-key@centos.org>" from /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 Is this ok [y/N]: y Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing : gtk-vnc 1/15 Installing : xz-libs 2/15 Installing : bridge-utils 3/15 Installing : gtk-vnc-python 4/15 Installing : iscsi-initiator-utils 5/15 Installing : e4fsprogs-libs 6/15 Installing : xen-libs 7/15 Installing : libvirt 8/15 Installing : libvirt-python 9/15 Installing : gnome-python2-gnomekeyring 10/15 Installing : python-virtinst 11/15 Installing : kernel-xen 12/15 Installing : virt-viewer 13/15 Installing : xen 14/15 Installing : virt-manager 15/15 Installed: kernel-xen.i686 0:2.6.18-194.8.1.el5 virt-manager.i386 0:0.6.1-12.el5 virt-viewer.i386 0:0.0.2-3.el5 xen.i386 0:3.0.3-105.el5_5.4 Dependency Installed: bridge-utils.i386 0:1.1-2 e4fsprogs-libs.i386 0:1.41.9-3.el5 gnome-python2-gnomekeyring.i386 0:2.16.0-3.el5 gtk-vnc.i386 0:0.3.8-3.el5 gtk-vnc-python.i386 0:0.3.8-3.el5 iscsi-initiator-utils.i386 0:6.2.0.871-0.16.el5 libvirt.i386 0:0.6.3-33.el5_5.1 libvirt-python.i386 0:0.6.3-33.el5_5.1 python-virtinst.noarch 0:0.400.3-9.el5 xen-libs.i386 0:3.0.3-105.el5_5.4 xz-libs.i386 0:4.999.9-0.3.beta.20091007git.el5 Complete! [root@localhost yum.repos.d]#
Now restart server machine and change the default option for boot in /etc/grub.conf
# Note that you do not have to rerun grub after making changes to this file # NOTICE: You do not have a /boot partition. This means that # all kernel and initrd paths are relative to /, eg. # root (hd0,6) # kernel /boot/vmlinuz-version ro root=/dev/sda7 # initrd /boot/initrd-version.img #boot=/dev/sda default=1 timeout=5 splashimage=(hd0,6)/boot/grub/splash.xpm.gz hiddenmenu title CentOS (2.6.18-194.8.1.el5xen) root (hd0,6) kernel /boot/xen.gz-2.6.18-194.8.1.el5 module /boot/vmlinuz-2.6.18-194.8.1.el5xen ro root=LABEL=/ rhgb quiet module /boot/initrd-2.6.18-194.8.1.el5xen.img title CentOS (2.6.18-164.el5) root (hd0,6) kernel /boot/vmlinuz-2.6.18-164.el5 ro root=LABEL=/ rhgb quiet initrd /boot/initrd-2.6.18-164.el5.img
change default=1 to 0, sothat when system restarts in future, it will boot in xen kernel enviroment.