OpenShift Origin 4.0 on CentOS 6.5
by MrChoke
ปรับแต่งเบื้องต้น
เมื่อติดตั้ง CentOS เสร็จเรียบร้อยและ reboot เข้ามาใช้งานครั้งแรก Ethernet interface ยังใช้ไม่ได้ต้องเข้าไปเปิดใช้งานก่อนโดยให้แก้ไข config ต่อไปนี้
vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 HWADDR=08:00:27:07:97:91 TYPE=Ethernet UUID=1afb7d3a-d86c-47e2-8045-6f6633d7ae79 ONBOOT=yes ## แก้จาก no เป็น yes NM_CONTROLLED=yes BOOTPROTO=dhcp
vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1 HWADDR=08:00:27:33:7D:A2 TYPE=Ethernet UUID=f11a0423-5b0b-4852-88af-ec440fbc8002 ONBOOT=yes ## แก้จาก no เป็น yes NM_CONTROLLED=yes BOOTPROTO=dhcp
ให้แก้เฉพาะตรง ONBOOT=no เป็น ONBOOT=yes
ส่วนค่าอื่นๆ ปล่อยไว้แบบนั้นซึ่ง eth0 กับ eth1 จะไม่เหมือนกันระวังจะ copy ไปนะครับของท่านก็จะมีค่า MAC และ UUID ต่างกัน
เมื่อเสร็จให้ restart network service /etc/init.d/network restart ลอง ifconfig ดูว่าได้รับ IP ทั้งคู่หรือไม่ ifconfig eth0
eth0 Link encap:Ethernet HWaddr 08:00:27:07:97:91 inet addr:192.168.5.1 Bcast:192.168.2.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fe07:9791/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:101 errors:0 dropped:0 overruns:0 frame:0 TX packets:87 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:14370 (14.0 KiB) TX bytes:10580 (10.3 KiB)
ifconfig eth1
eth1 Link encap:Ethernet HWaddr 08:00:27:33:7D:A2 inet addr:10.0.3.15 Bcast:10.0.3.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fe33:7da2/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:44 errors:0 dropped:0 overruns:0 frame:0 TX packets:52 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:4340 (4.2 KiB) TX bytes:4572 (4.4 KiB)
หลังจากนี้ผมแนะนำให้ท่าน ssh เข้ามาใช้งานซึ่งจะทำงานได้สะดวกกว่า เพราะจะ copy และ paste คำสั่งได้ง่ายกว่าเยอะครับ
ssh root@192.168.5.1
ติดตั้งเครื่องมือที่ถนัดและใช้บ่อย
ส่วนนี้ขึ้นอยู่กับแต่ละบุคคลนะครับว่าแต่ละคนถนัดหรือใช้คำสั่งไหนบ่อยของผมก็มีประมาณนี้
- vim ใช้ง่ายกว่า vi นิดหนึ่ง
- nano ผมติด pico แต่ไม่มีให้ใช้เลยใช้ nano แทน
- wget ถ้าใครใช้ curl ได้ก็ใช้ curl ไม่ต้องลงเพิ่ม
- mlocate เอาไว้ใช้คำสั่ง locate ไว้หา file ที่ไม่รู้ว่ามันอยู่ที่ไหน ติดตั้งเสร็จก็ให้ updatedb ก่อน หรือสั่งก่อนจะ locate
- lynx เอาไว้เข้าเว็บด้วย command line
yum -y install vim nano wget mlocate lynx
เตรียมระบบ
* BROKER Host * NODE Host ขั้นตอนนี้ทำทั้งเครื่อง Broker และ Node โดยเริ่มจาก
ตั้งค่า Yum Repositories
OpenShift Origin จะมี repo ของตัวเองซึ่งเราสามารถนำมาใช้บน CentOS ได้เลย
OpenShift Origin
cat <<EOF> /etc/yum.repos.d/openshift-origin-deps.repo [openshift-origin-deps] name=openshift-origin-deps baseurl=https://mirror.openshift.com/pub/openshift-origin/nightly/rhel-6/dependencies/x86_64/ gpgcheck=0 enabled=1 EOF
cat <<EOF> /etc/yum.repos.d/openshift-origin.repo [openshift-origin] name=openshift-origin baseurl=https://mirror.openshift.com/pub/openshift-origin/nightly/rhel-6/latest/x86_64/ gpgcheck=0 enabled=1 EOF
yum repos นี้เป็นของ OpenShift Origin แบบ Nightly นะครับการใช้งานจะอยู่บนพื้นฐานของความมันส์ แต่เท่าที่ลองก็ใช้ได้ดีครับ
EPEL
หลังจากนั้นให้ติดตั้ง EPEL ซึ่ง CentOS จะทำงานแทน RHEL ได้โดยติดตั้ง yum install -y –nogpgcheck http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
ส่วนรุ่นนั้นให้ตรวจสอบจาก http://fedoraproject.org/wiki/EPEL ว่ามีอัปเดทจากตัวอย่างไปหรือไม่
เมื่อติดตั้งเสร็จแล้วให้แก้ epel repo nano -w /etc/yum.repos.d/epel.repo
[epel] name=Extra Packages for Enterprise Linux 6 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch exclude=*passenger* nodejs* failovermethod=priority enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
โดยใส่ exclude=*passenger* nodejs* เพิ่มลงไปเพราะเราจะใช้ของ OpenShift Origin แก้เฉพาะ [epel] ก็พอให้สังเกตว่าส่วนอื่นจะไม่ได้ใช้งาน enable=0
Update ระบบ
เมื่อทำทั้งหมดเรียบร้อยให้ update ระบบหนึ่งรอบ
yum clean all yum -y update
ตั้งค่าเวลา NTP
* BROKER Host * NODE Host
อันนี้จำเป็นอย่างมากเพราะถ้าเวลาไม่ตรงกันระหว่าง broker และ node มันจะคุยกันไม่รู้เรื่องครับเจอมากับตัวหากันนานมาก
yum -y install ntpdate ntp สั่ง update เวลาปัจจุบันให้ตรงกับเวลามาตรฐาน ntpdate clock.nectec.or.th ตั้งค่า service ให้ทำงานทุกครั้งที่ boot เครื่อง
chkconfig ntpd on service ntpd start
หมายเหตุ: จากการสังเกตการทำงานบน VM ถ้าเปิดไว้นานๆ เครื่อง Host OS มีการ sleep บ้างพักบ้าง หรือระบบที่เพิ่ง restore VM snapshot มา อาจจะทำให้เวลาเพี้ยนได้เหมือนกันถ้ามีปัญหาและสงสัยว่าเวลาเพี้ยนก็ให้ restart service ก็ได้ครับ
ตั้งค่าสภาพแวดล้อมให้ Ruby
ระบบหลักของ OpenShift จะใช้ ruby ดังนั้นจำเป็นต้องติดตั้งในลำดับแรก ให้ทำตามลำดับดังนี้ yum -y install ruby193
cat <<'EOF' > /etc/profile.d/scl193.sh # Setup PATH, LD_LIBRARY_PATH and MANPATH for ruby-1.9 ruby19_dir=$(dirname `scl enable ruby193 "which ruby"`) export PATH=$ruby19_dir:$PATH ruby19_ld_libs=$(scl enable ruby193 "printenv LD_LIBRARY_PATH") export LD_LIBRARY_PATH=$ruby19_ld_libs:$LD_LIBRARY_PATH ruby19_manpath=$(scl enable ruby193 "printenv MANPATH") export MANPATH=$ruby19_manpath:$MANPATH EOF
cp -f /etc/profile.d/scl193.sh /etc/sysconfig/mcollective chmod 0644 /etc/profile.d/scl193.sh /etc/sysconfig/mcollective
ค่าเหล่านี้จะมีผลเมื่อ login ครั้งต่อไป (ไม่ต้อง reboot) ดังนั้นให้ logout แล้ว ssh เข้ามาใหม่อีกครั้ง