Senin, 26 Maret 2018

Membua user setara root

Untuk membuat user layaknya root dapat mengetikkan perntah




Penjelasan :
adduser – Perintah dasar linux untuk menambahkan user

-u 0 -o – set user menjadi dengan ID nol (0) root.

-g 0 – Set initial group dengan ID nol (0) root.

-G 0,1,2,3,4,6,10 – Set additional group ke:
0 = root
1 = bin
2 = daemon
3 = sys
4 = adm
6 = disk
10 = wheel

-M – ‘home directory’ tidak di create ke user


Jumat, 23 Maret 2018

MySQL Master to Master


Master to Master Replication adalah sebuah metode dalam database   kita dapat mengcopy isi database dari suatu server MySQL ke satu atau beberapa server MySQL yang lain.


  1. Memecah pekerjaan antara beberapa MySQL server.
    Server MySQL utama menjalankan proses bisnis, server MySQL hasil replikasi menjalankan analisa data. Dengan cara ini saat MySQL replikasi melakukan analisa data yang mungkin menguras memory dan proses tidak akan mempengaruhi proses bisnis yang dijalankan.
  2. Realtime backup 
    Hasil MySQL Replication bisa menjadi backup yang realtime. Meskipun demikian kita tetap harus membuat backup yang bersifat periodik.

Working Linux OS like CentOS 6.9
Haproxy Server address is : 192.168.67.135 
Master and Master work in two node
Master1 IP Address is: 192.168.67.139
Master2 IP Address is: 192.168.67.140
Database                     : kampus

Langkah 1 Server Master 1
Install Mysql Server
root@masterDB# yum install mysql-server mysql
Edit konfigurasi MySQL di /etc/my.cnf dan tambahkan entri berikut
[mysqld]
log-bin=mysql-bin
binlog-do-db=kampus
server-id=1
Restart MySQL
root@masterDB# /etc/init.d/mysqld restart
Buat DataBase
mysql> create database kampus;
mysql> create table pcr (
     > id int(11) primary key,
     > nama varchar(20));
Langkah selanjutnya kita akan membuat  user agar replication client bisa terkoneksi
# mysql -u root -p
Passowrd: 
mysql> GRANT REPLICATION SLAVE ON *.* TO 'harumin1'@'%' IDENTIFIED BY 'harumin1';
mysql> FLUSH PRIVILEGES;
Selanjutnya lihat status mysql server sebagai master
mysql> show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000002 |      106 | kampus       |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)




Langkah 2  Master 2
Lakukan hal yang sama diserver Master 2
[mysqld]
log-bin=mysql-bin
binlog-do-db=kampus
server-id=2
Restart MySQL
root@masterDB2# /etc/init.d/mysqld restart
Buat Databse yang serupa dengan Master1
mysql> create database kampus;
mysql> create table pcr (
     > id int(11) primary key,
     > nama varchar(20));
Buat user agar replication client bisa terkoneksi
# mysql -u root -p
Passowrd: 
mysql> GRANT REPLICATION SLAVE ON *.* TO 'harumin1'@'%' IDENTIFIED BY 'harumin1';
mysql> FLUSH PRIVILEGES;
Selanjutnya lihat status mysql server sebagai master
mysql> show master status
    -> ;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000005 |      567 | kampus       |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
Langkah berikut merupakan inti dari replication, kita akan melakukan setting bahwa server-2 merupakan Replication dari server-1. Opsi yang kita masukkan dibawah ini adalah keterangan yang ada di server 1 baik IP, log file dan posisitionnya kita sesuaikan dengan yang di server 1. Settingnya di mysql Master 2
mysql>  CHANGE MASTER TO MASTER_HOST='192.168.67.139',
    -> MASTER_USER='repl_user',
    -> MASTER_PASSWORD='secretpassword',
    -> MASTER_LOG_FILE='mysql-bin.000002',
    -> MASTER_LOG_POS=106;
