Membuat Salinan Instalasi Server dengan Fungsi Sama

Beberapa hari ini saya harus menginstall beberapa server dengan fungsi khusus, seperti server printer dan server fax. Alih-alih menginstall masing-masing server menggunakan media installer standar kemudian menyetel satu persatu. Saya menginstall satu mesin, menyetel dengan benar sistem di mesin tersebut. Setelah itu menyalin sistem secara keseluruhan pada komputer-komputer lainnya. Dan terakhir menyetel kebutuhan khusus masing-masing server.

Metode instalasi yang dijelaskan disini, adalah rangkuman hasil catatan setelah melakukan instalasi. Bukan didokumentasikan saat instalasi. Akan sangat memungkinkan terdapat kekeliruan penulisan perintah dan lain sebagainya. Koreksi dan usulan sangat terbuka dari para penerap dan pengguna GNU/Linux secara umum.

Meski tulisan ini berbasis distribusi Debian, tapi saya sangat yakin bisa diterapkan untuk distribusi lainnya.

Cara seperti ini sebenarnya mirip dengan cara diterapkan pada distribusi-distribusi yang diinstall dari live-cd

Berikut langkah-langkah yang telah saya lakukan:

Instalasi menggunakan DVD/CD

DVD/CD iso image instalasi bisa di dapatkan dari alamat ini http://kambing.ui.ac.id/iso/debian/. Jika anda kesulitan untuk mengunduh file iso dari server tersebut, bisa mendapatkan dari saya dengan mengirim ongkos kirim saja.

Jalankan proses instalasi dengan memilih base system, tanpa menghubungkan kartu jaringan. Tujuannya agar saat instalasi hanya menggunakan media lokal DVD/CD saja.

Setelah selesai melakukan proses instalasi, lanjutkan dengan menyetel sistem sesuai dengan fungsinya.

Membuat Salinan Struktur Direktori

Karena dalam kasus yang saya kerjakan ini sistem yang disetel awal cuma mempunya kapasitas 1281 MB. Dan setelah memangkas perangkat lunak yang tidak diperlukan, termasuk man page. Maka dengan sangat terpaksa, salinan struktur direktori harus disimpan ke server file. Mungkin ini salah satu trik yang jarang digunakan. Ya, saya tahu kita bisa melakukan ini dengan menggunakan share direktori dari server nfs atau server smb. Tapi saya ingin melakukannya dengan cara lain.

Dengan contoh server yang sudah jadi adalah printer server dengan alamat IP 10.5.1.18, dan file server adalah 10.5.1.10. Dimana server file mempunyai layanan openssh yang aktif.

Buat daftar file atau direktori yang tidak akan disalin, biasanya file/direktori yang akan dibuat saat sistem berjalan. Misalnya direktori /proc, /dev/ (jika menggunakan udev), /tmp, dan sebagainya. Sebagai contoh file /etc/rsync-exclude berisi baris-baris berikut,

/lib/init/rw /dev/shm /target /tmp /lost+found /proc /sys

Salin struktur direktori ke file server dengan perintah:

printerserver:~# /usr/bin/rsync --delete \
--exclude-from=/etc/rsync-exclude \
-avr / root@10.5.1.10:/root/printerserver >/dev/null 2>&1

Tunggu sampai proses penyalinan selesai. Lamanya tergantung dari besar filesistem yang disalin. Di sisi server akan dibuat direktori /root/printerserver yang berisi salinan seluruh file dan direktori dari struktur direktori printerserver.

Menyiapkan Target

Pasang harddisk target pada server file dimana struktur printer server disalin.

Dalam kasus yang saya kerjakan ini, harddisk target dikenali sebagai /dev/hdd

[root@ftp ~]# fdisk -l

Disk /dev/hdd: 20.8 GB, 20847697920 bytes
16 heads, 63 sectors/track, 40395 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes

   Device Boot      Start         End      Blocks   Id  System

Disk /dev/sda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14        9729    78043770   8e  Linux LVM

dan /dev/sda adalah sistem yang sedang berjalan.

Buat partisi sesuai dengan kebutuhan menggunakan perintah fdisk.

[root@ftp ~]# fdisk /dev/hdd 

The number of cylinders for this disk is set to 40395.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-40395, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-40395, default 40395): +19000M

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (36817-40395, default 36817):
Using default value 36817
Last cylinder or +size or +sizeM or +sizeK (36817-40395, default 40395):
Using default value 40395

