Pacemaker Alert via email

Lagi-lagi tentang pacemaker, Anda ingin menerima alert via email jika terjadi sesuatu dengan Cluster Anda? Anda cukup menjalankan langkah berikut di semua node cluster Anda.

# crm_mon --daemonize --mail-to user@example.com &

Pasang di /etc/rc.local agar ketika server direstart, perintah diatas akan dijalankan secara otomatis.

Hasilnya Anda akan menerima email alert seperti berikut:

Status OK

Cluster notification
====

Completed operation start for resource r0:0 on node1

Details:
operation status: (0) complete
script returned: (0) ok
expected return value: (0) ok

Salah satu resource failed

Cluster notification
====

Operation start for resource WebSite on node1 failed: Timed Out

Details:
operation status: (2) Timed Out

Apache tidak bisa start di node cluster Pacemaker

Jika Anda pengguna cluster pacemaker, dan menemukan error seperti dibawah ini saat resource apache2 tidak mau start dan isi dari error log tidak menunjukkan clue yang berarti :

Failed actions:
    WebSite_start_0 (node=node1, call=24, rc=-2, status=Timed Out): unknown exec error

Anda bisa mencoba langkah berikut, langkah ini sudah saya coba dan menyelesaikan masalah saya.

# crm status
============
Last updated: Fri Sep 13 11:38:17 2013
Last change: Fri Sep 13 11:38:02 2013 via crm_attribute on node1
Stack: openais
Current DC: node2 - partition with quorum
Version: 1.1.7-ee0730e13d124c3d58f00016c3376a1de5323cff
2 Nodes configured, 2 expected votes
7 Resources configured.
============

Online: [ node2 node1 ]

 Resource Group: WebServer
     ClusterIP  (ocf::heartbeat:IPaddr2):       Started node1
     WebFS      (ocf::heartbeat:Filesystem):    Started node1
     Links      (heartbeat:drbdlinks):  Started node1
     DBase      (ocf::heartbeat:mysql): Started node1
     WebSite    (ocf::heartbeat:apache):        Stopped
 Master/Slave Set: ms_r0 [r0]
     Masters: [ node1 ]
     Slaves: [ node2 ]

Failed actions:
    WebSite_start_0 (node=node1, call=24, rc=-2, status=Timed Out): unknown exec error

Tambahkan baris berikut di apache2.conf (saya menggunakan Debian 7.1)

ExtendedStatus On

<Location /server-status>
     SetHandler server-status
     Order deny,allow
     Deny from all
     Allow from 127.0.0.1
</Location>

Kemudian restart resource apachenya.

# crm resource restart WebSite

Membuat virtual machine di Virtualbox menggunakan Command Line

Dalam tulisan ini, Host OS menggunakan Debian wheezy, kemudian diinstall virtualbox versi 4.1.18 dan Extension_Pack-4.1.8.

Untuk Guest OS nya diberi nama “wheezy” yang akan di-install Debian Wheezy netinst menggunakan berkas iso “debian-7.1.0-i386-netinst.iso” yang sebelumnya sudah diunggah ke “/home/vbox” yang merupakan home folder dari user “vbox” selaku user virtualbox.

Install virtualbox

# apt-get update
# apt-get install virtualbox

Buat user vbox

# useradd -m vbox -G vboxusers,cdrom
# passwd vbox
# su - vbox

Mulai tahapan pembuatan virtual machine-nya.

$ VBoxManage createvm --name wheezy --ostype Debian --register
Virtual machine 'wheezy' is created and registered.
UUID: e0e4a4fe-5ae5-4602-bb16-459f22424a8b
Settings file: '/home/vbox/VirtualBox VMs/wheezy/wheezy.vbox'

Check interface yang kita gunakan, karena kita akan menggunakan interface tersebut nantinya.

$ /sbin/ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:0c:29:86:8e:e5
          inet addr:10.xxx.xxx.xxx  Bcast:10.xxx.xxx.xxx  Mask:255.255.255.0
$ VBoxManage modifyvm "wheezy" --memory 2048 --acpi on --boot1 dvd --nic1 bridged --bridgeadapter1 eth0

Periksa konfigurasi yang barusan kita lakukan