Langkah berikut merupakan inti dari replication, kita akan melakukan setting bahwa server-1 merupakan Replication dari server-2. Opsi yang kita masukkan dibawah ini adalah keterangan yang ada di server 2 baik IP, log file dan posisitionnya kita sesuaikan dengan yang di server 1. Settingnya di mysql Master 1
mysql>  CHANGE MASTER TO MASTER_HOST='192.168.67.140',
    -> MASTER_USER='repl_user',
    -> MASTER_PASSWORD='secretpassword',
    -> MASTER_LOG_FILE='mysql-bin.000005',
    -> MASTER_LOG_POS=465;
Langkah terakhir lakukan di Server Master1 dan Server Master 2
mysql> SLAVE START;
mysql> show slave status \G

Konfigurasi Haproxy di haprovy.cfg --> vi /etc/haproxy.cfg

#   http://haproxy.1wt.eu/download/1.4/doc/configuration.txt
#
#---------------------------------------------------------------------

#---------------------------------------------------------------------
# Global settings
#---------------------------------------------------------------------
global
    log         127.0.0.1 local2 info
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     256
    maxsslconn  256
    user        haproxy
    group       haproxy
    daemon

defaults
      # set "mode tcp" for Layer4
    mode               tcp
    log                global
    timeout connect    10s
    timeout client     30s
    timeout server     30s

# define frontend and backend servers
frontend  mysql-in
    bind *:3306
    default_backend    backend_servers

backend backend_servers
    balance            roundrobin
    server             db01 192.168.67.137:3306 check
    server             db02 192.168.67.33:3306 check


output :

mysql> slave start
    -> ;
Query OK, 0 rows affected, 1 warning (0.00 sec)
 Uji testing insert data di Master 1. Seharusnya di Master2 akan otomatis update.

Cloud Computing


1. Defenisi Cloud Computing
Cloud computing menurut Purbo (2011) adalah sebuah model komputasi / computing, dimana sumber daya seperti processor / computing power, storage, network, dan software menjadi abstrak dan diberikan sebagai layanan di jaringan / internet menggunakan pola akses remote.  Arsitektur  secara  umum  terbagi  menjadi  3  bagian  yaitu infrastruktur, platform dan aplikasi. Setiap layanan yang diakses tidak  perlu  diinstall  pada  setiap  perangkat  end-user,  untuk dapat  melakukan  akses  terhadap  layanan  cloud  computing hanya dibutuhkan web browser atau antarmuka program. 

2. Karakteristik Cloud Computing


Menurut Mell & Grance (2011), ada lima karakteristik cloud computing yaitu :
a. On-demand self-service
Pengguna dapat mengunakan kapabilitas komputasi (server, network, storage) secara otomatis tanpa memerlukan interaksi langsung dengan service provider.

b. Broad network access
Kapabilitas tersedia melalui jaringan dan dapat diakses dengan mekanisme standar (contoh: laptop, tablet).

c. Resource pooling
Provider menyediakan pooled computing resource untuk melayani banyak pengguna dengan model multi-tenant, pengguna umumnya tidak mengetahui lokasi pasti dimana resource berada.

d. Rapid elasticity
Kapabilitas dapat bertambah maupun berkurang (scale up and down), dalam beberapa kasus secara otomatis, sehinga bisa secara cepat memenuhi permintaan pengguna.

e. Measured service
Sistem cloud dapat mengontrol dan mengukur berapa resource yang digunakan secara otomatis sehingga menyediakan transparansi bagi provider dan pengguna.

3. Model Layanan 
Ada tiga layanan cloud computing menurut Mell & Grance (2011)
a.Software as Service 
Pengguna dapat menggunakan aplikasi yang disediakan oleh provider di atas infrastruktur cloud. Aplikasi bisa diakses dari perangkat pengguna melalui web browser atau program interface. Pengguna dapat melakukan konfigurasi pada aplikasi namun tidak dapat mengontrol infrastruktur cloud (sistem operasi, hardware, network, server, storage). 

