วันอาทิตย์ที่ 18 พฤศจิกายน พ.ศ. 2561

Command Check version Ubuntu

lsb_release -a

จะแสดงตามตัวอย่างนี้

ubuntuder:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 17.10
Release:        17.10
Codename:       artful


วันอาทิตย์ที่ 4 มีนาคม พ.ศ. 2561

update java on ubuntu

คำสั่ง install java
sudo apt install default-java


คำสั่งที่ใช้
sudo update-alternatives
sudo update-alternatives --config java เป็นคำสั่งจะให้เรียกใช้งานตัวใหนเป็นตัวหลัก
sudo update-alternatives --install /usr/bin/java java /พาร์ทที่ลงjava/java 2  ใช้เป็นตัว install เพื่อให้ตัว alternatives รู้จัก java เพื่อที่จะ config จากวาได้


วันจันทร์ที่ 26 กุมภาพันธ์ พ.ศ. 2561

Update Glibc 2.12 to 2.14 CenOS 6

mkdir ~/glibc_install; cd ~/glibc_install 

wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz

tar zxvf glibc-2.14.tar.gz

cd glibc-2.14

mkdir build

cd build

../configure --prefix=/opt/glibc-2.14

make -j4

sudo make install

export LD_LIBRARY_PATH=/opt/glibc-2.14/lib

วันอังคารที่ 3 มกราคม พ.ศ. 2560

เปิด สิทธิให้ ftp home directory ด้วย VSFTPD ได้

ช่วงหลัง หันมาศึกษาและใช้ SELinux อย่างจริงจัง พยายามจะไม่ปิดการใช้ SELinux แต่จะแก้ไขคอนฟิก อนุญาตเป็นรายโปรแกรมไป
บทความนี้ขอแปะวิธีแก้ไข SELinux บนเครื่องที่รัน vsftpd FTP Server เพื่อให้ผู้ใช้สามารถล็อกอิน ftp เข้ามา home ของผู้ใช้เองได้
หมายเหตุ ในที่นี้ทดลองบน CentOS 6.2 ในลีนุกซ์เวอร์ชั่นอื่นๆ คอนฟิก SELinux อาจแตกต่างไป
ทดลองใช้ ftp ด้วย user1
[root@cent6 ~]# ftp 127.0.0.1
Connected to 127.0.0.1 (127.0.0.1).
220 (vsFTPd 2.2.2)
Name (127.0.0.1:root): user1
331 Please specify the password.
Password:
500 OOPS: cannot change directory:/home/user1
Login failed.
ftp>
ผู้ใช้ user1 สามารถ login เข้า ftp ได้ (password ถูกต้อง) แต่ไม่สามารถเข้าไดเร็คทอรี home ของตัวเองได้
สาเหตุเนื่องจากดีฟอลต์คอนฟิก SELinux ของ CentOS 6 ไม่อนุญาตให้ ftp เข้าไปใช้ไดเร็คทอรี home ได้
หากดูไฟล์ /var/log/audit/audit.log ไปด้วย จะเห็นข้อความฟ้องแบบนี้
[root@cent6 ~]# tail -f /var/log/audit/audit.log
type=AVC msg=audit(1342860489.387:8445): avc:  denied  { search } for  pid=1806 comm="vsftpd" name="home" dev=sda3 ino=393217 scontext=unconfined_u:system_r:ftpd_t:s0-s0:c0.c1023 tcontext=system_u:object_r:home_root_t:s0 tclass=dir
ใช้คำสั่ง getsebool เพื่อดูคอนฟิก SELinux ค่า “ftp_home_dir” ว่า ftp สามารถเข้า home ของผู้ใช้ได้หรือไม่
ถ้า off คือไม่สามารถใช้ได้
[root@cent6 ~]# getsebool ftp_home_dir
ftp_home_dir --> off
ถ้าต้องการเปลี่ยนแปลงคืออนุญาตให้ user ใช้ ftp แล้วเข้า home ได้ ต้องใช้คำสั่ง setsebool เพื่อเปลี่ยน  “ftp_home_dir” เป็น “on”
[root@cent6 ~]# setsebool ftp_home_dir on
หลังการแก้ไข
[root@cent6 ~]# getsebool ftp_home_dir
ftp_home_dir --> on
ถ้าต้องการแก้ไขค่าคอนฟิก SELinux นี้อย่างถาวร (persistant)  คือมีผลหลังการรีบู๊ตเครื่องด้วย  ต้องเพิ่มออปชั่น ‘-P’ เข้าไป  ตัวอย่างเช่น
[root@cent6 ~]# setsebool -P ftp_home_dir on
ทดลอง ftp ด้วย user อีกครั้ง หลังการแก้ไข
[root@cent6 ~]# ftp 127.0.0.1
Connected to 127.0.0.1 (127.0.0.1).
220 (vsFTPd 2.2.2)
Name (127.0.0.1:root): user1
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
อ้างอิงจาก  https://spalinux.com/2012/07/fix-selinux-on-vsftpd-ftp-server-to-user-can-ftp
https://spalinux.com/2011/09/install_configure_vsftpd_ftp_server

