Minggu, 11 April 2010

Membuat Repository Lokal Ubuntu

Berawal dari koneksi speedy kampus yang lebih sering down gara-gara modemnya sedikit bermasalah, maka untuk menunjang perkuliahan Linux Sysadmin dibuatlah repository lokal ini yang berawal dari ide Pan Belog yang menginginkan adanya sebuah server repository untuk melayani instalasi yang bersifat lokal dan tidak perlu terhubung internet. Linux yang digunakan adalah Linux Ubuntu 9.04 karena linux ini sudah lebih dahulu ada di beberapa komputer Lab A dan tidak mengapa memakai yang versi lama untuk belajar.
Awalnya saya pikir, wah gimana ya caranya karena tugas itu diberikan kepada saya. Saya berpikir sih sepertinya mudah dan saya harus mencobanya :) Setelah browsing tidak begitu lama, saya temukan caranya ternyata tidak begitu sulit yang dipikirkan. Saya memilih membuat server repository menggunakan FTP dari pada webserver yang disarankan oleh bos saya dan saya pikir sama saja.
Baiklah, langkah-langkah yang harus anda lakukan antara lain:
1. DVD Repository Ubuntu 9.04 atau file iso-nya
2. Paket FTP (proftpd, vsftpd atau yang lainnya)
3. Sebuah host (Ubuntu) untuk menjadi server
4. LAN yang tidak bermasalah
5. Kemauan

Sebagai tahap awal, belilah DVD Repo 9.04 atau unduh (kalau saya berhasil mengunduhnya dalam waktu seminggu plus dihitung jeda downloadnya dan jumlah file isonya itu diatas 20 GB). Jika anda bersyukur sudah mendapatkannya, maka barulah kita berlanjut ke langkah berikutnya, yaitu instalasi server FTP. Instalkanlah paket FTP (saya menggunakan proftpd) bisa melalui DVD Reponya atau langsung dari internet

# apt-get install proftpd

Setelah terinstal, bukalah konfigurasi dari file proftpd.conf

# pico /etc/proftpd/proftpd.conf

Untuk dapat login tanpa password ke server ftp yang baru saja kita install, hilangkanlah tanda "#" pada kalimat yang berisikan Anonymous User. Atau kalau anda mau repot, ketikkan seperti berikut:

User ftp
Group nogroup
UserAlias anonymous ftp
DirFakeUser on ftp
DirFakeGroup on ftp
RequireValidShell off
MaxClients 10
DisplayLogin welcome.msg
DisplayFirstChdir .message
DenyAll

Setelah semua siap, maka kita perlu melakukan sedikit modifikasi lagi di direktory FTP kita:

# chown -Rf root.root /home/ftp
# /etc/init.d/proftpd restart
# mkdir /home/ftp/pub
# chown -Rf ftp.nogroup /home/ftp/pub

Selanjutnya adalah mounting image dari DVD Repo kita. akan lebih gampang kalau kita memakai isonya saja. Jadi bagi yang sudah terlanjur membelinya dalam bentuk DVD, tidak usah khawatir. Kita akan membuat file iso dari DVD Repo kita. Perhatikan seksama direktori tujuan anda ketika menaruh image repo kita (saya menaruhnya di direktori /home/Documents) >> Lewati langkah ini jika anda sudah punya iso-nya

$ pwd
/home/user
$ cd Documents
$ pwd
/home/user/Documents

Masukkan DVD no.1 ke drive DVDROM anda dan lakukan perintah dibawah ini sampai ke DVD terakhir (proses ini akan memakan cukup waktu)

$ dd if=/dev/cdrom of=repo1.iso
$ dd if=/dev/cdrom of=repo2.iso
$ dd if=/dev/cdrom of=repo3.iso
$ dd if=/dev/cdrom of=repo4.iso
$ dd if=/dev/cdrom of=repo5.iso
$ dd if=/dev/cdrom of=repo6.iso

Setelah semua menjadi iso, buatlah direktori dari masing-masing image repo kita di direktori server FTP kita:

# mkdir /home/ftp/pub/jaunty-repo1
# mkdir /home/ftp/pub/jaunty-repo2
# mkdir /home/ftp/pub/jaunty-repo3
# mkdir /home/ftp/pub/jaunty-repo4
# mkdir /home/ftp/pub/jaunty-repo5
# mkdir /home/ftp/pub/jaunty-repo6

Langkah berikutnya adalah melakukan mounting ke direktori di FTP server kita dari image iso yang tadi kita buat

# mount -t iso9660 -o loop /home/user/Documents/repo1.iso /home/ftp/pub/jaunty-repo1
# mount -t iso9660 -o loop /home/user/Documents/repo2.iso /home/ftp/pub/jaunty-repo2
# mount -t iso9660 -o loop /home/user/Documents/repo3.iso /home/ftp/pub/jaunty-repo3
# mount -t iso9660 -o loop /home/user/Documents/repo4.iso /home/ftp/pub/jaunty-repo4
# mount -t iso9660 -o loop /home/user/Documents/repo5.iso /home/ftp/pub/jaunty-repo5
# mount -t iso9660 -o loop /home/user/Documents/repo6.iso /home/ftp/pub/jaunty-repo6

Sampai disini, sekarang coba ubahlah sources.list di client dengan menambahkan:

deb ftp://192.168.2.162/pub/jaunty-repo1/ jaunty main restricted multiverse universe
deb ftp://192.168.2.162/pub/jaunty-repo2/ jaunty main restricted multiverse universe
deb ftp://192.168.2.162/pub/jaunty-repo3/ jaunty main restricted multiverse universe
deb ftp://192.168.2.162/pub/jaunty-repo4/ jaunty main restricted multiverse universe
deb ftp://192.168.2.162/pub/jaunty-repo5/ jaunty main restricted multiverse universe
deb ftp://192.168.2.162/pub/jaunty-repo6/ jaunty main restricted multiverse universe

dimana ftp://192.168.2.162 adalah nama server FTP saya, sesuaikan dengan komputer anda. Dan lakukan perintah:

# apt-get update

Sekarang anda dapat melakukan instalasi paket Ubuntu tanpa perlu koneksi internet.

Biasanya, setelah komputer kita restart maka semua image yang tadi kita mount akan hilang dan kita harus mount lagi seperti langkah sebelumnya. Untuk membuatnya mount otomatis ketika komputer baru menyala, tambahkan perintah mount tadi ke

# pico /etc/rc.local

tambahkan perintah mount yang sebelumnya:

# mount -t iso9660 -o loop /home/user/Documents/repo1.iso /home/ftp/pub/jaunty-repo1
# mount -t iso9660 -o loop /home/user/Documents/repo2.iso /home/ftp/pub/jaunty-repo2
# mount -t iso9660 -o loop /home/user/Documents/repo3.iso /home/ftp/pub/jaunty-repo3
# mount -t iso9660 -o loop /home/user/Documents/repo4.iso /home/ftp/pub/jaunty-repo4
# mount -t iso9660 -o loop /home/user/Documents/repo5.iso /home/ftp/pub/jaunty-repo5
# mount -t iso9660 -o loop /home/user/Documents/repo6.iso /home/ftp/pub/jaunty-repo6

Sampai tahap ini, maka tiap komputer server anda menyala, maka secara otomatis iso repository anda langsung bisa termount.