$ VBoxManage showvminfo wheezy | grep "Memory size"
Memory size:     2048MB
$ VBoxManage showvminfo wheezy | grep "NIC 1"
NIC 1:  MAC: 080027D85B5D, Attachment: Bridged Interface 'eth0', Cable connected: on, Trace: off (file: none), Type: 82540EM, Reported speed: 0 Mbps, Boot priority: 0, Promisc Policy: deny

Proses pembuatan harddisk, dengan format VDI (bisa juga diset ke VMDK atau VHD)

$ VBoxManage createhd --filename ~/VirtualBox VMs/wheezy/wheezy.vdi --size 10000 --format VDI
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Disk image created. UUID: 252a25f2-0327-42e1-b117-ddad42da1b09

Pasang disk yang tadi kita buat

$ VBoxManage storagectl wheezy --name "SATA Controller" --add sata --controller IntelAhci
$ VBoxManage storageattach "wheezy" --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium ~/VirtualBox VMs/wheezy/wheezy.vdi

Pasang berkas iso debian-7.1.0-i386-netinst.iso

$ VBoxManage storagectl wheezy --name "IDE Controller" --add ide --controller PIIX4
$ VBoxManage storageattach wheezy --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium ~/debian-7.1.0-i386-netinst.iso
$ VBoxManage showvminfo wheezy | grep "IDE Controller"
Storage Controller Name (1):            IDE Controller
IDE Controller (1, 0): /home/vbox/debian-7.1.0-i386-netinst.iso (UUID: c0d2679e-1fd5-4e57-8967-c68218c00c7e)

Meng-enable remote desktop, untuk kemudahan dalam proses instalasi Guest OS nantinya.

$ VBoxManage modifyvm wheezy --vrde on
$ VBoxManage modifyvm wheezy --vrdemulticon on --vrdeport 3389
$ VBoxManage showvminfo wheezy | grep "VRDE"
VRDE:            enabled (Address 0.0.0.0, Ports 3389, MultiConn: on, ReuseSingleConn: off, Authentication type: null)
VRDE Connection:    not active

Start vm yang sudah dibuat

$ VBoxHeadless --startvm wheezy
Oracle VM VirtualBox Headless Interface 4.1.18_Debian
(C) 2008-2013 Oracle Corporation
All rights reserved.

VRDE server is listening on port 3389.

Muncul keterangan bahwa VRDE sudah listen di port 3389, artinya saatnya kita lakukan remote desktop menggunakan remote dektop fasilitas dari Windows.

vrde_virtualbox

Sekian dan semoga bermanfaat.

Langkah-langkah downgrade versi PHP di Debian Wheezy

Ceritanya mau mindahin aplikasi dari server sebelah ke Debian Wheezy, dan developernya minta di downgrade PHP nya dari 5.4 ke 5.3, alasannya musti ngedit code & framework kalau tetep dipaksain menggunakan PHP 5.4.

Google sebentar, nemu link dan cobain, Alhamdulillah berhasil.

# vi /etc/apt/sources.list

deb http://ftp.us.debian.org/debian/ squeeze main contrib non-free
deb-src http://ftp.us.debian.org/debian/ squeeze main contrib non-free

Periksa php dan module versi 5.4 yang terpasang :

# dpkg -l | grep php| awk '{print $2}' |tr "n" " "

Sunting berkas /etc/apt/preferences.d/preferences dan sesuaikan dengan kebutuhan Anda, silahkan dibuat jika berkas tersebut tidak ada.

# vi /etc/apt/preferences.d/preferences

Package: php5*
Pin: release a=oldstable
Pin-Priority: 700

Package: libapache2-mod-php5
Pin: release a=oldstable
Pin-Priority: 700

Package: php-pear
Pin: release a=oldstable
Pin-Priority: 700

Package: *
Pin: release a=stable
Pin-Priority: 600

Hapus paket-paket PHP versi 5.4 beserta modul-modulnya.

# aptitude remove `dpkg -l | grep php| awk '{print $2}' |tr "n" " "`

Install paket  PHP 5.3 beserta modul-modul yang dibutuhkan.

