Belajar Install Docker di Ubuntu 18.04

Setelah kita mempelajari konsep sederhana tentang Docker, sekarang saatnya kita belajar install applikasi Docker ini. Instalasi ini akan di lakukan di Ubuntu Linux versi 18.04 dan akan menggunakan repository.

Berikut adalah langkah langkah instalasi docker :

  • Tambahkan repository docker ke dalam sistem ubuntu
    • $>> curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    • $>> sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  • Setelah itu update informasi repository nya
    • $>> sudo apt update
  • Lanjutkan dengan install Docker versi Community
    • $>> sudo apt install docker-ce
  • Jika selesai, mari kita check status dari Docker yang terinstall
    • $>> sudo systemctl status docker
    • $>> sudo docker run hello-world
  • Jika docker tidak ada error, Selamat kita sudah berhasil melakukan instalasi Docker di dalam system ubuntu kita.

Belajar Docker.

Apa itu Docker ?

Docker adalah suatu project open source yang memungkinkan kita untuk membuat sebuah wadah atau container, yang berisikan suatu aplikasi, yang sudah kita konfigurasi, kita kemas, dan kita dapat menjalankannya.

Dalam bahasa yang lebih sederhana adalah, coba teman teman membayangkan tumpukan kontainer peti kemas di pelabuhan laut. Ada kontainer warna biru untuk database Postgresql, ada kontainer warna hijau untuk web server Apache + Php, ada kontainer warna kuning untuk database MySQL, ada kontainer warna merah untuk Bisnis Intelegence Pentaho, ada kontainer warna oranye untuk Django + Python, dan banyak lagi kontainer kontainer yang lainnya.

Nah, masing masing kontainer itu memiliki konfigurasi yang berbeda beda, misalnya ada kontainer warna biru (Postgresql) memerlukan konfigurasi database replikasi Bucardo. Kontainer yang lain tidak perlu konfigurasi Bucardo ini, tetapi memerlukan konfigurasi yang lain, misalnya kontainer warna merah (BI Pentaho) memerlukan konfigurasi JAVA SDK, yang mana konfigurasi ini juga tidak diperlukan di kontainer yang lainnya.

Kontainer kontainer tersebut berada di suatu pelabuhan peti kemas, siap untuk dikirimkan menggunakan kapal laut. Managemen pelabuhan sudah mempersiapkan dokumen tata cara pengiriman kontainer kontainer berjenis DOCKER itu. Syahbandar yang akan melakukan bongkar muat kontainer sesuai permintaan dari kapal yang akan berlabuh.

Kemudian datang sebuah kapal pengangkut peti kemas milik seorang web programmer yang memiliki kemampuan mengangkut kontainer berjenis DOCKER. Syahbandar di pelabuhan kemudian membuat duplikasi kontainer warna hijau (Apache + PHP) dan warna kuning (MySQL) dan meletakkannya ke dalam kapal pengangkut ini.

Tak lama berselang, datanglah kapal pengangkut peti kemas milik seorang database administrator dan dia memerlukan kontainer warna biru (PostgreSQL) dan kontainer warna kuning (MySQL). Syahbandar pelabuhan segera melakukan duplikasi terhadap kontainer kontainer yang di perlukan tersebut.

Nah, kedua kapal ini kemudian melanjutkan perjalanan mengarungi samudra yang luas. Pada suatu saat mereka akan berhenti di pelabuhan tujuan, dan kemudian mereka menurunkan kontainer yang mereka bawa, atau menduplikasi kontainer sebelum meletakkannya di pelabuhan tujuan, atau membawa kontainer yang baru ke dalam kapal.

Dari penjelasan diatas, kita dapat menganalogikan sebagai berikut, bahwa pelabuhan atau kapal adalah suatu platform DOCKER, dimana kita bisa membawa bermacam macam kontainer didalamnya. Suatu Pelabuhan dapat diartikan sebagai suatu Server Komputer, dan suatu kapal dapat diartikan sebagai suatu adalah laptop dari seorang software engineer atau laptop dari seorang system engineer. SuatukKontainer dapat diartikan sebagai suatu applikasi dengan konfigurasi librarynya.

Semoga penjelasan sederhana diatas dapat membantu teman teman memahami mengenai apa itu Docker, dan apa itu kontainer, dan bagaimana penerapan penggunaannya.

Bagaimana pendapat teman teman ?