วันเสาร์ที่ 19 พฤศจิกายน พ.ศ. 2559

VMware® High Availability (HA)


VMware® High Availability (HA) คือ Feature บน Cluster ที่ทำหน้าที่มอนิเตอร์ Virtual Machine ป้องกัน Hardware หรือ Operating System  Fail เมื่อเกิด Hardware หรือ Operating System fail HA จะทำการ Restart Virtual Machine ไปยังอีก Host โดยอัตโนมัติ โดยหน้าที่หลัก ๆ มีดังนี้
  • มอนิเตอร์ Virtual machine เพื่อตรวจสอบ Operating system และ Hardware ว่ามีการ Failure หรือไม่
  • รีสตาร์ท Virtual machine ไปยัง Physical servers อื่น ใน Resource pool โดยอัตโนมัติ เมื่อตรวจพบว่า Server failure
  • ป้องกัน Applications บน Operating system failure โดยการ รีสตาร์ท Virtual machine เมื่อตรวจพบว่า Operating system failure
คุณสมบัติหลัก (Key Features)
  • มอนิเตอร์และตรวจสอบ Server Failure โดยอัตโนมัติ
  • มอนิเตอร์และตรวจสอบ Operating System Failure โดยอัตโนมัติ
  • เลือก Environment ของ Virtual Machine ที่ดีที่สุด หลังจาก Server Failure (requires VMware DRS)
  • รองรับ Physical Server ได้ถึง 32 Node ใน Cluster
  • ตรวจสอบและ มอนิเตอร์ Utilization ของ Server จัดลำดับการรีสตาร์ท Server รวมถึงสำรองพื้นที่เพื่อรองรับการรีสตาร์ทของ Virtual Machine
  • สามารถกำหนดค่าความผิดปกติเอง และรายงานความผิดพลาดได้
  • กำหนด Address ของแต่ละโหนด โดยการ Ping เพื่อตรวจสอบ Network Failure
VMotion กับ HA
หลาย ๆ ท่าน ยังสับสนอยู่ระหว่าง Vmotion กับ HA Cluster ซึ่งถ้าจะแยกให้ชัดเจนก็คือ อย่างแรกเรื่องของการทำงาน VMotion ต้องมีอยู่ 3 อย่างที่ต้องอยู่ในสถานะ Running State ได้แก่ ESX Server, Virtual Machine และ Application โดยที่ Vmotion นั้นไม่สามารถตรวจสอบความเสียหายของ 3 องค์ประกอบนี้ ดังนั้นเรามักจะใช้ VMotion ในส่วนของการ Maintenance เป็นหลัก เช่นการย้าย Virtual Machine เพื่อ Load Balance ของ ESX Server หรือ การย้าย Virtual Machine เพื่อการ Restart / Shutdown / Update ESXServer
ส่วน HA นั้นใช้สำหรับมอนิเตอร์ Virtual Machine และ Restart Virtual Machine ไปยังอีก Node เพื่อลด Downtime ของ Virtual Machine หรือ Application (Service) ให้น้อยที่สุด
เปิดใช้งาน HA อย่างไร
ไปที่ Cluster > Edit Setting...
จากนั้นก็เลือก Turn On VMware HA และปรับค่าต่าง ๆ ของ HA ได้

วิธีการทำ Bonding Network ใน CentOS


วิธีการทำ Bonding Network ใน CentOS

   เพิ่มความมั่นใจในระบบ network ด้วยการทำ bonding interface ในระบบ CentOS Linux เราสามารถรวมเอาหลายๆ Network card มารวมกันเสมือนว่าเป็น Network card เพื่อทำ HA ของ Network card ในกรณี Network card เสียหรือ Link Down หนึ่งเส้น ก็ยังสามารถทำงานต่อได้ หรือใช้ในกรณีที่ต้องการเพิ่ม bandwidth ของ network ก็ได้

สิ่งที่ต้องเตรียม
-เครื่องคอมพิวเตอร์พร้อมทำงาน 1 เครื่อง
-ติดตั้งระบบ Redhat, CentOS อย่างใดอย่างหนึ่ง
-Lan Card 2 ใบขึ้นไป
(วันนี้มาเป็นขั้น เป็นตอน แบบเต็มเลย หุหุ)