# apt-get update
# apt-get -t oldstable install `dpkg -l | grep php5| awk '{print $2}' |tr "n" " "`

Install juga paket-paket tambahannya

# apt-get install php-pear uw-mailutils libgd-tools liblcms-utils libmagick core3-extra libmcrypt-dev mcrypt memcached

Periksa list paket PHP dan modul-modul yang terinstall.

# dpkg -l | grep php

Membuat zone di Solaris 11

Ini adalah contoh cara membuat zone di Solaris 11 dimana pada proses pembuatannya dibutuhkan adanya repositori, pembuatan repositori sendiri sudah dibahas di tulisan sebelumnya.

Persiapkan satu mountpoint untuk lokasi dimana zone tersebut akan di-install, kemudian buat satu virtual nic yang nantinya akan di-assign kedalam zone tersebut.

# zfs create -o mountpoint=/zones rpool/zones
# zfs list rpool/zones
# dladm create-vnic -l net0 vnic1

Buat zone baru (zone1)

# zonecfg -z zone1
# zonecfg:zone1> create
# create: Using system default template 'SYSdefault'
# zonecfg:zone1> set zonepath=/zones/zone1
# zonecfg:zone1> add net
# zonecfg:zone1:net> set physical=vnic1
# zonecfg:zone1:net> end
# zonecfg:zone1> exit

Periksa status zone1 yang barusan dibuat, statusnya seharusnya masih “configured”

# zoneadm list -cv
  ID NAME             STATUS     PATH                           BRAND    IP
   0 global           running    /                              solaris  shared
   - zone1            configured /zones/zone1                   solaris  excl

Buat system profile untuk zone1, kemudian install…. jangan lupa untuk mengarahkan ke profile yang sudah kita buat.

# sysconfig create-profile -o zone1.profile.xml
# zoneadm -z zone1 install -c /root/zone1.profile.xml
The following ZFS file system(s) have been created:
    rpool/zones/zone1
Progress being logged to /var/log/zones/zoneadm.20130719T022204Z.zone1.install
       Image: Preparing at /zones/zone1/root.

 AI Manifest: /tmp/manifest.xml.qQaqej
  SC Profile: /root/zone1.profile.xml
    Zonename: zone1
Installation: Starting ...

              Creating IPS image
Startup linked: 1/1 done
              Installing packages from:
                  solaris
                      origin:  http://10.87.17.250/
                      origin:  http://localhost:1008/solaris/bbb612b800c4a05fe489e22179376fa4cb0b1970/
                      origin:  http://localhost:1008/solaris/d360067de7dce7593b27cca30a0eef0cbb0f4039/
DOWNLOAD                                PKGS         FILES    XFER (MB)   SPEED
Completed                            183/183   33556/33556  222.2/222.2  261k/s

PHASE                                          ITEMS
Installing new actions                   46825/46825
Updating package state database                 Done
Updating image state                            Done
Creating fast lookup database                   Done
Installation: Succeeded
        Note: Man pages can be obtained by installing pkg:/system/manual
 done.
        Done: Installation completed in 1403.715 seconds.
  Next Steps: Boot the zone, then log into the zone console (zlogin -C)
              to complete the configuration process.
Log saved in non-global zone as /zones/zone1/root/var/log/zones/zoneadm.20130719T022204Z.zone1.install

Nyalakan zone1 dan periksa kembali status zone1, seharusnya statusnya adalah “running”

# zoneadm -z zone1 boot
# zoneadm list -cv
  ID NAME             STATUS     PATH                           BRAND    IP
   0 global           running    /                              solaris  shared
   1 zone1            running    /zones/zone1                   solaris  excl

Proses pembuatan zonenya sudah selesai 🙂

Membuat Repositori Lokal Solaris 11

Seperti diketahui bahwa Oracle 11 rilis dengan salah satu fitur baru yaitu “IPS repository” dimana IPS ini  memungkinkan kita dengan mudah memasang paket, memperbarui paket, serta melakukan patching terhadap aplikasi serta paket yang ada. IPS ini sangat fleksibel karena dapat disiapkan dalam bentuk antarmuka file (NFS) atau antarmuka HTTP.