Migrasi data paradox ke postgresql

  Hari ini kita memerlukan melakukan migrasi data dari program kita yang lama, yang memakai database paradox untuk di migrasi ke postgresql.

setelah mencari kesana kemari dan tidak menemukan tools yang bisa langsung mentransfer dari paradox ke postgresql, akhirnya kita menemukan tools yang gratis, yang merubah paradox ke excel. Nama toolsnya adalah Paradox DBase Reader buatan smartmox.

http://www.sportamok.com/development/delphi/8-paradox-dbase-reader

cukup lah jika bisa di transfer ke excel, karena dari excel kita bisa mentrasfernya ke postgresql melalui libreoffice.

tools ini gratis dan free

Migrasi data ke database yang lain

  Apakah anda mendapat tugas untuk melakukan konversi database dari Mysql menuju PostgreSQL, atau dari MS-SQL menuju MySQL, atau dari ACCESS menuju ORACLE ?

Jika iya, maka perlu saya informasikan, bahwasannya pekerjaan melakukan konversi database dari satu database menuju database yang lain, bukanlah pekerjaan yang mudah. Mungkin di internet, kita bisa menemukan suatu software yang mengatakan dapat melakukan migrasi dengan mudah, tinggal klik dan selesai. Tidak, bukan seperti itu, tidak ada yang namanya migrasi antar database dilakukan dengan mudah. Selalu saja ada pekerjaan manual di dalamnya.

Berikut adalah langkah langkah migrasi database yang saya jadikan acuan :

  • Buat sendiri Struktur Database-nya
    • maksudnya adalah, anda harus membuat sendiri struktur database di database yang baru, jangan di serahkan 100% ke software migrasi.
    • perhatikan data-data yang memiliki angka desimal di belakang koma
  • Upload data dengan software migrasi
  • Jika tidak ada, upload dengan menggunakan file text, csv atau yang lainnya.
  • Lakukan simulasi migrasi database terlebih dahulu, untuk melihat tingkat validasi data anda. Semakin banyak simulasi akan semakin baik.

Bagaimana dengan anda ?

Download website dengan wget

Kemarin saya memerlukan membaca suatu website tanpa menggunakan internet. Website tersebut akan saya pergunakan untuk memberikan tutorial. Windows memiliki banyak software yang dapat dipergunakan untuk download suatu website secara lengkap, sementara untuk di linux, saya belum pernah melakukannya.

Setelah browsing di google, akhirnya saya mengetahui bahwa wget dapat dipergunakan untuk mendownload suatu website. Berikut adalah perintah yang dipergunakan :

$ wget \
–recursive \
–no-clobber \
–page-requisites \
–html-extension \
–convert-links \
–restrict-file-names=windows \
–domains w3schools.com \
–no-parent \
www.w3schools.com/php/func_date_date_format.asp

Perintah diatas akan mendownload halaman func_date_date_format di w3schools.com. Untuk opsi parameternya, penjelasannya sebagai berikut :

  • –recursive: download keseluruhan website.
  • –no-clobber: file yang sudah ada jangan di timpa/di tumpuk
  • –page-requisites: download semua elemen html untuk membangun halaman tersebut, seperti image, css, js, dan seterusnya.
  • –html-extension: simpan file dalam format ekstensi .html.
  • –convert-links: konversi semua html link supaya bisa dipergunakan secara lokal/offline.
  • –restrict-file-names=windows: konversi semua filename supaya bisa dipergunakan di operating sistem windows.
  • –domains w3schools.com : jangan mendownload link diluar domain w3schools.com.
  • –no-parent: jangan mendownload link diluar direktori /php/ .

 

Akhirnya dengan wget ini, saya bisa mendownload suatu website. Bagaimana dengan rekan rekan yang lain ?

Extract table dari file Full Backup

  Hi semua, jumpa lagi. Sudah lama rasanya tidak update blog ini lagi. Kali ini saya akan berbagi pengalaman saya beberapa hari terakhir ini. Salah seorang rekan team di tempat saya, sering kali meminta untuk di restore-kan data dari tabel tertentu yang telah di backup hari sebelumnya. Problemnya adalah, file backup saya adalah full-backup dalam bentuk file *.sql.

Step untuk restore tersebut adalah sebagai berikut :

  • Siapkan file backup yang akan di restore salah satu tabelnya
  • Buka file tersebut dengan text editor, misalnya notepad, wordpad, gedit, vi dan lain lain
  • Cari awal dari tabel yang akan di restore, bisa dengan search nama tabel
  • Copy blok data insert yang paling awal dari tabel tersebut, hingga yang paling akhir
  • dan paste di file text yang baru
  • Simpan file test tersebut dalam format *.sql.
  • Eksekusi / restore file tersebut di database tujuan.

