วันอังคาร, พฤษภาคม 16, 2560

ติดตั้ง DELL OpenManage

DELL OpenManage (OSMA) คือ ซอร์ฟแวร์สำหรับจัดการเกี่ยวกับฮาร์ดแวร์ของ DELL เช่นการจัดการ RAID หรือจะใช้ดูข้อมูลเกี่ยวกับฮาร์ดแวร์ โดยจะสามารถดูข้อมูลได้มากกว่า IDRAC

ติดตั้ง DELL repository
wget -q -O - http://linux.dell.com/repo/hardware/latest/bootstrap.cgi | bash
yum update
ติดตั้ง meta package
yum install srvadmin-all
จัดเตรียมไฟลฺ์ config ที่เกี่ยวข้อง
cd /opt/dell/srvadmin/etc
./autoconf_cim_component.sh
รันบริการ
/opt/dell/srvadmin/sbin/srvadmin-services.sh restart
/opt/dell/srvadmin/sbin/omreport storage controller

Create a new git repository

เมื่อต้องการเก็บไฟล์สคริปต์ไว้บน git repository ส่วนตัวผ่านทาง SSH ทำได้โดยมีขั้นตอนดังนี้

สำหรับฝั่งเซิร์ฟเวอร์

mkdir srcrepo.git
cd srcrepo.git
git init --bare
ถ้าต้องการ clone ผ่าน HTTP/HTTPS จะต้องเปิด hook เพื่อรัน  git update-server-info
cp hooks/post-update.sample hooks/post-update 

สำหรับฝั่งไคลเอนต์

cd srcrepo
git init
 
เพิ่มไฟล์เข้าไปยัง local repository
git remote add
git commit
เพิ่มข้อมูล remote repository ชื่อ origin
git remote add origin [email protected]:srcrepo.git
push ไฟล์ไปยัง remote  repository ชื่อ origin ไปยัง master branch
git push -u origin master
 

วันเสาร์, มกราคม 10, 2558

เวลามาตรฐานโลก

ถ้าพูดถึงเวลามาตรฐานที่เกี่ยวข้องกับเรามีอยู่ 4 ตัว (ตั้งใจตามดีๆ)


  • UT1 (Universal Time) เวลาตามการหมุนของโลกจริงๆ
  • TAI (International Atomic Time) ตัวย่อมันเป็นภาษาฝรั่งเศส  เป็นเวลาที่ใช้ค่าจาก atomic clock ทั่วโลกมาคำนวณ เมื่อ 1 ม.ค. 1958 มัน(เกือบๆ) เท่ากับ UT1 
  • UTC (Coordinated Universal Time) เป็นเวลา TAI ที่ปรับ leap second แล้ว และเราใช้เวลานี้อ้างอิงในชิวิตประจำวันทุกอย่างทั่วโลก ตอนนี้ช้ากว่า TAI 35 วินาที ถ้า UT1 ต่างกับ TAI >= 0.9 วินาที จะมีการพิจารณาปรับ leap second โดยเริ่มมีการปรับตั้งแต่ 30 มิ.ย. 1972
  • GPS (Global Positioning System) เป็นเวลาที่ใช้ในดาวเทียมและเครื่องรับทั่วโลก เมื่อ 6 ม.ค. 1980 นาฬิกาของ GPS มัน sync กับเวลา UTC (แต่หลังจากนั้นไม่ถูกปรับ leap second) ตอนนีช้ากว่า TAI 19 วินาที (และจะห่างเท่านี้ไปเรื่อยๆ) แต่เร็วกว่า UTC 16 วินาที และในอนาคตจะเปลี่ยนไปเรื่อยๆ ตาม leap second ซึ่ง GPS-UTC offset (เก็บได้สูงสุด 255 ถ้าถึงวันนั้นก็...) โดยมันถูกส่งลงมาจากดาวเทียม ดังนั้นเวลาที่แสดงในเครื่องรับจึงถูกปรับเป็น UTC (แต่การทำงานเบื้องหลังใช้เวลา GPS ทั้งหมด)