Repositori ini tersedia online di Oracle buat Anda yang punya koneksi tingkat dewa, jika tidak; berarti kita butuh repositori lokal.

IPS mendukung dua jenis repositori: repositori “origin” dan repositori “mirror”. Untuk alasan performance dan tujuan keamanan, repository “origin” adalah pilihan yang harus dipilih.

Repositori origin berisi semua metadata (seperti katalog, manifes, dan indeks pencarian) dan isi (file) untuk satu atau lebih paket. Sebuah repositori cermin hanya berisi paket konten (file). Klien yang menginstal dan memperbarui paket dari repositori cermin masih harus men-download metadata dari repositori “origin”.

Cukuplah sudah basa-basinya, langsung saja kita lakukan proses pembuatan repositori lokal nya.

Disini saya menggunakan disk tersendiri (c8t1d0) yang saya dedikasikan hanya untuk menampung paket-paket  repositori.

# echo | format
Searching for disks...done

AVAILABLE DISK SELECTIONS:
       0. c8t0d0 <VMware,-VMware Virtual S-1.0-20.00GB>
          /pci@0,0/pci15ad,1976@10/sd@0,0
       1. c8t1d0 <VMware,-VMware Virtual S-1.0 cyl 2608 alt 2 hd 255 sec 63>
          /pci@0,0/pci15ad,1976@10/sd@1,0
Specify disk (enter its number): Specify disk (enter its number):

Buat zfs pool tersendiri (ipsrepo) menggunakan disk yang tadi sudah ditentukan.

# zpool create ipspool c8t1d0
# zpool status ipspool
  pool: ipspool
 state: ONLINE
  scan: none requested
config:

        NAME      STATE     READ WRITE CKSUM
        ipspool   ONLINE       0     0     0
          c8t1d0  ONLINE       0     0     0

errors: No known data errors

Buat mountpoint repo pada pool ipsrepo, kemudian periksa menggunakan “df -h”.

# zfs create -o mountpoint=/repo ipspool/repo
# df -h
Filesystem             Size   Used  Available Capacity  Mounted on
...
ipspool                 20G    31K        20G     1%    /ipspool
ipspool/repo            20G    31K        20G     1%    /repo

Untuk bisa membuat repositori lokal ada dua cara, melakukannya online ke oracle atau menggunakan iso, dalam tulisan ini kita akan melakukannya menggunakan iso.

Unduh terlebih dahulu Oracle Solaris 11.1 Repository Image di website Oracle, dibutuhkan akun login untuk mengunduhnya, atau Anda bisa dateng ke rumah/kantor saya jika mau menyalin :).

Dikarenakan iso nya terdiri dari dua file, maka tahapan setelah mendownload adalah menggabungkannya, mount iso hasil penggabungan ke “/mnt”, kemudian lakukan rsync untuk menyalin isi repo di iso ke mountpoint “/repo” yang tadi sudah kita siapkan.

# cat sol-11_1-repo-full.iso-a sol-11_1-repo-full.iso-b > sol-11_1-repo-full.iso
# mount -F hsfs /repo/sol-11_1-repo-full.iso /mnt
# rsync -aP /mnt/repo/ /repo

 

Membuat repositori dengan menggunakan antarmuka file [ Repository via NFS ]

# zfs set share=name=ipsrepo,path=/repo,prot=nfs ipspool/repo
name=ipsrepo,path=/repo,prot=nfs
# zfs set sharenfs=on ipspool/repo
# grep repo /etc/dfs/sharetab
/repo   ipsrepo nfs     sec=sys,rw

Dari sisi client tinggal jalankan :

# pkg set-publisher -g /net/10.87.17.250/repo solaris

Opsi yang biasa digunakan : -g, –add-origin, -G, –remove-origin, -m, –add-mirror, -M, –remove-mirror.

# pkg publisher
PUBLISHER                   TYPE     STATUS P LOCATION
solaris                     origin   online F file:///net/10.87.17.250/repo/

 

Membuat repositori dengan menggunakan antarmuka Web [ Repository via HTTP ]

# svccfg -s application/pkg/server setprop pkg/inst_root=/repo
# svccfg -s application/pkg/server setprop pkg/readonly=true
# svcadm refresh application/pkg/server
# svcadm enable application/pkg/server
# svcprop -p pkg/inst_root application/pkg/server
/repo