Saya ingin menggunakan kapasitas harddisk yang cuma 20Gb ini untuk sistem dan data 19Gb dan untuk swap 1Gb. Sehingga partisi kedua harus diubah tipe nya menjadai partisi swap.

Command (m for help): p  

Disk /dev/hdd: 20.8 GB, 20847697920 bytes
16 heads, 63 sectors/track, 40395 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hdd1               1       36816    18555232+  83  Linux
/dev/hdd2           36817       40395     1803816   83  Linux

Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): 82
Changed system type of partition 2 to 82 (Linux swap / Solaris)

Command (m for help): p

Disk /dev/hdd: 20.8 GB, 20847697920 bytes
16 heads, 63 sectors/track, 40395 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hdd1               1       36816    18555232+  83  Linux
/dev/hdd2           36817       40395     1803816   82  Linux swap / Solaris

Proses membuat partisi sudah selesai.

Langkah selanjutnya adalah membuat filesystem ext3 pada partisi pertama.

[root@ftp ~]# mkfs -t ext3 /dev/hdd1
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
2321984 inodes, 4638808 blocks
231940 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
142 block groups
32768 blocks per group, 32768 fragments per group
16352 inodes per group
Superblock backups stored on blocks:
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
	4096000

Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 30 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

Diikuti membuat swap file sistem pada partisi kedua

[root@ftp ~]# mkswap /dev/hdd2
Setting up swapspace version 1, size = 1847103 kB

Kaitkan partisi target pada sebuah direktori, /mnt misalnya:

[root@ftp ~]# mount /dev/hdd1 /mnt/
[root@ftp ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
                       72G   12G   56G  18% /
/dev/sda1              99M   12M   83M  13% /boot
tmpfs                 184M     0  184M   0% /dev/shm
/dev/hdd1              18G  173M   17G   2% /mnt

Salin struktur direktori sumber ke mount point partisi target.

[root@ftp ~]# rsync -avr printerserver/ /mnt/

Sesuaikan Setelan Umum

Pertama adalah partisi yang akan digunakan saat proses boot. Edit file /mnt/etc/fstab.

[root@ftp ~]# vi /mnt/etc/fstab
#
proc            /proc           proc    defaults        0       0
/dev/hda1       /               ext3    errors=remount-ro 0       1
/dev/hda2       none            swap    sw              0       0

kemudian simpan. Dengan menekan berturut-turut tombol [Esc] [:] [w] [q].

Edit file /mnt/boot/grub/menu.lst, berikut contoh isi file tersebut:

default         0
timeout         5
color cyan/blue white/blue

title           Debian GNU/Linux, kernel 2.6.26-2-686
root            (hd0,0)
kernel          /boot/vmlinuz-2.6.26-2-686 root=/dev/hda1 ro quiet
initrd          /boot/initrd.img-2.6.26-2-686

title           Debian GNU/Linux, kernel 2.6.26-2-686 (single-user mode)
root            (hd0,0)
kernel          /boot/vmlinuz-2.6.26-2-686 root=/dev/hda1 ro single
initrd          /boot/initrd.img-2.6.26-2-686

Edit file konfigurasi TCP/IP, sesuaikan dengan topologi jaringan dimana server akan diletakkan.

[root@ftp ~]# vi /mnt/etc/network/interfaces

contoh isi file adalah,

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet static
        address 10.1.1.18
        netmask 255.255.0.0
        network 10.1.0.0
        broadcast 10.1.255.255
        gateway 10.1.1.10
        dns-nameservers 10.1.1.10

Install boot loader pada harddisk target

[root@ftp ~]# grub-install --recheck --root-directory=/mnt/ /dev/hdd
Probing devices to guess BIOS drives. This may take a long time.
Installation finished. No error reported.
This is the contents of the device map /mnt//boot/grub/device.map.
Check if this is correct or not. If any of the lines is incorrect,
fix it and re-run the script `grub-install'.

(fd0)	/dev/fd0
(hd0)	/dev/hdd
(hd1)	/dev/sda

Lepaskan partisi target dari file server, matikan fileserver dan cabut harddisk target.

Pasang harddisk pada mesin target dan lakukan proses boot dari harddisk. Lakukan penyesuaian yang terlupa sebelumnya.

Selesai.