Blog

  • Siapa Saja User Yang Menjalankan CRON?

    Mencari satu persatu user yang menjalankan crontab pada sistem linux cukup merepotkan, tapi bisa dicoba baris berikut pada terminal/console :

    for user in $(cut -f1 -d: /etc/passwd); do echo $user; crontab -u $user -l; done

    perintah tsb diatas akan menampilkan semua user yang menjalankan crontab.

    (http://stackoverflow.com/questions/134906/how-do-i-list-all-cron-jobs-for-all-users)

  • Windows Multi Point Server 2012 didalam proxmox

    Menjalankan Virtual Desktop didalam WMS 2012 yang dijalankan sebagai host pada proxmox akan menyatakan Hyper-V ‘disable’ dan proses tidak dapat dilanjutkan, aktifkan hyper-v dengan menjalankan perintah berikut pada WMS 2012 :

    Dism /online /enable-feature /featurename:Microsoft-Hyper-V
    Dism /online /enable-feature /featurename:Microsoft-Hyper-V-Management-Clients

    This installs the Hyer-V roles without the CPU check. I do not believe that it removes the VT requirements, but in my case, the Core i7 has VT and Hyper-V is working. It is also worth noting that I have removed the args: -cpu host flag from the /etc/qemu-server/<VMID>.conf file and it still works.

     

    (https://forum.proxmox.com/threads/hyper-v-in-windows-guest-under-proxmox.7644/)

  • Import a .SQL script using OSQL

    untuk hasil export script .sql MS SQL Server yang berukuran besar dan tidak dapat diproses import oleh sql management studio, dapat menggunakan osql untuk mengimport nya :

    osql -U YourUserName -P YourPassword -S ServerName -d DatabaseName -n-1 -i DriveLetter:SQLFileNameAndPath.sql -o DriveLetter:LogFile.txt

    Switches
    -U: login ID for the specified server
    -P: password for the login ID
    -S: server name
    -d: database upon which the script will be executed
    -n: removes numbering and the prompt symbol (>) from the output file
    -i: the .SQL file name (including drive letter)
    -o: an output file that details how the script executed (if at all)

    (http://metrix.fcny.org/wiki/display/dev/How+to+execute+a+.SQL+script+using+OSQL)

  • Catatan Instalasi SPSE v3.6sp3 dan v4.1.0

    Biar tidak lupa, hasil .bash_history yang telah dirapikan, tuts detail versi sebelum nya silakan merujuk ke Instalasi SPSE 3.6 SP2 dan SPSE 4.0.

    yum update
    yum -y install psmisc httpd-devel gcc-c++ pcre-devel libxml2-devel httpd postgresql-server make mod_security mod_evasive unzip rsync lynx elinks vim tcptraceroute nmap htop lshw iperf httperf pktstat
    yum install nano
    cd /usr/local/src
    unzip SourceSPSE.zip
    cd SourceSPSE

    rpm -ivh epel-release-6-8.noarch.rpm
    unzip apache2-centos.zip
    unzip jce_policy-8.zip
    tar -zxvf jdk-8u60-linux-x64.tar.gzip
    mv jdk1.8.0_60 jdk1.8.0
    mv UnlimitedJCEPolicyJDK8/* ../jdk1.8.0/jre/lib/security/
    cat settingapache.txt | cat >> /etc/httpd/conf/httpd.conf

    unzip play-1.3.3-prod.zip
    mv play-1.3.3-prod ../play-1.3.3

    mkdir -p /home/file/file_latihan
    mkdir -p /home/file/file_prod
    mkdir -p /home/appserv

    mv epns-lat-3.6sp3 /home/appserv/
    mv spse-lat-4.1 /home/appserv/

    /etc/init.d/postgresql initdb
    /etc/init.d/postgresql start
    chkconfig postgresql on
    chkconfig httpd on

    /etc/init.d/iptables stop
    chkconfig iptables off
    sed -i “s/enforcing/disabled/g” /etc/selinux/config

    su – postgres
    psql
    create user epns password ‘epns’;
    \q
    createdb -U postgres -O epns epns_latihan;
    psql -U postgres -d epns_latihan -f /usr/local/src/SourceSPSE/epns_lat_barsel.sql
    exit

    nano /var/lib/pgsql/data/pg_hba.conf
    /etc/init.d/postgresql restart

    nano /etc/hosts
    nano /etc/httpd/conf/httpd.conf
    nano /home/appserv/epns-lat-3.6sp3/spse3
    nano /home/appserv/epns-lat-3.6sp3/webapp/WEB-INF/classes/application.properties
    nano /home/appserv/spse-lat-4.1/spse4
    nano /home/appserv/spse-lat-4.1/webapp/conf/application.conf
    chmod 755 /home/appserv/epns-lat-3.6sp3/spse3
    chmod 755 /home/appserv/spse-lat-4.1/spse4
    /etc/init.d/httpd restart
    cd /home/appserv/epns-lat-3.6sp3/
    ./spse3 start

    cd /home/appserv/spse-lat-4.1/
    ./spse4 start

    catatan tambahan :

    /usr/sbin/setsebool httpd_can_network_connect true
    service httpd restart

    grep -rl ‘SecDefaultAction’ /etc/httpd/*
    nano /etc/httpd/conf/httpd.conf
    service httpd restart

  • Server DNS (Resolver/Cache/Proxy) Menggunakan DNSCrypt dan Unbound

    Sejak diberlakukan larangan menggunakan dns luar oleh pihak kominfo, tidak banyak pilihan server public dns yang cukup kencang dan memiliki filtering (porno, judi dsb) yang mumpuni. Tuts kali ini adalah catatan membuat resolver/caching/proxy dns menggunakan dnscrypt dan unbound untuk mengarahkan dns agar menggunakan public dns dari pihak OpenDNS.

    OS yang digunakan adalah Ubuntu 14.10 64-bit (sesuaikan command-nya bila anda menggunakan distro debian/centos), let’s start :

    A. Instalasi DNSCrypt :

    1. apt-get update
    2. apt-get install build-essential
    3. cd /usr/local/src
    4. wget http://download.libsodium.org/libsodium/releases/LATEST.tar.gz -O – | tar -xz
    5. cd libsodium-1.0.10/ #versi saat catatan ini dibuat
    6. ./configure
    7. make
    8. make install
    9. cd ..
    10. rm -rf libsodium-1.0.10
    11. wget http://download.dnscrypt.org/dnscrypt-proxy/dnscrypt-proxy-1.6.1.tar.gz -O – | tar -xz
    12. cd dnscrypt-proxy-1.6.1/ #versi saat catatan ini dibuat
    13. ./configure
    14. make
    15. make install
    16. cd ..
    17. rm -rf dnscrypt-proxy-1.6.1*
    18. nano /etc/rc.local
    /usr/local/sbin/dnscrypt-proxy -R cisco -a 127.0.0.1:5353 –daemonize
    exit 0
    ctrl+x (keluar dan simpan)

    Sampai langkah ini instalasi DNSCrypt selesai, lanjutkan ke instalasi Unbound.

    B. Instalasi Unbound DNS Resolver :

    1. apt-get install unbound
    2. mv /etc/unbound/unbound.conf /etc/unbound/unbound.conf.default
    3. nano /etc/unbound/unbound.conf

    server:
    auto-trust-anchor-file: “/var/lib/unbound/root.key”
    logfile: “/var/log/unbound.log”
    log-time-ascii: yes
    module-config: “iterator”
    do-not-query-localhost: no
    #ip server-dns ini
    interface: 127.0.0.1
    interface: 192.168.100.250
    #network yang diijinkan menggunakan dns ini
    access-control: 127.0.0.1 allow
    access-control: 192.168.0.0/16 allow
    access-control: 10.0.0.0/24 allow
    #lpse diarahkan ke ip local spse
    local-data: “lpse.baritoselatankab.go.id. 10800 IN A 192.168.100.194”
    forward-zone:
    name: “.”
    forward-addr: 127.0.0.1@5353
    forward-first: no
    remote-control:
    control-enable: no

    4. nano /etc/resolv.conf
    nameserver 127.0.0.1
    5. reboot

    Setelah reboot, lakukan pemeriksaan ulang terhadap konfigurasi sebagai berikut :
    1. netstat -tulpn | grep 53
    –apakah ada port 53 (unbound) dan 5353 (dnscrypt)?
    2. ping google.com
    –apakah reply?
    bila kedua langkah diatas sukses, ujicoba dari client dengan mengarahkan dns nya ke ip server-dns ini.

    Selamat Mencoba! DWYOR…

  • SPSE Master-Slave Streaming Replication #2

    Melanjutkan catatan PostgreSQL 8.4 Upgrade ke 9.5 (SPSE Master-Slave Streaming Replication #1), pada langkah ini kita mulai mengaktifkan fitur hot_standy dan streaming replication pada Postgresql 9.5.

    Persiapan awal adalah menyiapkan 2 server yang sudah terinstall Postgresql 9.5, sudah dikonfigurasi dan berjalan dengan baik seperti petunjuk SPSE Master-Slave Streaming Replication #1.

    I. Konfigurasi Master Server

    Master-server adalah server utama yang diakses oleh pengguna, database dari server ini akan direplikasi dan dikirimkan secara realtime ke Slave-server

    1. nano /var/lib/pgsql/9.5/data/postgresql.conf
    cari dan sesuaikan menjadi baris berikut :
    listen_addresses = ‘localhost,192.168.100.194’
    ##sesuaikan 192.168.100.194 dengan ip master-server anda
    wal_level = hot_standby
    max_wal_senders = 1
    wal_keep_segments = 50
    2. nano /var/lib/pgsql/9.5/data/pg_hba.conf
    tambahkan pada akhir file baris berikut :
    host replication postgres 192.168.100.195/32 trust
    ##sesuaikan 192.168.100.195 dengan ip slave-server anda
    3. service postgresql-9.5 restart
    4. persiapan data awal yang akan direplikasi dan dicopy ke slave-server :
    su – postgres
    psql -c “SELECT pg_start_backup(‘replbackup’);”
    tar cfP /tmp/db_file_backup.tar /var/lib/pgsql/9.5/data
    psql -c “SELECT pg_stop_backup();”
    exit
    5. scp /tmp/db_file_backup.tar root@192.168.100.195:/tmp/

    Sampai pada langkah ini, persiapan replikasi di master-server sudah selesai.

    II. Konfigurasi Slave Server

    Slave-server adalah server cadangan dan tidak diakses langsung oleh pengguna, database dari Master-server direplikasi secara realtime ke Slave-server ini.

    1. service postgresql-9.5 stop
    2. mv /var/lib/pgsql/9.5/data/ /var/lib/pgsql/9.5/data.old
    3. tar xvfP /tmp/db_file_backup.tar
    4. rm -f /var/lib/pgsql/9.5/data/postmaster.pid
    5. nano /var/lib/pgsql/9.5/data/postgresql.conf
    cari dan sesuaikan menjadi baris berikut :
    hot_standby = on
    6. cp /usr/pgsql-9.5/share/recovery.conf.sample /var/lib/pgsql/9.5/data/recovery.conf
    7. nano /var/lib/pgsql/9.5/data/recovery.conf
    cari dan sesuaikan menjadi baris berikut :
    standby_mode = on
    primary_conninfo = ‘host=192.168.100.194 port=5432’
    #sesuaikan ip 192.168.100.194 dengan ip master-server anda
    8. chown postgres.postgres /var/lib/pgsql/9.5/data/recovery.conf
    9. service postgresql-9.5 start

    Sampai sini selesai sudah catatan Master-Slave Streaming Replication #2, periksa log untuk memastikan proses replication berjalan sukses :

    tail -f /var/lib/pgsql/9.5/data/pg_log/postgresql-[hari].log
    —database system is ready to accept read only connections—

    pengujian replikasi sudah berjalan dengan baik (update 21/04/206) :
    1. di master-server :
    su – postgres
    psql
    CREATE TABLE rep_test (test varchar(40));
    INSERT INTO rep_test VALUES (‘data satu’);
    INSERT INTO rep_test VALUES (‘data dua’);
    INSERT INTO rep_test VALUES (‘lalala’);
    INSERT INTO rep_test VALUES (‘hello there’);
    INSERT INTO rep_test VALUES (‘blahblah’);
    \q
    exit

    2. di slave-server :
    su – postgres
    psql
    SELECT * FROM rep_test;
    #akan tampil data seperti yang diisikan ke database master-server

    Database slave-server sudah siap, lanjutkan dengan melakukan instalasi SPSE di slave-server dengan mengacu pada tuts Instalasi SPSE 3.6 SP2 dan SPSE 4.0 sehingga jika diperlukan slave-server siap diaktifkan mengganti tugas master-server.

    Untuk full-duplikasi SPSE, juga diperlukan folder /home/file/file_production dilakukan rsync berkala (misalnya setiap 10 menit) sehingga konsistensi antara master-server dan slave-server terjaga.

    Selamat Mencoba D.W.Y.O.R…

    (referensi : https://opensourcedbms.com/dbms/setup-replication-with-postgres-9-2-on-centos-6redhat-el6fedora/, https://www.digitalocean.com/community/tutorials/how-to-set-up-master-slave-replication-on-postgresql-on-an-ubuntu-12-04-vps)

  • PostgreSQL 8.4 Upgrade ke 9.5 (SPSE Master-Slave Streaming Replication #1)

    Catatan ini akan dibuat secara bertahap dengan tujuan akhir ‘server SPSE yang bisa berjalan dengan sistem master-slave secara streaming’, sehingga bila server-master mengalami kegagalan perangkat dan tidak dapat difungsikan, dengan sedikit mengubah konfigurasi pada server-slave akan langsung menjalankan tugas menggantikan server-master.

    Fitur streaming replication (dalam hal ini kita akan menggunakan hot_standby) hanya ada pada PostgreSQL 8.5 Alpha3 keatas, seperti dilansir oleh https://wiki.postgresql.org/wiki/Hot_Standby :
    “Hot Standby is the name for the capability to run queries on a database that is currently performing archive recovery. Log Shipping replication allows you to create one or more standby nodes that are replicas of the primary node (or master node). Standby nodes can then be used for read-only query access.
    Hot Standby was developed for inclusion in PostgreSQL 9.0 by Simon Riggs of 2ndQuadrant via public sponsorship.
    The feature was committed in PostgreSQL 8.5 Alpha3 and is available in PostgreSQL 9.0 and above. See the Hot Standby docs for full details.
    This feature augments streaming replication feature that was introduced in PostgreSQL 9.1, though it does not rely on it and has minimal interaction with it.”

    Server SPSE menggunakan Centos 6 dan Postgresql 8.4, maka dilakukan upgrade database ke PostgreSQL 9.5, versi terbaru (stable) saat catatan ini ditulis. Postgresql 9.5 bisa di install berdampingan dengan Postgresql 8.4 tanpa saling mengganggu, proses instalasi ini dijalankan tanpa terlebih dahulu me-remove Postgresql 8.4 yang sedang berjalan.

    1. yum update
    2. yum upgrade
    3. netstat -tulpn | grep postmaster
    (127.0.0.1:5432 – ini adalah postgresql yang sedang berjalan/digunakan)
    4. rpm -ivh https://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-6-x86_64/pgdg-centos95-9.5-2.noarch.rpm
    5. yum install postgresql95 postgresql95-server postgresql95-devel postgresql95-contrib
    6. service postgresql-9.5 initdb
    7. lakukan proses backup database dari Postgresql 8.4 :
    su – postgres
    psql -l (misal databasenya = epns-prod)
    pg_dump -U postgres epns-prod -f epns-prod.sql (akan terbentuk file /var/lib/pgsql/epns-prod.sql)
    8. nano /var/lib/pgsql/9.5/data/pg_hba.conf
    local all all trust
    host all all 127.0.0.1/32 trust
    host all all ::1/128 trust
    9. service postgresql stop
    service postgresql-9.5 start
    10. chkconfig postgresql off
    chkconfig postgresql-9.5 on
    11. su – postgres
    psql
    CREATE USER epns password ‘epns’;
    \q
    createdb -U postgres -O epns epns-prod;
    psql -U postgres -d epns-prod -f epns-prod.sql
    exit
    12. service postgresql-9.5 restart

    Sampai sini proses upgrade dan pemindahan database ke Postgresql 9.5 sudah selesai, silakan melakukan check dan re-check kembali terhadap server SPSE anda, apakah sudah bisa berjalan dengan normal? Bila tidak ada masalah , lanjutkan dengan uninstall Postgresql 8.4 :

    13. yum remove postgresql postgresql-server

    Siap untuk melanjutkan ke SPSE Master-Slave Streaming Replication #2?…tunggu tanggal main nya!

  • Pengaturan Beda Bandwith IIX dan INTL Mikrotik

    Pengaturan beda bandwith untuk mikrotik, contoh nya seperti dibawah ini (sesuaikan dengan kondisi jaringan anda) :

    1. Persiapan NICE.RSC

    /system scheduler
    add comment=update-nice interval=1w name=update-nice-rsc on-event=”:if ([:len \
    [/file find name=nice.rsc]] > 0) do={ /file remove nice.rsc }; /tool fetch\
    \_address=ixp.mikrotik.co.id src-path=/download/nice.rsc mode=http; /impor\
    t nice.rsc” policy=\
    ftp,reboot,read,write,policy,test,password,sniff,sensitive start-date=\
    jan/01/1970 start-time=06:00:00

    2. Persiapan Mangle

    /ip firewall mangle
    add action=mark-connection chain=forward dst-address-list=nice \
    new-connection-mark=conn-IIX-04 src-address=192.168.12.0/24
    add action=mark-connection chain=forward dst-address-list=!nice \
    new-connection-mark=conn-INT-04 src-address=192.168.12.0/24
    add action=mark-packet chain=forward connection-mark=conn-IIX-04 \
    new-packet-mark=IIX-04
    add action=mark-packet chain=forward connection-mark=conn-INT-04 \
    new-packet-mark=INT-04

    3. Persiapan Queue

    /queue tree
    add burst-limit=21M burst-threshold=1M burst-time=1m30s comment=”Main BW” \
    max-limit=14M name=Total-Download parent=bridge1_dmz queue=default
    add burst-limit=21M burst-threshold=1M burst-time=1m30s max-limit=14M name=\
    Download-IIX parent=Total-Download queue=default
    add burst-limit=21M burst-threshold=1M burst-time=1m30s max-limit=14M name=\
    Download-INT parent=Total-Download queue=default

    add name=lokal-041 \
    packet-mark=IIX-04 parent=Download-IIX queue=default
    add burst-limit=4M burst-threshold=512k burst-time=20s \
    max-limit=2M name=lokal-042 \
    packet-mark=INT-04 parent=Download-INT queue=default

  • Cara Reset Konfigurasi Cluster Proxmox

    Create cluster pada proxmox bila dilakukan dengan perintah ‘cman’ selalu mensyaratkan nodes harus dalam kondisi kosong (tidak ada guest didalamnya), pada langkah-langkah berikut ini proses pemisahan (reset konfigurasi cluster) dan create ulang cluster pada proxmox dapat dilakukan tanpa mengosongkan dan mengganggu-gugat guest pada master maupun nodes :

    Proses reset & create ulang cluster :
    1. cp -a /etc/pve /root/pve_backup
    2. /etc/init.d/pve-cluster stop
    3. umount /etc/pve
    4. /etc/init.d/cman stop
    5. rm /etc/cluster/cluster.conf
    rm -rf /var/lib/pve-cluster/*
    6. /etc/init.d/pve-cluster start
    7. pvecm create newcluster

    Proses restore/pengembalian host/guest pada masing-masing master/nodes cluster :
    8. cp /root/pve_backup/*.cfg /etc/pve/
    cp /root/pve_backup/qemu-server/*.conf /etc/pve/qemu-server/
    cp /root/pve_backup/openvz/* /etc/pve/openvz/

    catatan tambahan :

    9. untuk proxmox v5.2 diperlukan juga :

    cp /root/pve_backup/lxc/* /etc/pve/lxc/

    Bila masih ada nodes yang sudah dihapus pada proxmox nodes tree, dapat dihapus dengan perintah :
    10. rm -rf /etc/pve/nodes/HOSTNAME

    Langkah diatas sudah diujicobakan dan sukses pada proxmox v3.2/v3.4, selamat mencoba & yakinkan anda tahu apa yang sedang dilakukan D.W.Y.O.R !

    (sumber : https://elkano.org/blog/how-to-reset-cluster-configuration-in-proxmox-2/)

  • Memperbaiki GRUB Problem Upgrade Proxmox 3.2 ke 3.4

    Melakukan upgrading system adalah hal biasa bagi sysadmin, tapi hari ini luar biasa ketika melakukan upgrade salah satu server proxmox dari versi 3.2 ke 3.4, karena setelah langkah ‘apt-get update && apt-get dist-upgrade’ lancar, langkah selanjut adalah ‘reboot’ dan tadaaaa!…muncul pesan :

    Welcome to GRUB!
    error: unknown filesystem
    grub rescue>

    alamak!..ternyata GRUB nya gagal mencari posisi boot partition, google kesana-sini…lalu mencoba beberapa petunjuk, akhirnya bisa disusun langkah fix nya sebagai berikut :

    1. persiapkan live-usb (saya menggunakan ubuntu 14.04 desktop x64 yang diburn menggunakan rufus ke dalam flashdisk sony 8gb, architecture pakai x64 biar sama dengan proxmox x64)
    2. boot server ke usb tsb, jalankan live ubuntu tanpa melakukan instalasi, buka terminal
    3. langkah berikut (disadur dari http://blog.michaelboman.org/2013/08/proxmox-ve-upgrade-fails-solution.html) :

    $ sudo -s
    # mkdir /mnt/pve
    # mount /dev/pve/root /mnt/pve
    then we mount the supporting devices so we get a complete system
    # mount /dev/pve/data /mnt/pve/var/lib/vz
    # mount /dev/sda1 /mnt/pve/boot
    # mount –bind /dev /mnt/pve/dev
    # mount –bind /proc /mnt/pve/proc
    # mount –bind /sys /mnt/pve/sys
    Then we go into the environment using chroot (change root)
    # chroot /mnt/pve
    # source /etc/profile
    Ok, time to fix things. First I updated /etc/default/grub set

    GRUB_DISABLE_LINUX_UUID=true

    then I made a backup and re-generated the grub configuration file
    # cp /boot/grub/grub.cfg /root/grub.cfg.bak
    # grub-mkconfig -o /boot/grub/grub.cfg
    and finally I installed the grub boot loader:
    # grub-install ‘(hd0)’
    Exit out of the chroot’ed environment (^D or # exit ) and reboot the system.

    catatan : sesuaikan posisi hdd, contoh ini menggunakan /dev/sda1 dan hd0.

    Demikian pelajaran setelah 12 jam dikerjai proxmox upgrade, D.W.Y.O.R !