Dari sisi client tinggal jalankan :

# pkg set-publisher -g http://10.87.17.250 solaris
# pkg publisher
PUBLISHER                   TYPE     STATUS P LOCATION
solaris                     origin   online F http://10.87.17.250

Port yang digunakan defaultnya adalah 80, jika hendak menggunakan custom port (misal : 8080), jalankan perintah berikut :

# svccfg –s application/pkg/server setprop pkg/port=8080

Agar proses pencarian lebih cepat, maka lakukan rebuild index pencarian

# pkgrepo -s /repo refresh
Initiating repository refresh.

 

Update Repository

Seiring waktu tentulah paket-paket yang ada di repo harus di-update, cara meng-updatenya juga bisa dilakukan dengan SRU iso, download dan lakukan update repo menggunakan SRU iso image.

# mount -F hsfs /repo/sol-11_1_6_4_0-incr-repo.iso /mnt
# pkgrecv -s /mnt/repo -d file:///net/10.87.17.250/repo '*'
Processing packages for publisher solaris ...
Retrieving and evaluating 197 package(s)...
PROCESS                                         ITEMS    GET (MB)   SEND (MB)
Completed                                     197/197   2133/2133   4601/4601

# pkgrepo rebuild -s /repo
Initiating repository rebuild.

Jika hendak memperbarui paket-paket yang ada di repo, dan Anda punya koneksi yang lumayan, silakan lakukan update repo secara online, caranya :

# pkgrecv -s http://pkg.oracle.com/solaris/release/ -d /repo/ solaris

Lakukan test dengan meng-install salah satu paket menggunakan perintah “pkg install” atau dengan cara membuat zone.

Ubah Alamat IP di Solaris 11

Belajar lagi Solaris 11, karena Solaris 11 ini beda jauh dengan Solaris versi sebelumnya, dan ini adalah catatan pertama tentang Solaris 11 tentang cara mengubah alamat IP di Solaris 11

Konfigurasi sebelumnya :

# ipadm show-addr
ADDROBJ           TYPE     STATE        ADDR
lo0/v4            static   ok           127.0.0.1/8
net0/v4           static   ok           10.87.17.253/24
lo0/v6            static   ok           ::1/128
net0/v6           addrconf ok           fe80::20c:29ff:fe41:4860/10

Proses penggantian :

# ipadm delete-addr net0/v4
# ipadm create-addr -T static -a 10.87.17.251/24 net0/v4

Konfigurasi sesudahnya :

# ipadm show-addr
ADDROBJ           TYPE     STATE        ADDR
lo0/v4            static   ok           127.0.0.1/8
net0/v4           static   ok           10.87.17.251/24
lo0/v6            static   ok           ::1/128
net0/v6           addrconf ok           fe80::20c:29ff:fe41:4860/10

Sekian kapan-kapan disambung kembali 🙂

Ubah kepemilikan berkas symlink

Baru tau ternyata ada cara untuk mengubah “User Owner” maupun “Group Owner” dari berkas symlink.

chown -h user:group symlink

Jika file yang mau diubah terlalu banyak bisa kombinasikan dengan “find”, contoh ingin mengubah owner dari beberapa berkas yang tadinya milik user “103” menjadi milik user “oracle”

find / -user 103 -exec chown -h oracle {} ;

Semoga bermanfaat…

Tidak bisa “Make Home Share” di Openfiler

Jika Anda pengguna Openfiler dan menemukan masalah tidak bisa “Make Home Share” dikarenakan tombol “Make Home Share” nya tidak tampil, maka solusinya adalah sebagai berikut :

Sunting berkas /opt/openfiler/etc/homespath.xml yang awalnya seperti berikut (isinya bisa berbeda-beda) :

<?xml version="1.0"?>
<homespath value="/mnt/nas_vg/datavol01/HOME/"/>

Menjadi

<?xml version="1.0"?>
<homespath value=""/>

Kemudian coba kembali ke menu “Share”, insyaAllah menu “Make Home Share” sudah tampil kembali.

Mudah-mudahan bermanfaat.