วันพฤหัสบดี, สิงหาคม 16, 2555

แก้ปัญหา Apache ไม่สามารถติดต่อ MySQL ได้

ใช้ RHCL 6 อยู่แล้วมันมีโมดูล PHP ที่ต้องไปคิวรีข้อมูลจากฐานข้อมูล แต่ทำยังไงก็ไม่ได้ค่าสักที จึงได้เปิด debug ถึงเห็นว่ามัน connection refused ทั้งที่ลองเชื่อมต่อผ่าน command line ได้ ก็สงสัยว่าเป็นเพราะ SELinux หรือเปล่า ก็ลองดึงค่าทั้งหมดออกมาดู

getsebool -a | grep httpd
เห็นค่า httpd_can_network_connect เป็น off อยู่ อืม... น่าสนๆ ก็เลยเปิดมันซะ ทำได้โดย
setsebool -P httpd_can_network_connect=1
โดยคำสั่ง setsebool จะเป็นการตั้งค่าของ SELinux และ -P จะทำให้ค่านี้ยังคงอยู่เมื่อเริ่มต้นบูตครั้งต่อไปด้วย พอ restart apache ก็ใช้ฐานข้อมูลได้ละ

วันพุธ, สิงหาคม 15, 2555

แก้ปัญหา IRQ ของการ์ด PCMCIA


จดเก็บไว้นานละ แต่ลืม publish -_"

นานมาแล้ว หลังพยายามปล้ำให้การ์ด PCMCIA to PCI ใำห้ทำงานกับชิปเซ็ต SiS 5597 ก็พบวิธีแก้ไข โดยการเพิ่ม option นี้เข้าไปใน boot parameter ของ grub เป็นอันเสร็จพิธี เพื่อ force ให้มันไปใช้ค่า IRQ จาก BIOS แทน

acpi=on acpi=force lapic pci=usepirqmask pci=biosirq

วันพุธ, เมษายน 18, 2555

Perl Library Path

ในกรณีที่ต้องการติดตั้ง Perl library ในโฮมของเราเอง เพราะต้องการทดสอบหรือเพราะว่าไม่มีสิทธิ์ root ก็ตาม หลังจากติดตั้งโดยใช้

perl Makefile.PL PREFIX=PERL_LIB_PATH
make
make test
make install

ซึ่งเมื่อกำหนดให้ไปไว้ที่ไหนไปมันก็จะเอา lib/perl5/site_perl/PERL_VERSION ไปต่อท้าย เวลาจะอ้างก็ต้องใส่ให้ครบ

จริงๆ นอกจาก PREFIX ก็ยังมี INSTALLBIN, INSTALLPRIVLIB, INSTALLSITELIB, INSTALLSCRIPT, INSTALLMAN1DIR และ INSTALLMAN3DIR อยากปรับละเอียดก็ตามสบาย

แล้วสำหรับสคริปท์เดิม ถ้าไม่ทำอะไรเลยเวลารันมันก็จะด่าเรา วิธีแก้ปัญหามี 3 แบบ แล้วแต่จะชอบแบบไหน


  1. เพิ่ม -I เข้าไปที่ shebang
    #!/usr/bin/perl -I PERL_LIB_PATH
  2. เพิ่ม environment variable PERL5LIB
    export 
    PERL5LIB=PERL_LIB_PATH
    หรือ

    setenv 
    PERL5LIB PERL_LIB_PATH
  3. ใช้โมดูล lib
    use lib 
    PERL_LIB_PATH;

วันพฤหัสบดี, ตุลาคม 20, 2554

Virtualization บน RHEL 6

สำหรับ RHEL 6 KVM ก็กลายเป็นมาตรฐานแทน Xen ไปแล้ว แต่การใช้งานก็ไม่ได้ต่างไปกันมากเท่าไร เนื่องจากยังใช้คำสั่งตระกลู virt-? ได้เหมือนเดิม