b. Platform as Service 
Pengguna dapat melakukan deployment aplikasi ke infrastuktur cloud untuk aplikasi yang dibangun dengan bahasa pemrograman, libraries, services, dan tools yang didukung oleh provider. Pengguna tidak dapat mengontrol infrastruktur cloud namun dapat melakukan konfigurasi pada deployment aplikasi.

c. Insfrastruktur as Service
Pengguna dapat menggunakan fundamental computing resource seperti processing, storage, network dimana pengguna dapat menginstal sistem operasi ataupun membangun aplikasi.

4. Deployment Model Cloud Computing
                  Menurut National  Institute  of  Standards  and Technology (Budiyanto, 2012) terdapat empat                       deployment model dari cloud computing yaitu : 
             a. Public Cloud
Public Cloud adalah layanan cloud computing yang disediakan untuk masyarakat umum
b. Private Cloud
Private cloud adalah layanan cloud computing yang disediakan untuk memenuhi kebutuhan internal dari organisasi/perusahaan.
c. Hybrid Cloud
Hybrid cloud terdiri dari kombinasi dua atau lebih infrastruktur cloud (private, community, atau public) untuk menyediakan portabilitas data dan aplikasi.

d.Community Cloud
                Layanan cloud computing yang dibangun eksklusif untuk komunitas tertentu, yang consumer-nya                     berasal dari organisasi yang mempunyai perhatian yang sama

5. Virtualisasi
Virtualisasi adalah emulasi hardware dalam sebuah software platform. Virtualisasi memungkinkan satu komputer fisik membagi resource menjadi beberapa komputer dengan menggunakan software virtualisasi. (Menken & Blokdijk 2010). Virtualisasi merupakan sebuah metode untuk membuat sesuatu menjadi lepas dari ketergantungan secara fisik. Misalnya virtual server adalah komputer, yang sebenarnya hanya berupa file di harddisk. Dengan virtualisasi, maka sebuah komputer (fisik)  bisa  menjalankan  banyak  komputer virtual sekaligus pada saat yang bersamaan.

6. Jenis Virtualisasi
a.  Full Virtualization
Cara ini adalah dengan melakukan kombinasi binary translation dan teknik eksekusi secara langsung yaitu dengan menterjemahkan kode kernel untuk menggantikan instruksi – instruksi yang tidak dapat divirtualisasikan dengan instruksi baru untuk perangkat keras virtual.Semenrara itu, instruksi yang diberikan pada tingkat user langsung dieksekusi oleh processor agar dapat proses virtualisai yang cepat. Setiap mesin virtual nantinya akan diberikan seluruh vitur yang ada pada komputer fisik seperti virtual BIOS, virtual devices dan virtual memori manajemen.

b. Paravirtualization
Paravirttualization mengacu pada  komunikasi antara sistem operasi komputer virtual dan hypervisor untuk menambah performa dan efesiensi. Paravirtualization melibatkan modifikasi pada kernel sistem operasi untuk menggantikan instruksi-instruksi yang tidak dapat divirtualisasikan dengan  hypercall yang akan berkomunikasi langsung dengan lapisan perangkat lunak virtualisasi. Hypervisor juga akan menyediakan hypercall untuk operasi kernel penting lainnya seperti manajemen memori, interrupt handling, dan time keeping.

c. Hardware-assisted Virtualization
Vendor  perangkat  keras  dengan  cepat  mendukung  teknik  virtualisasi  dan mengembangkan  fitur-fitur  baru  guna  menyederhanakan  teknik virtualisasi. Generasi pertama yang melakukan pengembangan ini adalah Intel Virtualization Technology (VT-x)  (Intel, 2008) dan AMD dengan AMD-V yang keduanya memberikan instruksi baru ke eksekusi CPU dimana memperbolehkan VMM untuk berjalan di bawah ring 0. Kemudian priveleged dan instruksi sensitifakan secara otomatis dipaksa ke hypervisorHypervisor  adalah kombinasi dari software dan hardware yang menyediakan layar abstraksi hardware fisik. Hypervisor  merupakan suatu  aplikasi  khusus  yang  berjalan  pada  suatu  server yang memungkinkan berbagai macam system operasi dapat berjalan di atasnya. Secara umum hypervisor  dibagi menjadi 2 (Buyya et al. 2013) yaitu :