เริ่มทำ Bonding ใน CentOS กันเลยตรับ

1. เพิ่ม config ในไฟล์ /etc/modprobe.conf ซึ่งเป็นการเพิ่ม module ที่จะใช้
#vi /etc/modprobe.conf
alias bond0 bonding
options bonding mode=1 miimon=100


                                             

ถ้าต้องการทำ bonding มากกว่า 1 ให้เพิ่มส่วนข้างล่างโดยให้เปลี่ยนตัวเลขไปเลื่อยๆ
alias bond1 bonding
alias bond2 bonding

ตามความคิดผมคิดว่า bond0, bond1 เปรียบเสมือนเป็นการแทนชื่อเรียกใช้งาน function

การ bonding มี 7 mode (เริ่มตั้งแต่ 0 เป็น Default)
   mode=0 (Balance Round Robin)
   mode=1 (active-backup)*
   mode=2 (balance-xor)*
   mode=3 (broadcast)
   mode=4 (802.3ad)
   mode=5 (balance-tlb)
   mode=6 (balance-alb)
*ที่นิยมใช้กัน ความหมายถ้าว่างๆจะมาแปลให้อ่านอีกครั้ง

2. สร้างไฟล์ /etc/sysconfig/network-scripts/ifcfg-bond0
#vi /etc/sysconfig/network-scripts/ifcfg-bond0
    DEVICE=bond0
    BOOTPROTO=none
    ONBOOT=yes
    TYPE=Ethernet
    IPADDR=192.168.1.201
    NETMASK=255.255.255.0
    GATEWAY=192.168.1.1
:wq


                                             

การปรับแต่งขึ้นอยู่กับเน็ตเวิร์คของคุณ

3. แก้ไขไฟล์ ifcfg-eth0 และ ifcfg-eth1 (หากมี interface มากกว่านั้น สามารถเพิ่มเติมได้)
สร้างและแก้ไขไฟล์ตามตัวอย่างดังนี้

Interface 1
#vi /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=eth0
    BOOTPROTO=none
    ONBOOT=yes
    HWADDR=00:60:df:31:13:3d
    MASTER=bond0
    SLAVE=yes
    USERCTL=no


                                             

Interface 2
#vi /etc/sysconfig/network-scripts/ifcfg-eth1
    DEVICE=eth1
    BOOTPROTO=none
    ONBOOT=yes
    HWADDR=00:60:df:a0:14:c2
    MASTER=bond0
    SLAVE=yes
    USERCTL=no


                                             

4. ทำการ restart network สักครั้งเพื่อให้เห็นผล
service network restart
หรือ
/etc/init.d/network restart

   เมื่อทำการ restart network แล้ว ดูถ้าไม่มีอะไรผิดพลาดเราจะเห็น interface ที่ชื่อ bond0 up และสามารถทดสอบโดยการใช้คำสั่ง
ifconfig bond0

                                             

หรือ pingไปที่ IP address ที่กำหนดไว้ใน ifcfg-bond0
ping 192.168.1.201
5. monitor bonding ด้วย คำสั่ง
cat /proc/net/bonding/bond0

                                             

การเช็ค Link Network UP/DOWN
[root@ComZone ~]# mii-tool
eth0: negotiated 100baseTx-FD, link ok
eth1: negotiated 100baseTx-FD, link ok

เรามาลองกันว่าที่ทำมาได้ผลหรือป่าว การเช็คแบบง่ายๆ ด้วยใช้คำสั่ง
ifdown eth0
ผลที่ได้คือ Currently Active อยู่ eth1

                                             

เราจะ ifup eth0 ขึ้นมาใหม่ ด้วยใช้คำสั่ง
ifup eth0
ผลที่ได้คือ Currently Active ยังอยู่ที่ eth1 และ eth0 ก็ up ขึ้นมาแล้ว แต่อยู่ eth0 จะกลับมา Currently Active อีกครั้งก็ต่อเมื่อ eth1 down สรุปจะวนสลับกัน

                                           

   จากการที่เรา เลือกเทำเป็น mode = 1 จะเห็นได้ว่ามันแสดงเป็น mode ของ (active-backup) จริง แล้วถ้าเราเปลี่ยนเป็น mode อื่นละจะต้องทำยังไงบ้าง หลักการ วิธีการทำจะเหมือนกัน เพียงแค่เปลี่ยน mode ตามที่เราต้องการ ผมจะลองทำเป็น mode 2 ดู โดยไปแก้ไขไฟล์เดิม /etc/modprobe.conf ในส่วนของ options แล้วสั่ง restart network ดูผลที่ได้ครับ
options bonding mode=2 miimon=100