สำหรับวิธีการ ขั้นแรกไปเปิด Virtualization ใน BIOS ของ server เสียก่อน เมื่อบูตเสร็จ ก็รัน
# lsmod | grep kvm
kvm_intel 47790 4
kvm 300762 1 kvm_intel
ถ้าเจอโมดูล kvm ก็เป็นอันใช้ได้

ต่อไปติดตั้ง library ที่เกี่ยวข้อง
# yum groupinstall "Virtualization Platform"
ติดตั้ง kvm
# yum groupinstall "Virtualization"
ลงเครื่่องมือสำหรับเรียกใช้งานและจัดการ VM เช่น console หรือดูสถานะการใช้งาน
# yum groupinstall "Virtualization Client"
เริ่มติดตั้ง Linux ซึ่งเลือก CentOS 6 64 บิต โดยให้
  • มีดิสก์ 1 ลูกขนาด 20GB
  • RAM 4GB
  • CPU 2 core
# virt-install --name=centos \
--disk path=/export/vm/centos/disk1.img,size=20 \
--vcpus=2 \
--ram=4096 \
--location=http://mirror1.ku.ac.th/centos/6/os/x86_64/ \
--os-type=linux
แล้วจึงรันคำสั่งด้านล่างเพื่อเปิด console สำหรับทำขึ้นตอนการติดตั้งที่เหลือจนจบ
# virt-viewer centos

วันพฤหัสบดี, กุมภาพันธ์ 25, 2553

clone partition

วันนี้ซื้อฮาร์ดดิสก์มาใหม่ขนาด 1TB เพราะอยากจะรวบรวมข้อมูลที่กระจายอยู่ในฮาร์ดดิสก์หลายๆ ตัวมาให้อยู่ตัวเดียว จะได้หาได้ง่ายๆ ได้ยี่ห้อ Western Digital แคชขนาด 32 MB อืมๆ ไม่น้อยเลย ราคาแทบไม่ต่างจากที่ซื้อครั้งที่แล้ว แต่แคชเยอะกว่า 2 เท่า

คำเตือน: ผมแค่แสดงวิธีการที่ผมทำเพื่อเป็นตัวอย่างเท่านั้น ใครจะทำตามก็ตรวจสอบดิสก์กับพาร์ติชั่นดีๆ เน้อ เกิดพลาดไปช่วยไม่ได้น่ะ :P

มาเข้าถึงวิธิการกัน ไปรื้อแผ่น CD มาได้ Ubuntu 8.04 server (ใหม่ที่สุดที่เจอแล้ว - -') ก็บูตเข้า rescue broken system ไป เพื่อจะเข้า shell อย่างเดียว พอถึง shell ซึ่งฮาร์ดดิสก์ใหม่เป็น sda อันเก่าเป็น sdc ก็แบ่ง partition ด้วย

# fdisk /dev/sda

ก็สร้างไปตามต้องการ ณ ที่นี้ให้เก็บ OS ที่ sda2 ขนาด 80GB ที่เหลือเป็น sda3

# dd if=/dev/sdc2 /of=/dev/sda2 bs=1024

ก็ใช้เวลาไม่นาน ข้อมูล 30 GB ใช้เวลาแค่ประมาณครึ่งชั่วโมง เนื่องจากเราคัดลอกข้อมูลด้วย dd ทำให้ขนาดไฟล์ซิสเต็ม เท่ากับของเดิมด้วย แม้ว่าพาร์ติชันจะใหญ่กว่าก็ตาม ต่อไปก็ขยายไฟล์ซิสเต็ม จาก 30G เป็น 80G

# ntfsresize /dev/sda2

ก็อ่านคำเตือนกันไปจนจบแล้ว ก็ตอบ... [Y/N] เป็นอะไรเลือกเอา ฮึๆ

แล้วก็ย้ายเฉพาะ boot record มาด้วย

# dd if=/dev/sdc of=/dev/sda bs=1 count=446

ลองใช้ ntfs-3g เมาท์ดิสก์ได้ ก็เรียบร้อย เข้าวินโดส์แล้วย้ายข้อมูลที่เหลืออีกที