Nah ternyata step tersebut menjadi rumit untuk saya laksanakan, mengapa?
Karena file full backup yang saya miliki ukurannya sangat besar , 3 GB. Ini akan mengakibatkan text editor yang saya pergunakan tidak mampu untuk membaca file tersebut. Saya mempergunakan gedit, dan programnya tidak kuat, hang.

Akhirnya saya harus mencari fungsi file text di linux untuk melakukan pemotongan data itu. Berikut adalah step yang saya lakukan :

  • Siapkan file backup yang akan di restore salah satu tabelnya
  • Saya masuk ke console linux.
  • Saya pakai fungsi fgrep di linux untuk mencari awal tabel yang akan saya copy.
    • $> fgrep -n “nama_tabel” nama_file_backup.sql | more
  • Jika sudah muncul datanya, saya cari baris yang paling awal menampilkan perintah insert terhadap tabel yang saya cari. Saya catat nomor baris nya.
  • Kemudian, saya cari baris yang paling akhir menampilkan perintah insert terhadap tabel yang saya cari. Saya catat nomor baris nya.
  • Jika sudah mencatat baris awal dan akhirnya, sekarang saatnya kita copy data dari awal baris itu ke akhir barisnya, ke file yang lain. Saya pakai perintah sed.
    • sed -n ‘81484141,81498477’p nama_file_backup.sql > file_restore.sql
  • Eksekusi / restore file tersebut di database tujuan.

Nah selesai sudah, dengan ini, berapapun ukuran file backup yang saya miliki, saya tetap bisa melakukan restore. Bagaimana dengan rekan rekan yang lain ? apakah ada alternatif yang lainnya ?

Memindahkan MS-Access Database ke PostgreSQL

  Beberapa waktu yang lalu, saya memiliki kebutuhan untuk mentransfer database MS-Access ke dalam PostgreSQL. Sempat terpikir untuk melakukan transfer data secara manual dengan penggunakan pentaho, tetapi karena jumlah tabel yang cukup banyak dan waktu yang sangat singkat, sehingga saya memutuskan untuk mencari software gratisan untuk melakukan proses transfer tersebut. Akhirnya setelah mencari melalui GOOGLE, saya menemukan software yang dimaksud, yaitu “Access To PostgreSQL” buatan dari BullZip. Software gratis inilah yang mengkonversikan database MS-Access saya ke PostgreSQL.

  Berikut langkah langkah saya dalam menggunakan software ini :

  • Download dan Install terlebih dahulu PostgreSQL ODBC di sini. Software ini di test dengan odbc versi 8.4.
  • Buat Database Target di dalam PostgreSQL.
  • Jalankan Program “Access To PostgreSQL” dan pilih ms-access file sebagai database sumber dan masukkan database postgresql yang baru sebagai database tujuan.
  • Apabila anda memiliki tabel dengan ukuran yang besar, misal 500 ribu record, maka upload tabel tersebut secara terpisah, untuk menghindari kegagalan.

Software ini sangat bagus, dan saya rekomendasikan untuk teman teman yang ingin melakukan konversi. Silahkan mencoba.

Instalasi OCSInventory Server di Ubuntu 13.10

ocsinventory32  OCSInventory menurut Wikipedia adalah sebagai berikut :

Open Computer and Software Inventory Next Generation (OCS inventory NG) adalah software gratis yang memungkinkan pengguna untuk melakukan inventarisasi terhadap aset aset IT mereka. OCS-NG akan mengumpulkan informasi hardware dan software dari mesin mesin yang terhubung didalam jaringan komputer yang menjalankan program OCS-Client (“OCS Inventory Agent”). OCS dapat dipergunakan untuk menampilkan inventaris melalui web.

