Membuat sendiri Distro SchoolOnffLine: Difference between revisions

From OnnoCenterWiki
Jump to navigationJump to search
Onnowpurbo (talk | contribs)
New page: Di sini akan di jelaskan teknik membuat LiveCD berbasis Ubuntu. Anda dapat menambah, mengurangi paket program sehingga LiveCD tersebut lebih cocok untuk anda. ==Kebutuhan Sistem Pendukun...
 
Onnowpurbo (talk | contribs)
No edit summary
 
(7 intermediate revisions by the same user not shown)
Line 1: Line 1:
Di sini akan di jelaskan teknik membuat LiveCD berbasis Ubuntu. Anda dapat menambah, mengurangi paket program sehingga LiveCD tersebut lebih cocok untuk anda.
Di sini akan di jelaskan teknik membuat [[LiveCD]] [[Distro SchoolOnffLine | 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




Line 28: Line 58:
  Module                  Size  Used by
  Module                  Size  Used by
  squashfs              46344  0  
  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




Line 89: Line 124:




===Mengubah background GNOME===
===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 [[Membuat Repository Ubuntu Lokal dari hasil Download Repository | 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==


File background ada di /usr/share/backgrounds. Copy file png ke directory tersebut, atur owner dan hak akses edit file:
Selama dalam lingkungan chroot, untuk membuat Server aplikasi kita dapat mengikuti langkah yang normal dalam membuat server aplikasi seperti di jelaskan dalam [[Linux Howto]].


# /usr/share/gnome-background-properties/ubuntu-wallpapers.xml dan
# /usr/share/gconf/defaults/16_ubuntu-artwork atau file lain di directory yang sama. Dengan mengubah tulisan /usr/share/backgrounds/warty-final-ubuntu.png ke file yang kita inginkan.


Kemudian mengubah atau menambahkan atribut ke file konfigurasi lain, seperti, /var/lib/gconf/debian.defaults/%gconf-tree.xml atau /etc/gconf/gconf.xml.defaults/%gconf-tree.xml.
===Gunakan OpenDNS & Nawala Project===


Edit /etc/resolv.conf, pastikan


===Mengubah nilai gconf (fonts, panels dll.)===
nameserver 203.34.118.10
nameserver 203.34.118.12
nameserver 208.67.222.222
nameserver 208.67.220.220


Untuk mengubah atribut gconf, kita harus menambahkan nilai yang kita inginkan ke file /etc/gconf/gconf.xml.defaults/%gconf-tree.xml. Menambahkan sebuah nilai ke file tersebut akan mengubah nilai default dari Gnome atau aplikasi lainnya, oleh karenanya kita dapat mengubah fonts, backgrounds, themes, cursors dll.


Dari pada mengubah file tersebut degnan gedit atau text editor lainnya, kita dapat menggunakan gconftool-2 dalam lingkungan chroot, jalankan menggunakan perintah berikut:
===Instalasi Postfix Server===


  # gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults --type string --set yourkey "yourvalue"
  # apt-get install postfix


dimana string, yourkey dan where string, yourkey dan yourvalue harus merupakan type, key dan nilai dari yang kita ingin ubah ...
Pilih


Internet with Smarthost
OK


Sistem mail name, isi


sekolah.sch.id


==Advanced==
SMTP relay host


===Ubah sources.list===
smtp.telkom.net


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 [[Membuat Repository Ubuntu Lokal dari hasil Download Repository | repository lokal]] di jaringan kita, misalnya,


deb ftp://192.168.0.2/pub/repo-9.04/ jaunty main multiverse restricted universe
===Instalasi MySQL Server===
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 install mysql-server libmysqlclient15-dev


# apt-get update
Masukan password root mysql, misalnya


===Membuat Server Aplikasi di LiveCD===
123456
123456


Selama dalam lingkungan chroot, untuk membuat Server aplikasi kita dapat mengikuti langkah yang normal dalam membuat server aplikasi seperti di jelaskan dalam [[Linux Howto]], misalnya


* [[Instalasi Apache]]
===Instalasi Wordpress===
* [[Instalasi Wordpress]]
* [[instalasi Squirrelmail]]
* [[Instalasi MediaWiki]]
* [[Instalasi Data Wikipedia dari Kambing]]


Pastikan kita dalam lingkungan chroot.
Pastikan kita dalam lingkungan chroot.


===Live CD Kernel===
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/


Jika kita ingin meng-customized boot proses, kita dapat mengubah kernel livecd yang digunakan, dengan mengcopykan vmlinz dan initrd yang kita inginkan dengan yang kita dapati di extract-cd/casper. Misalnya,
Bagi anda yang menggunakan Wordpress berbahasa Indonesia dapat menggunakan perintah berikut


  $ sudo cp edit/boot/vmlinuz-2.6.15-26-k7 extract-cd/casper/vmlinuz
  # cp wordpress-2.7.1-id_ID.zip /var/www/
  $ sudo cp edit/boot/initrd.img-2.6.15-26-k7 extract-cd/casper/initrd.gz
  # 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




Line 168: Line 266:
  # rm -rf /tmp/* ~/.bash_history
  # rm -rf /tmp/* ~/.bash_history


Atau konfigurasi name server
Pastikan sources.list original di kembalikan ke asli-nya


  # rm /etc/resolv.conf
# cp /etc/apt/sources.list.original /etc/apt/sources.list
  # rm -Rf /etc/apt/sources.list.original


dari dalam lingkungan chroot.
dari dalam lingkungan chroot.
Line 181: Line 280:
  $ sudo umount edit/dev
  $ sudo umount edit/dev


Catatan: jika "umount /proc" gagal, coba "umount -lf /proc"  
Catatan: jika "umount /proc" gagal, coba "umount -lf /proc"
 
 


==Membuat ISO CD==
==Membuat ISO CD==
Line 203: Line 300:
Set nama image di extract-cd/README.diskdefines
Set nama image di extract-cd/README.diskdefines


  $ sudo vim extract-cd/README.diskdefines
  $ sudo vi extract-cd/README.diskdefines  


Remove old md5sum.txt dan hitung ulang md5 yang baru
Masukan kata-kata


  $ sudo -s
  #define DISKNAME SchoolOnffLine 0.01 "Percobaan" - Release i386
  $ rm extract-cd/md5sum.txt


atau


$ cd extract-cd && find . -type f -print0 | xargs -0 md5sum > md5sum.draft
Remove old md5sum.txt dan hitung ulang md5 yang baru


  $ cat extract-cd/md5sum.draft | grep -v md5sum.txt | grep -v isolinux/boot.cat > extract-cd/md5sum.txt
  $ sudo -s
  $ rm extract-cd/md5sum.draft
# rm extract-cd/md5sum.txt
  $ exit
# 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
Buat iso


  $ cd extract-cd
  $ 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 ../ubuntu-9.04.1-desktop-i386-custom.iso .
  $ 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 .




Line 228: Line 329:
Percobaan dapat menggunakan emulator qemu
Percobaan dapat menggunakan emulator qemu


  $ qemu -cdrom ubuntu-9.04.1-desktop-i386-custom.iso -boot d -m 512
  $ qemu -cdrom schoolonffline-0.01.iso -boot d -m 512


Atau jika kita mempunyai hardware accelerator untuk kvm dapat menggunakan
Atau jika kita mempunyai hardware accelerator untuk kvm dapat menggunakan


  $ kvm -cdrom ubuntu-9.04-desktop-i386-custom.iso -boot d -m 512
  $ 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.  
Kita juga dapat mencoba menggunakan virtualbox-ose, yang merupakan open source software yang dapat di ambil dari Ubuntu universe repository.  
Line 241: Line 342:
Simple! lakukan
Simple! lakukan


  $ cdrecord dev=/dev/cdrom ubuntu-9.04-desktop-i386-custom.iso
  $ cdrecord dev=/dev/cdrom schoolonffline-0.01.iso




Line 253: Line 354:
* [[Membuat Distro Sendiri Secara Manual]]
* [[Membuat Distro Sendiri Secara Manual]]
* [[Membuat sendiri Distro SchoolOnffLine]]
* [[Membuat sendiri Distro SchoolOnffLine]]
* [[Distro SchoolOnffLine]]
* [[Linux Howto]]
* [[Linux Howto]]

Latest revision as of 23:03, 7 September 2009

Di sini akan di jelaskan teknik membuat LiveCD SchoolOnffLine yang akan berguna bagi pelajaran TIK di sekolah.

Maksud & Tujuan Distro SchoolOnffLine


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

  1. Harddisk kosong sebesar 3 – 5 GB (semakin besar ruang kosong, semakin dianjurkan)
  2. Memori 512MB dan swap 1 GB (semakin besar memori, semakin dianjurkan)
  3. Paket pendukung squashfs-tools, dchroot, genisoimage dan mkisofs
  4. Program Virtualisasi semacam Qemu, VirtualBox, VM Ware dan lainya
  5. 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

Pastikan sources.list original di kembalikan ke asli-nya

# cp /etc/apt/sources.list.original /etc/apt/sources.list
# rm -Rf /etc/apt/sources.list.original

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



Pranala Menarik