1.       Hypervisor type 1
Tipikal ini berjalan langsung di atas perangkat keras server.
2.       Hypervisor type 2
Memerlukan bantuan sistem operasi lain untuk menyediakan layanan virtualisasi.

Beberapa Jenis Virtualisasi yang sering digunakan
1. OpenVZ
2. KVM
3. Xen
4. HyperV

Kamis, 22 Maret 2018

HAProxy Load Balancing pada HTTP


Load Balancing adalah teknik untuk mendistribusikan beban trafik pada dua atau lebih jalur koneksi secara seimbang, agar trafik dapat berjalan optimal, memaksimalkan throughput, memperkecil waktu tanggap dan menghindari overload pada salah satu jalur koneksi.

Install HAProxy
root@haproxy# yum -y install haproxy
Konfigurasi HAProxy 
root@haproxy# mv /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.org 
root@haproxy# nano /etc/haproxy/haproxy.cfg
#Tambahkan script dibawah ini
global
      # for logging section
    log         127.0.0.1 local2 info
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
      # max per-process number of connections
    maxconn     256
      # process' user and group
    user        haproxy
    group       haproxy
      # makes the process fork into background
    daemon

defaults
      # running mode
    mode               http
      # use global settings
    log                global
      # get HTTP request log
    option             httplog
      # timeout if backends do not reply
    timeout connect    10s
      # timeout on client side
    timeout client     30s
      # timeout on server side
    timeout server     30s

# define frontend ( set any name for "http-in" section )
frontend http-in
      # listen 80
    bind *:80
      # set default backend
    default_backend    backend_servers
      # send X-Forwarded-For header
    option             forwardfor

# define backend
backend backend_servers
      # balance with roundrobin
    balance            roundrobin
      # define backend servers
    server             www01 192.168.67.137:80 check
    server             www02 192.168.67.33:80  check
root@haproxy#  /etc/rc.d/init.d/haproxy start 
root@haproxy#  chkconfig haproxy on 
Configure Rsyslog to get logs for HAProxy
root@haproxy# vi /etc/rsyslog.conf
#Edit Seperti Sintak dibawah ini
#------------------------------------------
# line 13,14: uncomment, lne 15: add
$ModLoad imudp
$UDPServerRun 514
$AllowedSender UDP, 127.0.0.1
# line 42: change like follows
*.info;mail.none;authpriv.none;cron.none,local2.none   /var/log/messages
 local2.* 
root@haproxy# /etc/rc.d/init.d/rsyslog restart

Change httpd settings on Backends to logging X-Forwarded-For header
Pastikan bahwa anda sudah menginstall httpd/apache server
root@web1# vi /etc/httpd/conf/httpd.conf
##Tambahkan baris berikut ini
# line 497: change like follows
LogFormat "\"%{X-Forwarded-For}i\" %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
root@web1# /etc/rc.d/init.d/httpd restart
Lakukan httpd setting untuk web2, konfigurasi seperti di web1. Akses front server ( haproxy server) dari komputer client.



Untuk memastikan proses penjadwalan dari front server tekan F5 (refresh)

Selasa, 20 Maret 2018

Installasi VPS OpenVZ


Installasi VPS OpenVZ


Loginlah sebagai root dicentos anda, kemudian ketikkan perintah dibawah ini

root@hri# cd /etc/yum.repos.d/
root@hri#wget -P /etc/yum.repos.d/ https://ftp.openvz.org/openvz.repo
root@hri#rpm --import https://ftp.openvz.org/RPM-GPG-Key-OpenVZ

Install Kernel OpenVZ
root@hri# yum install vzkernel
Edit konfigurasi dengan cara nano /etc/sysctl.conf. Edit seperti dibawah ini
# On Hardware Node we generally need
# packet forwarding enabled and proxy arp disabled
net.ipv4.ip_forward = 1
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.all.forwarding = 1
net.ipv4.conf.default.proxy_arp = 0