Langkah langkah untuk instalasi OCSInventory Server:

  • Install Apache, MySQL dan PHP
  • Install komponen pustaka yang dibutuhkan oleh OCSInventory :
    • apt-get install libapache2-mod-perl2 libapache-dbi-perl libxml-simple-perl libio-compress-perl libdbi-perl libdbd-mysql-perl libnet-ip-perl php5-gd php5-mysql make
  • Install komponen pustaka di perl :
    • masuk ke console perl
      • perl -MCPAN -e shell
    • install pustaka SOAP::Lite
      • install SOAP:Lite
    • install pustaka XML::Entities
      • install XML::Entities
  • Download source OCSInventory terbaru :
    • wget -c https://launchpadlibrarian.net/136538282/OCSNG_UNIX_SERVER-2.1rc1.tar.gz
  • Extract source tersebut, dan masuk ke folder ocs
    • tar -xvf OCSNG_UNIX_SERVER-2.1rc1.tar.gz
    • cd OCSNG_UNIX_SERVER-2.1rc1
  • Jalankan perintah setup instalasi ocs yang terbaru
    • ./setup.sh
  • Jawablah beberapa pertanyaan yang muncul, berikut yang muncul di komputer saya :
    • Do you wish to continue ([y]/n)?
    • Which host is running database server [localhost] ?
    • On which port is running database server [3306] ?
    • Where is Apache daemon binary [/usr/sbin/apache2] ?
    • Where is Apache main configuration file [/etc/apache2/apache2.conf] ?
    • Which user account is running Apache web server [www-data] ?
    • Which user group is running Apache web server [www-data] ?
    • Where is Apache Include configuration directory [//etc/apache2/conf.d/] ?
    • Where is PERL Intrepreter binary [/usr/bin/perl] ?
    • Do you wish to setup Communication server on this computer ([y]/n)?
    • Where to put Communication server log directory [/var/log/ocsinventory-server] ?
  • Kemudian abaikan pertanyaan berikut :
    • Checking for Apache2::SOAP PERL module… *** Warning: PERL module Apache2::SOAP is not installed ! This module is only required by OCS Inventory NG SOAP Web Service. Do you wish to continue ([y]/n] ?
  • dan lanjutan pertanyaannya :
    • Do you wish to continue ([y]/n] ?
    • Do you allow Setup renaming Communication Server Apache configuration file to ‘z-ocsinventory-server.conf’ ([y]/n) ?
    • Do you wish to setup Administration Server (Web Administration Console) on this computer ([y]/n)?
    • Do you wish to continue ([y]/n)?
    • Where to copy Administration Server static files for PHP Web Console [/usr/share/ocsinventory-reports] ?
    • Where to create writable/cache directories for deployement packages and IPDiscover [/var/lib/ocsinventory-reports] ?
  • Buat VirtualHost untuk OCSInventory
    • vim /etc/apache2/sites-available/000-default.conf
  • Tambah parameter berikut dan simpan file tersebut
    • Alias /ocsreports “/usr/share/ocsinventory-reports/ocsreports/”
      <Directory “/usr/share/ocsinventory-reports/ocsreports/”>
      Options Indexes MultiViews FollowSymLinks
      AllowOverride None
      Order allow,deny
      Allow from all
      </Directory>
  • Kemudian edit file dbconfig
    • vim /usr/share/ocsinventory-reports/ocsreports/dbconfig.inc.php
  • Tambahkan parameter berikut ini dan simpan file tersebut
    • < ? php
      $_SESSION[“SERVEUR_SQL”]=”localhost”;
      $_SESSION[“COMPTE_BASE”]=”$user”;
      $_SESSION[“PSWD_BASE”]=”$password”;
      ? >
  • Setelah itu proses instalasi melalui web, buka alamat berikut di dalam perambah anda dan ikuti proses instalasinya hingga selesai.
    • http://localhost/ocsreports/install.php
  • Update file z-ocsinventory-server.conf
    • vim conf.d/z-ocsinventory-server.conf
  • Ubah nilai parameter berikut menjadi 1, agar semua client dapat berkomunikasi dengan OCSInventory server
    • PerlSetEnv OCS_OPT_ACCEPT_TAG_UPDATE_FROM_CLIENT 1
  • Buat link symbolik dari file tersebut di directory conf-enabled dari apache configuration
    • sudo ln -s /etc/apache2/conf.d/z-ocsinventory-server.conf /etc/apache2/conf-enabled/z-ocsinventory-server.conf
  • Proses Instalasi OCSInventory telah selesai, kita harus merubah file install.php menjadi file yang lain, atau agar lebih aman file tersebut di hapus.
    • mv /usr/share/ocsinventory-reports/ocsreports/install.php /usr/share/ocsinventory-reports/ocsreports/install.php_1
  • Silahkan login OCSInventory melalui http://localhost/ocsreports dengan user admin dan kemudian ubah default passwordnya.