Migrating a Web Development Company from Windows to Linux

From WBITT's Cooker!

Jump to: navigation, search

(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

File:EX_Com_network.png

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
  1. Dreamweaver 8
  1. Quanta
  2. Bluefish
Web Browser
  1. Mozilla Firefox
  2. Google Crome
  3. Flock
  4. Opera
  5. Internet Explorer
  1. Mozilla Firefox
  2. Google Crome
  3. Flock
  4. Opera
Messenger
  1. Google Talk
  2. MSN Messenger
  3. Skype
  1. Pidgin
  2. Pdgin / KMess
  3. Skype
File Compressor
  1. Winzip
  2. Winrar
  1. PeaZip
  2. Unrar
  3. Unzip
  4. gZip
  5. bzip2
PDF Viewer
  1. Acrobat Reader
  1. KPdf
  2. Ghostview
  3. evince
PDF Creator
  1. Solid PDF
  2. Acrobat Reader Professional
  1. Openoffice
  2. GhostScript
Office
  1. MS Office XP/2003/2007
  2. Openoffice
  1. Openoffice
Drawing
  1. MS Paint
  2. Dia
  3. Corel Paint
  1. TuxPaint
  2. Dia
  3. Openoffice Draw
Audio and Vidio
  1. VLC
  2. Media Player
  3. VLC
  4. Classic Media Player
  1. VLC
  2. Kplayer
  3. Amarok
  4. XMMS
  5. MPlayer
  6. Xine
Graphics Editing
  1. Adobe Pgotoshop
  1. GIMP
Animation
  1. Adobe Flash
  1. DraeSWF
Mail Client
  1. Outlook Express
  2. MS Office Outlook
  3. Thunderbird
  4. Opera integrated Mail Client
  1. Thunderbird
  2. Evolution
  3. Kmail

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.

File:new_network1.png

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.

Helpful links

Personal tools