Membuat sendiri Distro SchoolOnffLine
Di sini akan di jelaskan teknik membuat LiveCD SchoolOnffLine yang akan berguna bagi pelajaran TIK di sekolah.
Maksud & Tujuan Distro SchoolOnffLine
- Membantu sekolah dalam menyelenggarakan pelajaran komputer, tanpa perlu adanya Internet
- Di Instalasi di Server untuk menggantikan fungsi Internet
- Dapat berfungsi sebagai proxy jika tersambung ke Internet
Fitur Distro SchoolOnffLine
- Berbasis Ubuntu 9.04 Desktop
Server Jaringan
- NAT / Proxy
- DHCP Server
- Squid Proxy Server
- Dansguardian untuk membantu blokir situs tidak baik
- OpenDNS & Nawala Project untuk membantu blokir situs tidak baik
- Postfix SMTP Mail Server
Relay host SMTP default smtp.telkom.net
- Dovecot POP3 & IMAP Mail Server
- MySQL Database Server (dengan root password 123456)
Server Aplikasi
- Wordpress Blog Server
- SpeedyWiki
- Wikipedia for School
- Squirrelmail Webmail server
- ejabberd chatting server
Kebutuhan Sistem Pendukung
- Harddisk kosong sebesar 3 – 5 GB (semakin besar ruang kosong, semakin dianjurkan)
- Memori 512MB dan swap 1 GB (semakin besar memori, semakin dianjurkan)
- Paket pendukung squashfs-tools, dchroot, genisoimage dan mkisofs
- Program Virtualisasi semacam Qemu, VirtualBox, VM Ware dan lainya
- Berkas ISO Ubuntu Live CD Desktop
Persiapan
Instalasi paket pendukung
$ sudo aptitude install squashfs-tools genisoimage qemu dchroot
Load module squashfs
$ sudo modprobe squashfs
Bisa dilihat apakah sudah terload dengan baik menggunakan perintah
$ lsmod
akan keluar kira-kira
Module Size Used by squashfs 46344 0
Karena kita akan membuat banyak server di Distro SchoolOnffLine. Matikan seluruh server yang ada di mesin host pembuat distro
$ sudo /etc/init.d/mysql stop $ sudo /etc/init.d/apache2 stop
Copy CD Ubuntu LiveCD Desktop Referensi
$ mkdir ~/live $ mv ubuntu-9.04-desktop-i386.iso ~/live $ cd ~/live $ mkdir mnt $ sudo mount -o loop ubuntu-9.04-desktop-i386.iso mnt $ mkdir extract-cd $ rsync --exclude=/casper/filesystem.squashfs -a mnt/ extract-cd
Ekstrak Sistem Desktop
$ mkdir squashfs $ sudo mount -t squashfs -o loop mnt/casper/filesystem.squashfs squashfs
Extract isi folder squashfs ke folder edit
$ mkdir edit $ sudo cp -a squashfs/* edit/
Persiapan dan Menggunakan chroot
Jika dibutuhkan sambungan jaringan
$ sudo cp /etc/resolv.conf edit/etc/
Tergantung konfigurasi kita mungkin dibutuhkan untuk mengcopy file host
$ sudo cp /etc/hosts edit/etc/
$ sudo mount --bind /dev/ edit/dev $ sudo chroot edit # mount -t proc none /proc # mount -t sysfs none /sys
Langkah di atas akan mount direktori penting dari system utama kita - jika kita di waktu kemudian ingin men-delete directory edit/, pastikan kita umount directory /proc dan /sys, jika tidak maka system utama kita akan tidak bisa digunakan paling tidak sampai harus di reboot ulang.
Untuk mengatasi isu local dan untuk dapat mengimport GPG keys
# export HOME=/root # export LC_ALL=C
Customisasi
apt-get
Untuk melihat aplikasi yang terinstall dapat dilihat menggunakan perintah
# dpkg-query -W --showformat='${Installed-Size} ${Package}\n' | sort -nr | less
Jika kita ingin membuat sebuah paket program (nama-paket-program), lakukan menggunakan perintah berikut
# aptitude purge nama-paket-program
Ubah sources.list
Kadangkala kita perlu mengubah isi sources.list agar menggunakan repository lokal di jaringan yang kita managed. Ubah file sources.list dalam lingkungan chroot
# cd /etc/apt # cp sources.list sources.list.original # vi /etc/apt/sources.list
Isi agar menggunakan repository lokal di jaringan kita, misalnya,
deb ftp://192.168.0.2/pub/repo-9.04/ jaunty main multiverse restricted universe deb ftp://192.168.0.2/pub/repo-9.04/ jaunty-updates main multiverse restricted universe deb ftp://192.168.0.2/pub/repo-9.04/ jaunty-security main multiverse restricted universe deb ftp://192.168.0.2/pub/repo-9.04/ jaunty-backports main multiverse restricted universe
Update repository
# apt-get update
Customisasi Server Aplikasi
Selama dalam lingkungan chroot, untuk membuat Server aplikasi kita dapat mengikuti langkah yang normal dalam membuat server aplikasi seperti di jelaskan dalam Linux Howto.
Gunakan OpenDNS & Nawala Project
Edit /etc/resolv.conf, pastikan
nameserver 203.34.118.10 nameserver 203.34.118.12 nameserver 208.67.222.222 nameserver 208.67.220.220
Instalasi Postfix Server
# apt-get install postfix
Pilih
Internet with Smarthost OK
Sistem mail name, isi
sekolah.sch.id
SMTP relay host
smtp.telkom.net
Instalasi MySQL Server
# apt-get install mysql-server libmysqlclient15-dev
Masukan password root mysql, misalnya
123456 123456
Instalasi Wordpress
Pastikan kita dalam lingkungan chroot.
Siapkan beberapa fasiltas pendukung Wordpress seperti MySQL-server, PHP dll, antara lain dapat di install melalui perintah
# apt-get install apache2 mysql-server libmysqlclient15-dev libphp-adodb libgd2-xpm libgd2-xpm-dev \ php5-mysql php5-gd php5-curl php-pear unzip
Ambil source code Wordpress berbahasa Indonesia dari
http://id.wordpress.org/
Bagi anda yang menggunakan Wordpress berbahasa Indonesia dapat menggunakan perintah berikut
# cp wordpress-2.7.1-id_ID.zip /var/www/ # cd /var/www # unzip wordpress-2.7.1-id_ID.zip # cd /var/www/wordpress
Konfigurasi Wordpress untuk menggunakan database MySQL
# cd /var/www/wordpress # cp wp-config-sample.php wp-config.php # vi wp-config.php define('DB_NAME', 'wordpress'); define('DB_USER', 'wordpress'); define('DB_PASSWORD', 'wordpress'); define('DB_HOST', 'localhost');
Siapkan database untuk Wordpress, disini akan digunakan database dengan nama wordpress, user database dengan nama wordpress dan password untuk akses database adalah wordpress. Sedang password root MySQL di set sebagai password. Perintah yang digunakan untuk mengkonfigurasi adalah
mysql mysql> SET PASSWORD FOR root@localhost=PASSWORD('password');
Jika password Root MySQL database sudah di set maka kita dapat langsung mengkonfigurasi MySQL menggunakan perintah
# mysql -u root -p Enter password: mysql> create database wordpress; mysql> grant INSERT,SELECT on root.* to wordpress@localhost; mysql> grant CREATE, INSERT, SELECT, DELETE, UPDATE on wordpress.* to wordpress@localhost identified by 'wordpress'; mysql> grant CREATE, INSERT, SELECT, DELETE, UPDATE on wordpress.* to wordpress identified by 'wordpress'; mysql> exit
Akses Web Wordpress yang baru melalui perintah
http://localhost/wordpress install.php
Langkah yang perlu dilakukan
- isi Weblog title dan e-mail
- user dan password untuk administrator admin
Kita dapat login melalui wp-login.php
Cleanup
Pastikan untuk mengubah semua file temporary yang tidak lagi dibutuhkan karena ruang dalam CD sangat terbatas. Beberapa contoh paket / file yang dapat di bersihkan menggunakan
# aptitude clean
Atau men-delete temporary file
# rm -rf /tmp/* ~/.bash_history
dari dalam lingkungan chroot.
Lakukan juga umount (unmount) berbagai file sistem dan keluar dari chroot
# umount /proc # umount /sys # exit $ sudo umount edit/dev
Catatan: jika "umount /proc" gagal, coba "umount -lf /proc"
Membuat ISO CD
Membuat Manifest
$ chmod +w extract-cd/casper/filesystem.manifest $ sudo chroot edit dpkg-query -W --showformat='${Package} ${Version}\n' > extract-cd/casper/filesystem.manifest $ sudo cp extract-cd/casper/filesystem.manifest extract-cd/casper/filesystem.manifest-desktop $ sudo sed -i '/ubiquity/d' extract-cd/casper/filesystem.manifest-desktop
Compress filesystem
$ sudo rm extract-cd/casper/filesystem.squashfs $ sudo mksquashfs edit extract-cd/casper/filesystem.squashfs -nolzma
Catatan: opsi -nolzma hanya ada dari Hardy
Set nama image di extract-cd/README.diskdefines
$ sudo vi extract-cd/README.diskdefines
Masukan kata-kata
#define DISKNAME SchoolOnffLine 0.01 "Percobaan" - Release i386
Remove old md5sum.txt dan hitung ulang md5 yang baru
$ sudo -s # rm extract-cd/md5sum.txt # cd extract-cd && find . -type f -print0 | xargs -0 md5sum > md5sum.draft # cd .. # cat extract-cd/md5sum.draft | grep -v md5sum.txt | grep -v isolinux/boot.cat > extract-cd/md5sum.txt # rm extract-cd/md5sum.draft # exit
Buat iso
$ cd extract-cd $ sudo mkisofs -D -r -V "$IMAGE_NAME" -cache-inodes -J -l -b isolinux/isolinux.bin \ -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table \ -o ../schoolonffline-0.01.iso .
Percobaan LiveCD Baru
Percobaan dapat menggunakan emulator qemu
$ qemu -cdrom schoolonffline-0.01.iso -boot d -m 512
Atau jika kita mempunyai hardware accelerator untuk kvm dapat menggunakan
$ kvm -cdrom schoolonffline-0.01.iso -boot d -m 512
Kita juga dapat mencoba menggunakan virtualbox-ose, yang merupakan open source software yang dapat di ambil dari Ubuntu universe repository.
Burning image CD
Simple! lakukan
$ cdrecord dev=/dev/cdrom schoolonffline-0.01.iso