# Enables source route verification
net.ipv4.conf.all.rp_filter = 1

# Enables the magic-sysrq key
kernel.sysrq = 1

# We do not want all our interfaces to send redirects
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0
Selanjutnya disable SElinux dengan cara  nano /etc/sysconfig/selinx
echo "SELINUX=disabled" > /etc/sysconfig/selinux
Install tools untuk memanage openvz
yum install vzctl vzquota ploop


Sampai disini kita sudah selesai melakukan installasi openvz. Untuk mengecek apakah openvz sudah sukses dikonfigurasi reboot linux, nnti akan ada loader openvz
Senin, 19 Maret 2018

VPS konek ke internet


Setiap akan melakukan penginstalan vitur dan service linux maka terminal harus bisa terkoneksi dengan internet. Biasanya jika server fisik terhubung langsung dengan jaringan LAN konek internet sudah bisa langsung akses internet. Namun vps kita set ip lokal sesuai keinginan kita tidak langsung mau konek internet. Mimin sudah coba dengan membuat routing dan sebagainya tetap gagal. gak bisa ping google. Mimin cek iptables -F, ternyata ada beberapa rule yang di reject. Oleh karena itu mimin hapus iptables agar rule iptable kosong.

root@hri# service iptables stop
root@hri# chkconfig iptables off
Cek dengan iptables -F




Silahkan masuk ke VPS anda, contoh vzctl enter 100








Finish, silahkan anda gunakan untuk installasi yang membutuhkan internet

Membuat VPS OpenVZ


Membuat VPS OpenVZ


Untuk membuat Virtual Machine kita harus memiliki template OS yang akan digunakan. Templatenya ada banyak tidak harus sama. Namun saya menggunakan tempate os centos, yang lain bisa dilihat disini. Disini saya akan menggunakan centos 6

Dowload templatenya dengan cara :
root@HRI# cd /vz/template/cache
root@HRI# wget -c https://download.openvz.org/template/precreated/centos-6-x86_64-minimal.tar.gz
Selanjutnya buat virtual machine dengan cara
root@Openvz# vzctl create 100 --ostemplate=centos-6-x86_64-minimal --ipadd=192.168.67.132 --hostname=private
output bisa dilihat degan cara vzlist -a


Untuk masuk ke node nya bisa megetikkan printah vzctl enter 100

Berikut berapa tambahan ospsi setting virtual machine
root@hri# vzctl set 10 --nameserver 8.8.8.8 --save
root@hri# vzctl set 10 --onboot=yes --save

Selasa, 30 Januari 2018

Cara mealkukan vlsm IPV6 dengan mudah dan cepat

Soal :
2001:1436:abcd::/48. Bagilah menjadi /64. Gunakan subnet ke 50,51,52,53.
Penyelesaian !

2001:1436:abcd:0000:0000:0000:0000/48
Setiap digit di IPV6 terdiri dari 4 bit bilangan binner. Jadi setiap blog hexa berjumlah 16 bit. Jumlah bit yang berwarna kuning adalah 48.

2001:1436:abcd:0000:0000:0000:0000/64
Untuk merubah menjadi /64 maka harus mundur sebanyak 16 bit, artinya ada 4 blog hexa yang dibutuhkan, seperti yang di blog berwarna hijau. Artinya blog yang berwana hijau ini yang akan berubah.

Jumlah subnet : 2^16 = 65536
Cara mencari subnet ke 50 ...



2001:1436:abcd:0000:0000:0000:0000/64 --- > subnet 0
2001:1436:abcd:0032:0000:0000:0000/64 ---> subnet 50
2001:1436:abcd:0033:0000:0000:0000/64 ---> subnet 51
2001:1436:abcd:0034:0000:0000:0000/64 ---> subnet 52
2001:1436:abcd:0035:0000:0000:0000/64 ---> subnet 53