ads

วันจันทร์ที่ 22 กันยายน พ.ศ. 2557

Review โปรแกรม Scoopshot

Review โปรแกรม Scoopshot 

สองสามวันก่อนมีคนแนะนำโปรแกรมตัวนี้ในการอัพภาพขายอีกเวป  สำหรับอัพภาพขายทางมือถือ   แต่ว่าภาพที่ส่งนั้นไม่ได้จำกัดว่าจะต้องถ่ายจากมือถืออย่างเดียวครับเขารับหมด    โดยที่นี่จะต่างกับสต๊อคอื่นๆ เหมือนกันโดย user สามารถสร้าง task งาน ( โจทย์ภาพที่อยากได้  โดยกำหนดราคากันไปว่ากี่ $ ก็ว่าไปส่วนมากเจอที่ 5$ ครับ )
แล้วเมื่อทางฝั่งคนขายภาพ คนถ่าย  ในแต่ละครั้งก็จะมี notification แจ้งมาว่าตอนนี้มี task งานโจทย์ไหนอยู่ที่ร่วมโปรโมชั่นตามเวลานั้นๆ   ให้เราเลือกส่งภาพเข้าไปครับโดยเขาจะกำหนดให้ใส่ tag ตามท้ายเองแล้วแต่หัวข้อว่าอะไร

สามารถใช้ได้ทั้ง  androi และ ios ครับ   ดาวโหลดลงเครื่อง > register > ใส่รายละเอียดต่างๆ e-mail > แล้วเข้าไปกด activate ในเมล์เราด้วยนะครับ
เมื่อกลับมา login เราก็จะเข้าหน้าเจอ Task งานต่างๆ ที่เขาจัดอยู่ในขณะนันและจะมีรูปคนที่อัพโหลดเข้าไปขายในหมวดนั้นๆ  ถ้ามีภาพไหนขายได้แล้วก็จะขึ้นภาพที่ขายได้แล้วแทน



- ถ้าเราจะอัพโหลดภาพเราเข้าก็คลิกรูป  กล้องเลยแล้วก็ทำตามขึ้นตอนเลือกภาพมาอัพโหลด > ใส่รายละเอียด  โดยใส่แท็กตาม task ตามโจทย์นั้นๆ > ใส่พิกัดให้รูป  > กดยอมรับข้อตกลงแล้วอัพโหลดรอการตรวจสักครู่





ถ้าตรวจเสร็จภาพจะไปอยู่รวมกันในแทบ photos ประมาณนี้


- สำหรับใครจะอัพโหลดภาพที่ไม่เกี่ยวกับโจทย์หรือ task งานก็ได้ครับและสามารถกำหนดราคาขายภาพเราได้ด้วย   โดยกดที่รูป กล้องตามปกติ task ไดสัก task  > เลือกรูป >
แล้วกดเครืองหมาย <  ในโปรแกรมครับ  จะโผล่ให้เราเลือกว่าจะขายแบบไหน for sale คือขายกำหนดด้วยเราเอง  เราสามารถกำหนดราคาได้เลย ( อาจจะมีทางเข้าเมนูนี้ที่อื่นแต่ผมยังหาไม่เจอ - -" )  แล้วจะเห็นว่ามี exclusive price ซึ่งตามอัตราส่วนเลยคือการซื้อภาพนั้นแบบซื้อขาดลิขสิทธิ์เลยว่ากี่บาท   แต่ถ้าเกิดมีคนซื้อแบบ exclusive ไปเราต้องลบรูปนี้ในเวป stock อื่นๆ ด้วยนะครับ



- และหากว่ามีภาพไหนเขายได้จะมี notification แจ้งเรามาดังรูปครั้บ  รูปนี้ขายในโจทย์ sunset / sunrise ลงไปวันเดียวได้ละ


ในส่วนของผู้ต้องการซื้อภาพ  นั้นเมื่อสมัครแล้วสามารถสร้าง Task และกำหนรายละเอียดภาพที่อยากได้เลยครับกำหนดราคาซื้อก็จะมีคนส่งภาพมาให้โหลดเลย   แต่ต้องทำผ่าน PC ครับเข้าที่  www.scoopshot.com  ด้านขวาบนจะมีปุ่มให้เรา create ครับ ( หรือมีวิธีอื่นนะ  แต่ผมยังหาไม่เจอ)


อันนี้เป็นรีวิวคร่าวๆ จากที่ได้ลองเล่นมาไม่กีวันครับลองดูกันครับ  เป็นอีกการเพิ่มทางเลือกการขายภาพทางสต๊อคกันครับ :-)

วันจันทร์ที่ 8 กันยายน พ.ศ. 2557

Application ขายภาพ Clashot

Application ขายภาพ Clashot


แนะนำ app ใหม่สำหรับผู้ชื่นชอบการถ่ายภาพ  ทั้งมืออาชีพและมือสมัครเล่น   clashot เป็น application ที่ใช้ในการอัพโหลดภาพของเราเพื่อขายออนไลน์แก่ผู้ที่จะดาวน์โหลดไปใช้ต่อ  ไม่ว่าจะเวปหรือสื่อต่างๆ โดยที่เรายังคงเป็นเจ้าของลิขสิทธิ์ของภาพนั้นๆ   โดย clashot จะเหมือนเป็นการผสมผานกันระหว่างโปรแกรมถ่ายภาพสต๊อคกับระบบ social network คล้ายๆ นำข้อดีของระบบต่างๆ เข้าไว้ด้วยกัน   สามารถสื่อสารโต้ตอบการในการคอมเม้นท์ในภาพนั้นได้   โดยรายได้ต่างๆ จะเป็นดังนี้

- ขายรูปตามปกติ เราจะได้รับ รูปละ $0.44
- ขายผ่านเว็ปแม่ (CS เป็นเว็ปลูกของ DP) เราจะได้รับ รูปละ $0.30
- ขายได้ในช่วงกิจกรรมพิเศษในโจทย์ที่แต่ละสัปดาห์ระบบปล่อยออกมา เราจะได้รับ รูปละ $3.00 (ต้องเข้าร่วมกิจกรรม และ #Tag ตามเงื่อนไขที่เค้ากำหนด)
- รายได้จาก expert like จาก EP user เราจะได้รับ รูปละ $0.10

โดยรูปที่อัพโหลดนี้ทาง clashot ยินยอมให้เราใช้ภาพที่เคยอัพผ่านระบบอื่นๆ เช่นรูปเราเคยอัพไว้ที่ IG ( ซึ่งระบบ IG จะ resize เล็กลงมามากๆ ความละเอียดก็หายไป ) ลองอัพเข้ามาก็ผ่านได้ไป   หรือภาพต่างๆนาๆ เราไปเที่ยวก็ถ่ายแล้วอัพได้เลย   รวมถึงภาพที่ถ่ายด้วยกล้องดิจิตอล DSLR แล้วโอนเข้ามือถือเพื่ออัพไฟล์    แบบนี้ไฟล์จะมีคุณภาพดีและขายได้ดีกว่าครับ ( ตรงนี้ผมเมล์ไปถาม clashot แล้วว่ารองรับ dslr ด้วยครับยืนยันได้   ไม่ผิดกฏ )

แต่อยากให้พึงระลึกไว้เสมอว่ารูปที่เราอัพขึ้นที่นี่   คือรูปที่เราจะอัพไว้ขายดังนั้นก็ควรคิดก่อนว่ารูปแบบไหนคนจะซื้อ  คนจะโหลดเพื่อไปใช้งานต่อ   จะอัพรูปเซลฟี่หน้าอันหล่อเหลาตัวเหลาตัวเองหรือสวยเอ็กซ์  ภาพมืดๆมัวๆ โฟกัสไม่ติด   คงไม่มีใครซื้อแน่ๆครับ

ลักษณะการใช้งานจริง:
ในตอนแรกๆ เวลาเราอัพภาพเสร็จระบบจะมี notification แจ้งเราเลยว่ารูปเรานั้น publish for sale เลยทันที   แต่หลังจากที่ลองเล่นมาครบ 2 เดือน  คนเริ่มใช้มากขึ้นหลังจากอัพภาพไปแล้วรูปเรายังจะไม่ได้ publish for sale เหมือนแบบตอนแรกๆ แล้วนะครับ  อาจจะเป็นเพราะคนใช้งานเพิ่มขึ้นอย่างรวดเร็ว   และมีภาพถ่ายที่อัพขึ้นเยอะมากรวมถึงภาพที่ไม่เหมาะสมในการปล่อยขายด้วยเช่น  ภาพลามกอนาจาร  ภาพมัวๆเบลอๆ จนไม่รู้ภาพอะไร  จนทำให้ระยะเวลากว่าจะได้ขายนั้นนานมากบางภาพเกินกว่า 2 สัปดาห์ก็ยังไม่ได้ publish for sale

แต่จุดนี้ก็มีข้อยกเว้นคือ หากภาพไหนมาแรงจริง  โดยเขาจะดูจากจำนวนคนเข้าดู  จำนวนไลค์  จำนวนเม้นท์ ประกอบกันว่าภาพนี้มาแรงคนชอบเยอะ  ก็จะได้จัดเข้า publish for sale เลยโดยบางภาพอาจจะไม่ถึงวัน   และในกรณีเข้ามาแรงแบบนี้จะได้จัดอันดับเข้าอยู่   หมวด trends - popular   (นั้นคือเวลาเราเข้าโปรแกรม  จะมีแทบหมวดหลัก  2 แทบคือ
friends - คือคนที่เรากด follows ตามดูผลงานเขา
Trends - คือภาพใหม่  หรือภาพที่คนสนใจมากซึ่งแยกได้อีก 3 แทบย่อยคือ
1. near  ( คือภาพที่มีการอัพโหลดในพิกัดใกล้ๆ กับพิกัดเราอยู่ในที่นั้นๆ  )
2. popular ( คือภาพที่ได้รับความสนใจมากในเวลาอันรวดเร็ว  โดยดูจาก like และคนเข้าชม  ซึ่งถ้าภาพได้เข้าหมวดนี้คนก็จะได้เห็นมาก   รวมถึง EP ด้วยทำให้เรามีโอกาสขายภาพได้ หรือได้ expert like จากคนเหล่านี้  
3. Fresh ( คือภาพที่เรียงจากภาพใหม่สุด ทั่วโลกที่อัพในเวลานั้นๆ )

จากการใช้งานจริงๆ ในระยะแรกเหมือนระบบจะมีการจัดให้เราก่อน 1.52 $ นะ (อันนี้ผมเจอกับตัวเองและเพื่อนๆ คือยอดจะมาค้างตรงนี้หลายคน   3 วันแรกไม่ว่าจะอัพภาพอะไรขายได้หมด  ดูมันง่ายจัง  ( 3 โหลด กับ 2 expert like ) พอหลังจากยอดนี้สิ  ถึงจะเป็นของจริงครับว่าเราขายได้หรือไม่  และมีคนชอบภาพเราหรือไม่

โดยระยะเวลาต่างๆในสัปดาห์  ทาง clashot จะมีกิจกรรม  โจทย์ต่างๆ มาให้เราร่วมสนุกหาภาพที่เข้ากับโจทย์นั้นๆ อัพเข้าไป   หากภาพเราขายดี  จนชนะไปก็จะมีเงินรางวัลพิเศษให้ไปอีกต่างหากครับเรียกว่าแนวคิดการตลาดดีมากๆ

การเบิกจ่ายเงิน :
การเบิกจ่ายเงิน จะทำการเบิกจ่ายผ่านบัญชี  Paypal  ครับเพราะสะดวก (ใครยังไม่มีไปสมัครกันครับ)   โดยยอดเงินต่ำสุดที่เบิกได้คือ 3 $   แต่ผมแนะนำว่าให้เก็บไว้มากๆ กว่านี้ค่อยโอนครับไม่อย่างนั้นโดนค่าธรรมเนียมโอนมาก็หมดล่ะ

เป็นไงครับ app อัพขายภาพตัวนี้  ส่วนตัวผมว่าเข้าท่าเลยครับ   ลองอัพลองเล่นดูกันได้ดีกว่าปล่อยภาพเราเน่าเก่า ค้าง IG ค้าง face ตังค์ก็ไม่ได้อีกจริงมั้ย  อัพเล่นๆ ถ่ายเล่นๆ ได้ตังค์ค่าโทรศัพท์แต่ละเดือนๆ ก็โอเคนะผมว่า ;-)

มาอัพเดทให้ครับ แคปยอดหลังจากเล่นไปประมาณ 2 เดือนนิดๆ  แต่ละสัปดาห์หรือเดือนจะมีกิจกรรมโจทย์ให้เราไปถ่ายภาพอัพโหลดไปด้วยซึ่งจะได้เงินดีครับ  เพราะถ้าเวปเขาต้องการจะได้  โหลดละ 3$ เลยทีเดียวนอกนั้นก็จะมี expert like อยู่เนืองๆ  (ในภาพเป็นช่วงโจทย์นั้นผมถนัดพอดีเลยยอดมาทุกวัน)

วันจันทร์ที่ 28 กรกฎาคม พ.ศ. 2557

SQLAgent ไม่ยอมรันใน service list ไดๆ

SQLAgent ไม่ยอมรันใน service list ไดๆ 


เมื่อได้ลองเข้าไปหาไฟล์ sqlagent.exe ใน พาร์ท  Program Files\Microsoft SQL Server\MSSQL\Binn\
แล้วลองทำการ start ด้วยไฟล์นี้เลย  แต่ผลคือทำงานเพียงแค่ 2-3 วิ  แล้วก็หายไปอีกเช่นเคย

ทดสอบด้วยการ cmd ไปยัง path sqlagent.ext
 c:\Program Files\Microsoft SQL Server\MSSQL\Binn\
แล้วสั่ง 
> sqlagent.exe -i MSSQLSERVER   
เพื่อลองหา error message



แต่ก็ยัง start ไม่ได้และ error ไม่ได้บอกอะไรมาก  จึงลองอีกวิธีคือ start ใน mode verbose
> sqlagent.exe -c -v    


ได้ผลประมาณนี้  และ sqlagent.exe ก็ start ขึ้นทำงานโผล่ใน processlist แล้ว  ซึ่งก็สามารถเรียกใช้งาน service ที่มีการใช้ sqlagent ได้แล้วโดยอาจะจต้องไปเช็คค่า registry ว่ามีอะไรผิดเพี้ยนหรือเปล่า
( HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SQLSERVERAGETNT )   
ตรอง Image path อาจจะต้องใส่เพิ่ม -i MSSQLSERVER   แล้วลอง reboot เครืองสักรอบ

วันพฤหัสบดีที่ 17 กรกฎาคม พ.ศ. 2557

Convert Disk type from Thin to Thick

Convert Disk type from Thin to Thick


**สำหรับ VMware ESXi version 5.5 ลอง migrate แล้วไม่เวิร์คใช้วิธีนี้แทน
1. shutdown ตัว machine ที่ต้องการจะเปลียน Thin ==> Thick
2. คลิกแทบ Summary ที่ datastore คลิกขวา Browse เข้าไปยัง datastore ที่เครื่องนั้นใช้เข้าไปยังชื่อ sever ที่เราจะทำการเปลียนแปลง
3. หาไฟล์ .vmdk คลิกขวาเลือก Inflate แล้วรอจนกระทั้งเสร็จขั้นตอน

4. login เข้า iLO VMware เพื่อเปิด enable ssh
5. เมื่อทำการ enable แล้วเข้าไปยัง vmfs เครืองที่เราจะทำการแก้ไข
จะเป็น /vmfs/datastore/ชื่อเครืองxxx ประมาณนี้
6. เมื่อเข้าไปจะเห็นไฟล์ ที่เราทำการ Inflate ไปแล้ว จะมี -flate ต่อท้ายชื่อไฟล์เรานั้นเองใช้คำสั่ง
> mkfstools -i T-QB2-ZoneADB2_1.vmdk -d zeroedthick T-QB2-ZoneADB2_1-flate.vmdk
T-QB2-ZoneADB2_1.vmdk ==> ไฟล์เก่า
T-QB2-ZoneADB2_1-flate.vmdk ==> ไฟล์ใหม่ที่ทำให้เป็น thick
เสร็จดูผลที่ resource ได้เลย

ติดตั้ง atlassian fisheye

สร้าง user สำหรับ fisheye สิทธิ์อ่านอย่างเดียว
adduser fisheye
passwd fisheye  ตั้งไป ( password)

copy fisheye  จากที่ได้จากการ download ไว้ที
/usr/atlassian/

สร้าง database fisheyeDB
mysql> SET GLOBAL storage_engine = 'InnoDB';
mysql> CREATE DATABASE fisheyeDB CHARACTER SET utf8 COLLATE utf8_bin;
mysql> GRANT ALL PRIVILEGES ON fisheyeDB.* TO 'fisheye'@'localhost' IDENTIFIED BY 'password';
mysql> GRANT ALL PRIVILEGES ON fisheyeDB.* TO 'fisheye'@'*' IDENTIFIED BY 'password';
mysql> FLUSH PRIVILEGES;
mysql> QUIT

ถ้าใน my.cnf ไม่ได้กำหนด charset ก็ใส่กำหนดไว้เลย
[mysqld]
character-set-server=utf8

เช็คการตั้งค่า
mysql> use fisheyeDB;
Database changed
mysql> status;
--------------
mysql  Ver 14.14 Distrib 5.5.28, for Linux (x86_64) using readline 5.1

Connection id:          7971
Current database:       fisheyeDB
Current user:           root@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         5.5.28 MySQL Community Server (GPL) by Remi
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
UNIX socket:            /var/lib/mysql/mysql.sock
Uptime:                 19 hours 42 min 5 sec

Threads: 33  Questions: 1779443  Slow queries: 0  Opens: 771  Flush tables: 1  Open tables: 276  Queries per second avg: 25.089


ระบุพาร์ท fisheye ในไฟล์ /etc/environment
FISHEYE_INST="path/to/<FishEye instance directory>" จะเป็น
FISHEYE_INST="/usr/atlassian/fecru"
และพาร์ท java ในไฟล์นี้
echo JAVA_HOME="/usr/java/jdk1.7.0_10" >> /etc/environment

ปล. เช็ค config เก่าดูว่าใส่ถูกหรือไม่
cd /root
.bash_profile
.bashrc
.cshrc
ถ้าผิดหรือใส่เกินก็แก้ใหม่

เมื่อเช็คพาร์ทแล้วถูกต้อง
[root@DEV-JIRA fecru]# echo $JAVA_HOME
/usr/java/jdk1.7.0_10
ก็ทำการสตาร์ท service ตัว fisheye เพื่อทำการคอนฟิกต่อไป
ที่พาร์ท /usr/atlassian/fecru
# bin/start.sh &

แล้วรอสักครู่ให้ service สตาร์ทเสร็จ  เข้าสู่หน้า configure ของโปรแกรม Crucible
http://10.66.8.175:8060/
จะพบหน้า Please provide your Crucible license  ถ้ามี license แล้วก็เลือกแบบมี license แล้วเลย  หรือเลือกทดลองใช้ 30 วัน
จะเข้าไปยังหน้าเวปของ atlassin  แล้ว gent license สำหรับเครืองนี้มาให้อัตโนมัติตามขั้นตอน  เมื่อเสร็จ กด Next

> Connect to JIRA เป็นการรวมระบบเข้ากับ JIra
jira base URL:  http://jira.domain.co.th/
Admin Username:  administrator  ( ต้องมีสิทธ system admin ในระบบ jira)
Admin Password:   ใส่ไปดีฟอล
กด connect to jira

> Admin password ก็ตั้งตามที่จะใช้กัน กด next
> finish


ติดตั้ง atlassian stash

ติดตั้ง atlassian stash

ลง library ทีต้องใช้งานก่อน
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc g++  zlib autoconf  perl-ExtUtils-MakeMaker gettext

- java ต้อง version 1.7.x  ( 1.8 ยังไม่รองรับ)
# java -version
เช็คเวอร์ชั่น git  ต้องสูงกว่า 1.7.6
# git --version
yum install ไม่เจอ  ให้ไปที่  https://www.kernel.org/pub/software/scm/git/
# trar -xzf git-1.9.0.tar.gz
# cd git-1.9.0
#  make configure
# ./configure --prefix=/usr
# make all doc
# make install install-doc install-html

check version  perl
perl --version   ( ต้องสูงกว่า 5.8.8 )
ที่นี้ได้ 5.10.1 ผ่านไปเลย


=========================
ขึ้นตอนลง statsh
download  จาก http://www.atlassian.com/software/stash/download
ไว้ยัง path ที่ต้องการ ที่นี้ไว้ที  /usr/atlassian/stash  
แล้วแก้ไขไฟล์
# /usr/atlassian/stash/bin/setenv.sh
ที่พาร์ท STASH_HOME   ให้ใส่ค่าโฮมของ stash ไป
STASH_HOME = "/usr/atlassian/stash"  

เปิดใช้งานของโปรแกรมเลยที่เราสร้างไว้ในที่นี้คือ
# /usr/atlassian/stash/bin/start-stash.sh

ซึ่งจะมี  log บอกว่า sucessfull ให้เข้าหน้า configue ที่พอรืท 7990 ประมาณนี้เลย
Success! You can now use Stash at the following address:

http://localhost:7990/

### สร้าง databases
> CREATE DATABASE stash CHARACTER SET utf8 COLLATE utf8_bin;
> GRANT ALL PRIVILEGES ON stash.* TO 'stashuser'@'localhost' IDENTIFIED BY 'password';
> quuit;

แล้วเข้าหน้า configure

http://10.66.8.175:7990/setup
เลือก  ภาษา
- database เลือก external เพราะเรามี database  mysql ต่างหาก
ต้องใช้ driver ต่างหากอีก
Download the MySQL Connector/J JDBC driver from the download site.
Expand the downloaded zip/tar.gz file.
Copy the mysql-connector-java-5.1.XX-bin.jar file from the extracted directory to your <Stash home directory>/lib directory (for Stash 2.1 or later).

-re start service

 -  ใส่ค่า databases
- user  ที่สร้างไว้ก่อนนี้
- pass   ที่ grant ไว้
ที่ต้องกาใช้  > next  ไป

- จะโผล่หน้าค่าที่เราต้องการใช้  ถ้าไม่มี key ก็กด I need an evaluation license »   ระบบจะพาเราไปยังเวป atlasian แล้วกด license  มา
  กด gen license    ระบบจะ gen  แล้วใส่ค่ามาให้เรา auto

- next

- ตั้ง admin ใส่ชื่อ  อีเมล์  password     > กด intregrade jira system

- JIRA integration  
ใส่ค่าเพื่อให้ intrgate กับระบบ jira ที่ใช้อย  (ถ้าเป็น url ก็ใส่ไปในที่นี้เครืองเทส url กลัววจะชนกัน)
Jira base url    >  http://10.66.8.175:8080  
jira administrator  usernam  :  administrator ของระบบ jira ที่ใช้
jira passowrd   : ใส่ password ของ jira ที่ใช้งาน
stash bash url  :   http://10.66.8.175:7990

Using JIRA as my user database  เลือกว่าจะให้ user ของระบบ jira มาในระบบนี้ทั้งหมดหรือเลป่า
ที่นี้เลือกจัดไป  แล้ว next

- Welcome to Stash  จะเข้าหน้า Login

วันพุธที่ 16 กรกฎาคม พ.ศ. 2557

Install Jira and confluence system

Install Jira and confluence system 

ก่อนอื่นต้อง install java
- download jdk จาก http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
แล้วเลือก version ตามต้องการสำหรับ linux  เอาไฟล์ .rpm มาลงได้เลย
# rpm -ivh jdk-7u10-linux-x64.rpm
รอจนเสร้จขั้นตอน สคริปจะทำการ install ในพาร์ท /usr/java/..  ลองเข้าไปดูจะพบไฟล์ดังนี้

lrwxrwxrwx  1 root root   16 Feb  5 11:24 default -> /usr/java/latest
drwxr-xr-x  8 root root 4096 Dec 27 15:06 jdk1.7.0_10
lrwxrwxrwx  1 root root   21 Feb  5 11:24 latest -> /usr/java/jdk1.7.0_10

กำหนด JAVA_HOME path
# vi /root/.bash_profile
ใส่ค่าดังที่สคริปลงให้เรา  เวอร์ชั่นตามจริง
export JAVA_HOME=/usr/java/jdk1.7.0_10/bin/java
export PATH=$PATH:/usr/java/jdk1.7.0_10/bin

ลองให้ server Echo JAVA_HOME
[root@TH10JIRA1 java]# echo JAVA_HOME
JAVA_HOME

ok เสร็จแล้วขั้นตอนนี้

install php และ mysql ด้วยเพราะต้องใช้ ฐานข้อมูลสำหรับรองรับระบบ
ใช้ install ผ่าน yum เลย
# yum install php php-dev mysql mysql-server php-mysql
รอจนเสร็จขั้นตอนปกติ  เปลียนพาสเวิร์ส root ของ databas ตามต้องการ

#######ขั้นตอนต่อไป  install jira   ##########
ดาวน์โหลดเวอร์ชั่นที่ต้องการเป็นไฟล์ .bin มายังใช้ เช็คได้จากเวป  https://www.atlassian.com/software/jira
 ./atlassian-jira-5.2.3-x64.bin
กด OK confirm ผ่านไป

Choose the appropriate installation or upgrade option.
Please choose one of the following:
Express Install (use default settings) [1], Custom Install (recommended for advanced users) [2, Enter], Upgrade an existing JIRA installation [3]
เลือก 2 เพื่อระบุพาร์ทใหม่
ผมระบุเป็น /usr/atlassian/jira

Default location for JIRA data
[/var/atlassian/application-data/jira]
Enter ผ่าน ลงตาม default

Configure which ports JIRA will use.
JIRA requires two TCP ports that are not being used by any other
applications on this machine. The HTTP port is where you will access JIRA
through your browser. The Control port is used to Startup and Shutdown JIRA.
Use default ports (HTTP: 8080, Control: 8005) - Recommended [1, Enter], Set custom value for HTTP and Control ports [2]
Enter ผ่านไปใช้ port 8080

JIRA can be run in the background.
You may choose to run JIRA as a service, which means it will start
automatically whenever the computer restarts.
Install JIRA as Service?
Yes [y, Enter], No [n]
Enter ผ่านให้ jira run bacgroud process
เมื่อ Enter ระบบจะทำการ install จนเสร็จ  เราก็สารมารถเข้าสู่หน้า configure ได้ที่
http://ip address:8080


สร้าง Database เตรียมไว้เพื่อรองรับการใช้งาน
Login เข้า console mysql สร้าง database และ grant สิทธิ์

> CREATE DATABASE JR_DATA CHARACTER SET utf8 COLLATE utf8_bin;
> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER,INDEX on JR_DATA.* TO 'jirauser'@'*' IDENTIFIED BY 'jirapassword';
> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER,INDEX on JR_DATA.* TO 'jirauser'@'localhost' IDENTIFIED BY 'jirapassword';

ต่อไปทำการ download ตัว connector สำหรับ database ที่
http://dev.mysql.com/downloads/connector/j
เมื่อแตกไฟล์ จะได้ไฟล์   mysql-connector-java-5.1.22-bin.jar
นำไฟล์  .jar ทีได้ไปไว้ใน /lib/ ของ path ที่ install JIRA ไว้นั้นเอง  ( ในที่นี้คือ /usr/atlassian/jira/lib )
/usr/atlassian/jira/atlassian-jira/WEB-INF/lib
บางทีอาจจะต้อง reboot server ครั้งหนึ่งเพื่อให้โปรแกรมเจอ binary ใหม่ครบ

http://ip address:8080
จะเข้าสู่หน้า wizard การ configure databases ต่อไป
Step 1 of 4: Basic Settings
- Database Connection เลือกเป็น External เพราะใช้ database แยกเช่นพวก mysql, sql
- Database Type : MySQL
- Hostname : localhost
- Port : 3306
- DataBase : JR_DATA
- Username: jirauser
- Password : jirapassword

ตามที่เรา grant มาแล้วกด next

Step 2 of 4: Application properties
Application Title required: ตั้งชื่อ Jira ที่ต้องการ
Mod: Public
Base URL: ตามที่ระบบค้างมาคือไอพีเครืองนั้น
Server ID:
LicenseKey : จะยังโล่งๆ  สังเกตตัวหนังสือเล็กๆ ข้างใต้ Generate an evaluation key for me.
คลิกไป ส่งไปยังเวป jira จะทำการ gen key 30 วันให้เราเองอัตโนมันติตามขั้นตอน
เมื่อเสร็จ key จะก๊อปลงในช่องให้เราอัตโนมัติ

AAABDA0ODAoPeNptUFtLwzAUfs+vCPgcybJNt0Ietja6jt5ou4rgS1aPGt3SkrTF/XvbVfDC4Bw4n
O9yPs5V3gK+gz2mc0wnDls4bIbdLMeMTqbIA1saVTeq0nzrp6snB4tOHlo5bJBr4Dx4sgE+8Allh
M7RuzLyOlAlaAviWZ3VIspFmqR+JtCPA29MC3/o+amGSB6Bu3EYitT1V8GIy7JRHYyCw8gtwNjBh
KFQKt2AlroE8Vkrc/qVqK9bFJtXqZUdj1qpq+pjtI3a4x5M/LKzvRknE5SB6cD4Hl8nmwdSPO4Cc
u9Ol2RdbLYoExHvmwSM0eXNbIG+U/f0wPcuIZfjJK0p36SF/4/7ArzvfiUwLAIUSTXMOAhmTzPah
3lSLr7kUDQpyTYCFEvwRsYiUsBj0/PFeIIdhLUhONUeX02dl

Next

Step 3 of 4: Administrator account
ใส่รายละเอียด user - password แอดมินของระบบ jira
Username : administrator
password :
Confrim:
Fullname:
Email;

Step 4 of 4: Setup send mail
เลือก later ผ่านไปก่อน

Setup Complete.
=================================
Configure User Directorires:
Configure > Users >  จะเข้าเมนูการจัดการ user
Name : ตั้งชื่อที่ต้องการ
Directory Type : Microsoft Active Directory
Hostname :  ( AD ที่เราจะดึงมาทีนี้ใส่ 10.66.10.1 )
Port :389
Username:  cn=ldapbinduser,ou=Service Accounts,dc=yourdomain,dc=co,dc=th
Password : passworddomain

Base DN: dc=yourdomain,dc=co,dc=th
Additional User DN: OU=Corporates
Additional Group DN: OU=Main All,OU=Group Resources

LDAP permissions: เลือก Read Only, with Local Groups
Default Group Memberships: jira-users

กด Test , Save and Test
ทดสอบ  ใส่ ชื่อ user ในโดเมนที่ import ไปแล้ว ใส่ password ของโดเมนนั้น  Test Seting ต้องผ่าน

เมื่อ Back กลับไประบบจะทำการ sync user จาก domain เข้ามายัง jira ใช้เวลาสักครู่



############# install confluence ##############
install confluence  ตัวสร้างเอกสารงานต่างๆ คล้ายๆ wiki  สามารถดาวโหลดไฟล์  .bin ได้จาก  https://www.atlassian.com/software/confluence
ได้ไฟล์แล้วก็จัดการ  install
./atlassian-confluence-4.3.5-x64.bin

This will install Confluence 4.3.5 on your computer.
OK [o, Enter], Cancel [c]
Enter ผ่าน

Choose the appropriate installation or upgrade option.
Please choose one of the following:
Express Install (uses default settings) [1], Custom Install (recommended for advanced users) [2, Enter], Upgrade an existing Confluence installation [3]
เลือก 2 เพื่อเปลียนพาร์ท

เป้น /usr/atlassian/confluence
Enter

Default location for Confluence data
[/var/atlassian/application-data/confluence]
Enter ผ่าน

Confluence requires two TCP ports that are not being used by any other
applications on this machine. The HTTP port is where you will access
Confluence through your browser. The Control port is used to Startup and
Shutdown Confluence.
Use default ports (HTTP: 8090, Control: 8000) - Recommended [1, Enter], Set custom value for HTTP and Control ports [2]
Enter ผ่าน

You may choose to run Confluence as a service, which means it will start
automatically whenever the computer restarts.
Install Confluence as Service?
Yes [y, Enter], No [n]
Enter ผ่านเพื่อ รันเป็น backgroud

Confluence 4.3.5 can be accessed at http://localhost:8090
Finishing installation ...
เมื่อเสร็จสามารถเข้าสู่หน้า configure ที่ http://ip address:8090
Enter License
คลิกเลือก  generate an evaluation license online  ตัวหนังสือด้านบนเพื่อ gen key ออกมาเช่นเคย
Choose Installation Type : คลิก Production Installation  ในการใช้ external database ใช้หมวดนี้
Next >

Choose a Database Configuration :  MySQL > Externa database >> กด

ก๊อปปี้ไฟล์ driver ที่ใช้ตอนลง jira แล้วเมื่อสักครู่   มาใช้กับ confluence ต่อ
# cp /root/software/mysql-connector-java-5.1.22-bin.jar /usr/atlassian/confluence/confluence/WEB-INF/lib/
# cp /root/software/mysql-connector-java-5.1.22-bin.jar /usr/atlassian/confluence/lib/

Create database
> CREATE DATABASE confluence CHARACTER SET utf8 COLLATE utf8_bin;
> GRANT ALL PRIVILEGES ON confluence.* TO 'confluenceuser'@'*' IDENTIFIED BY 'conpassword';
> GRANT ALL PRIVILEGES ON confluence.* TO 'confluenceuser'@'localhost' IDENTIFIED BY 'conpassword';

Setup Datasource Connection > next
*** ที่ Driver Class Name ใส่เพิ่มเป็น : com.mysql.jdbc.Driver
Database URL : jdbc:mysql://hostname:port/database?useUnicode=true&characterEncoding=utf8
hostname: ใส่เป็น localhost
port: 3306
database : ชื่อ database
จะได้เป้น
 jdbc:mysql://localhost:3306/confluence?useUnicode=true&characterEncoding=utf8
แล้วนำค่านี้ไปใส่ในไฟล์ confluence.cfg.xml  ที่ ภาายในแทก
 <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/confluence?useUnicode=true&amp;characterEncod
ing=utf8</property>

แล้ว Next

Load Content
- เลือก Example Site เพือให้ลงมีการเรียกใช้ ตัวอย่างในการใช้งาน confluence

User Management Setup
- เลือก Manage User and Groups within Confluence  เป็นการเารียกใช้งานและให้มันสร้าง group ของ confluence เอง และยังเสามารถเพิ่ม group จาก
  LDAP ได้ภายหลัง
Next

Setup System Administrator
สร้าง User admin สำหรับระบบ Concluence
*** ต้องสร้างแยกและเป็นคนละชื่อกับ Administrator ที่ใช้ใน Jira แล้ว  ไม่อย่างนั้นชื่อจะซ้ำกันแล้วไป duplicate rule กับ jira
จะทำให้เข้าใช้ไม่ได้เรพาะยังไม่มี permission ใน confluence
จึงสร้างเป็น
User: confluence_admin
password :  password

Next > Confluence Setup Successful
คลิก Strart Using Confluence เริ่มใช้งาน
เมื่อเข้าใช้งาน เข้าที่ Dashboard ของ admin > Administrator Console  ไปที่ menu > User & Securiry User Directories
- เลือก Add Directory > Microsoft Active Directory

Name : ตั้งชื่อที่ต้องการ
Directory Type : Microsoft Active Directory
Hostname :  ( AD ที่เราจะดึงมาทีนี้ใส่ 10.66.10.1 )
Port :389
Username:  cn=ldapbinduser,ou=Service Accounts,dc=domainname,dc=co,dc=th
Password :  passworddomain

Base DN: dc=domainname,dc=co,dc=th
Additional User DN: OU=Corporates
Additional Group DN: OU=Group Resources

LDAP permissions: เลือก Read Only, with Local Groups

แล้วกด Test > save and Test  ไปยังอีกหน้าแล้วทดสอบใช้ชื่อ user-password ที่มีบนโดเมน
ผ่านแล้วกดกลับไปที่หน้า list directory  ระบบจะทำการ sysnc User และ group มาให้ confluence โดนอัตโนมัติ
รอสักครู่ใหญ่ในการ sync คร้งแรก  แล้วทดสอบเข้าไปดู user แและ group ได้ขอมูลมาครบ
เป็นอันเสร็จพิธีการ install JIRA - Confluence ครับ








Install Oracle Client


Install Oracle Client

# yum install php-pear php-devel zlib zlib-devel bc libaio glibc

$ rpm -ivh oracle-instantclient-basic-10.2.0.3-1.x86_64.rpm
$ rpm -ivh oracle-instantclient-devel-10.2.0.3-1.x86_64.rpm

create symbolic link
# ln -s /usr/include/oracle/10.2.0.3/client64 /usr/include/oracle/10.2.0.3/client
# ln -s /usr/lib/oracle/10.2.0.3/client64 /usr/lib/oracle/10.2.0.3/client

Create a file oracle.sh  inside /etc/profile.d   
export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib

and run it
#  source /etc/profile.d/oracle.sh

install PDO_OCI
# pecl download PDO_OCI
# tar -xvf PDO_OCI-1.0.tgz
# cd PDO_OCI-1.0

edit file confie.m4  in line 10  insert this for version 10.2.xxx
# vi config.m4

elif test -f $PDO_OCI_DIR/lib/libclntsh.$SHLIB_SUFFIX_NAME.10.2; then
  PDO_OCI_VERSION=10.2

และรันคำสั่ง

# phpize
# ./configure --with-php-config=php-config --with-pdo-oci=instantclient,/usr,10.2.0.3
# make
# make install

enable extension โดยสร้างไฟล์ /etc/php.d/pdo_oci.ini
# vi /etc/php.d/pdo_oci.ini
extension=pdo_oci.so
  
ทดสอบ
#  php -i | grep oci  
จำได้ผลประมาณนี้
/etc/php.d/pdo_oci.ini,
PDO drivers => oci, odbc, sqlite

OCI8  install ด้วย pear
# pear download pecl/oci8
# tar -xvf  oci8-2.0.7.tgz
# cd  oci8-2.0.7
แล้วทำการ build install
#phpize
# ./configure --with-oci8=shared,instantclient,/usr/lib/oracle/10.2.0.3/client64/lib,10.2.0.3
# make 
# make install

ทำการ extension สร้างไฟล์ /etc/php.d/oci8.ini
# vi /etc/php.d/oci8.ini   ใส่ไป

extension=oci8.so

# php -i | grep oci8   
เพื่อทดสอบ  จะได้ผลประมาณข้อความด้านล่าง
/etc/php.d/oci8.ini,
oci8
oci8.connection_class => no value => no value
oci8.default_prefetch => 100 => 100
oci8.events => Off => Off
oci8.max_persistent => -1 => -1
oci8.old_oci_close_semantics => Off => Off
oci8.persistent_timeout => -1 => -1
oci8.ping_interval => 60 => 60
oci8.privileged_connect => Off => Off
oci8.statement_cache_size => 20 => 20

ทำการ restart apache รอบหนึ่งก็เสร็จสิ้นการลง oracle client ครับ


http://shiki.me/blog/installing-pdo_oci-and-oci8-php-extensions-on-centos-6-4-64bit/

Setup tungsten MutiMaster MySQL


Setup tungsten MutiMaster MySQL


set ชื่อ server ที่เรียกหาระหว่างกัน ใน /etc/hosts
vi /etc/hosts
100.77.169.105   T-MA1-DataMDB1
100.77.169.106   T-MA2-DataMDB2
100.77171.163   MD1-DataMDB3
100.77171.164   MD2-DataMDB4

[Master 1 - Master X ทำทุกเครือง]
- ติดตั้ง mysql ตามปกติ
ติดตั้ง software ที่ต้องใช้งาน
- yum install java java-1.7.0-openjdk java-1.7.0-openjdk-devel ruby rsync -y
defalult  java จะ set path ให้เลยลองเช็ค
# more /etc/bash.bashrc
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_06
export PATH=$PATH:$JAVA_HOME/bin
ทดสอบ Ruby ว่าติดตั้งเรียบร้อยหรือไม่
$ echo "p 'hello'" | ruby -ropenssl
จะต้องแสดงข้อความ "hello"
- Add user Tungsten และ set password
# useradd -m -G mysql -s /bin/bash tungsten
# passwd tungsten
( ใส่ password ที่ตอ้งการ )
-  ขั้นตอนการทำ key authen

[Master1]
แก้กร๊ปที่ allow ใน sshd_config
# vi /etc/ssh/sshd_config     เพิ่ม tungsten
AllowGroups root tungsten

# su tungsten
$ ssh-keygen  (enter ผ่านไม่มีพาสเวิร์ด)
 [tungsten@T-MA2-DataMDB5 root]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/tungsten/.ssh/id_rsa):
Created directory '/home/tungsten/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/tungsten/.ssh/id_rsa.
Your public key has been saved in /home/tungsten/.ssh/id_rsa.pub.
The key fingerprint is:
8b:68:73:46:e8:ee:e9:74:69:a7:13:15:b5:e9:d3:06 tungsten@T-MA2-DataMDB5
The key's randomart image is:
+--[ RSA 2048]----+
|         ..      |
|        .  o     |
|         .E      |
|     .  .. o     |
|    . ..S o o    |
|   . o.o . o     |
|    * B.o        |
|   + B.o         |
|   o= ..         |
+-----------------+
จะได้ไฟล์  /home/tungsten/.ssh/id_rsa.pub  ของเครืองนั้นไว้
- สร้างไฟล์ authorized_keys2  ไว้เก็บ key แต่ละเครือง
$ touch path /home/tungsten/.ssh/authorized_keys2
$ chmod 644  /home/tungsten/.ssh/authorized_keys2
พ่น key ของเครืองนั้นเข้าไฟล์  authorized_keys2
$ cat id_rsa.pub >> authorized_keys2

[Master2]
แก้กร๊ปที่ allow ใน sshd_config  ทำทุกเครืองให้ครบ Server 3 , Server 4
# vi /etc/ssh/sshd_config     เพิ่ม tungsten
AllowGroups root tungsten
Genkey ออกมาเช่นเดียวกัน     เมื่อได้ไฟล์ id_rsa.pub  ทำการ copy key ไว้เป็นชื่ออื่นแล้วส่งไปที่เครือง Master1 จะได้ไม่งง
$ cp  id_rsa.pup id_rsa.pub_serv2
$ scp id_rsa.pub_serv2 root@100.77.169.105:/tmp/
ถ้ามีเครือง 3, 4 ก็ไล่ทำไปเรือยๆ  เช่นเดียวกันโดยได้ key แล้ว copy เป็นชื่อต่อท้ายต่างกัน แล้วส่งข้ามไปยังเครือง 1  ไฟล์ืจะได้ไม่ทับกัน
[master3]
$ cp  id_rsa.pup id_rsa.pub_serv3
$ scp id_rsa.pub_serv3 root@100.77.169.105:/tmp/

[master4]
$ cp  id_rsa.pup id_rsa.pub_serv4
$ scp id_rsa.pub_serv4 root@100.77.169.105:/tmp/


เมื่อเรากลับมาดูที่เครือง 1
[ Master1]
$ cd /tmp/
จะมีไฟล์    id_rsa.pub_serv2  id_rsa.pub_serv3  id_rsa.pub_servxxx  ( ถ้ามีหลายเครือง)  เราก็ cat key เหล่านี้ไปเรวมมนไฟล์ authen เลย
$ cat  id_rsa.pub_serv2 >> /home/tungsten/.ssh/authorized_keys2
$ cat  id_rsa.pub_serv3 >> /home/tungsten/.ssh/authorized_keys2
$ cat  id_rsa.pub_serv4 >> /home/tungsten/.ssh/authorized_keys2

สุดท้ายที่เครือง 1 ไฟล์ authorized_keys2 ที่เครือง Master1 จะมี key ทุกเครืองในไฟล์นี้
[tungsten@Dev-Tungsten2 .ssh]$ more authorized_keys2   เช่น
ssh-rsa AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7WEVC2rStSzpXMDLBmr6ADTRx4Zsrz76Y2TzBMd
STi8V6wPXX/nhK/Mn8gn9KhTiIH6v+EKs27cEvSuqOpbfL1G5U67iDyZjlpCF6JPRKyXi0xKN1hpVQKXxgpgf6YKkW/DXHyBBcrAd5/fW0uTpC23AZLw9x03lNiSk0BTU098KqA6CS7MPNUg4zOMgsSZPvynB1N62S7rVJ2
PpuGqW0knwcS/nRd6RNH4/sT3XVY2qYTJBTUFNYTLJpQ== tungsten@T-MA1-DataMDB1
ssh-rsa BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBkC4q51SexUGdIDkf8K0pQjjnFIeWBnZ5IYKpq6K7
Bj0vYCR51a5XmHo70XuQP9YWMHeZVw4seQNkHFNdkn0ewixmZNZIDCpmEP9LVWxckdWJSu6vQCUC4+3ai17xcTisLanxdDe4fzkbyB3R/EZHu9FyZZZho+9NOsKDWof99a781xKWTF85mh0Qk1NfsMAJXWUn2TE+ivg1xrJ
XAW2DfY9UYhHtE1wso85T+W0rop/GN/1DcbphvDWSqww== tungsten@T-MA2-DataMDB2
ssh-rsa CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCREB/VMRmVe7VyN+czgXgKZeDWB2NZkuYF16bH74EW
owgx2l5fw1cZV9VrAFoIogPvu9s8fxXJzxvIjbK4JCc7y8OYEljnUfuemlrxDu1efxjZcPLZK8TmMQXX7Xhl0K9wO5eaiLi6mDI4sPbB2w1SQqA/JxOXQ4Y/GYUQ/LOLwikRrtSddMmyGJMZ4ETtiAn7FOeaaUc7jBBB71T
SHcH+af+BKLKpvAE30b28h48xjdh1520KoNOwYIN+56Q== tungsten@MD1-DataMDB3
ssh-rsa DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDh4oPIorFEYkmGbrLnE1qqsaV7dYyaYiGUDrb
wBJF6V2AnTwJVgAsBkjtfoZlgGNDgJAEeprHjOnBgu0W8fQVXl0+kuR7r+4SzdfPtI2qQiejeCx2yQ6TBUCAgO4d088fdS28/r3AC17NLiFQD9f2IhG3kx0cFOVVJQ0/0Z8Br4hkdCLDr+MfDmuGJyhiGemZ+MBmxluFkSR
N37xggmhs5veyltMVYPvZQtGIo/y2ynLKtfsN/iCwyMw== tungsten@MD2-DataMDB4

เราก็ทำการส่ง key ดังกล่าวจากเครือง 1 ไปให้กับทุกเครืองที่เราทำให้ครบ
$ scp authorized_keys2 tungsten@100.77.169.106:/home/tungsten/.ssh/
$ scp authorized_keys2 tungsten@100.77171.163:/home/tungsten/.ssh/
$ scp authorized_keys2 tungsten@100.77171.164:/home/tungsten/.ssh/
ถ้ามีเครรือง 3,4 ก็ก๊อบไปวางเรือยๆ  แล้วทดสอบ ssh ข้ามหากัน

su tungsten
[tungsten@Dev-Tungsten1 mysql]$ ssh 100.77.169.106
Last login: Thu Apr  3 15:12:01 2014 from dev-tungsten1
[tungsten@Dev-Tungsten2 ~]$
ทดสอบ ssh ทุกเครืองให้ครบ 3,4
- เตรียม Databases
แก้ไขค่า config my.cnf  เพิ่มค่าลงไปดังนี้  ทุกเครื่องจะต่างกันที่ id

[Master1]

server-id       = 1   <<= ลำดับ id  server
auto_increment_increment = 4  <<= จำนวน server ที่จะทำ
auto_increment_offset = 1
default-storage-engine=InnoDB
sync_binlog=1
log_bin = mysql-bin
innodb_buffer_pool_size = 512M
max_allowed_packet=48m
innodb_flush_log_at_trx_commit=2


เพิ่ม grant
เสร็จแล้วทำการ grant สิทธิ์ใน mysql ให้ user นั้น
>grant all on *.* to tungstenuser@'%' identified by 'tungstenpassword' with grant option;
>FLUSH PRIVILEGES;


**จะเห็นได้ว่า auto_increment_increment = 4 ดังนั้น sql ของโปรแกรมตารางไหนที่เป็น auto increment เช่นพวก ID ต่างๆ  มันจะกระโดดๆ ไปทีละ 4 เพราะ server ทุกตัวสามารถเขียนได้ไหมจึงต้องเว้นค่าให้เครืองอื่นๆ ในการเขียน data ลงไปนั่นเอง

Setup tungsten
[Master1]
ดาวโหลดเวอร์ช่น ปัจจุบันที่ https://code.google.com/p/tungsten-replicator/downloads/list
# wget https://tungsten-replicator.googlecode.com/files/tungsten-replicator-2.2.0-292.tar.gz
แล้วแตกไฟล์เพื่อทำการคอนฟิก ไว้ที่ /opt
# tar -xzf tungsten-replicator-2.2.0-292.tar.gz -C /opt
# cd tungsten-replicator-2.2.0-292
สร้างไฟล์ setup-masters.sh  แล้วใส่ค่า ชื่อ Server ที่เราตั้งในไฟล์  /etc/host ,  ตั้งค่าไฟล์คอนฟิก my.cnf , user -pass ของ tungsten ใน mysql เที่เรา
# vi setup-masters.sh
 ตั้งค่าประมาณนี้

#! /bin/bash
MYSQL_CONF=/etc/my.cnf
./tools/tpm install four_musketeers \
    --thl-log-fsync=true \
    --topology=all-masters \
    --home-directory=/opt/replicator/ \
    --replication-user=tungsten \
    --replication-password=tungsten \
    --masters=T-MA1-DataMDB1,T-MA2-DataMDB2,MD1-DataMDB3,MD2-DataMDB4 \
    --master-services=DB1,DB2,DB3,DB4 \
    --start


ทำการติดตั้ง Tungsten Replicator โดยใช้คำสั่งด้านล่าง ตัว Tungsten Replicator จะทำการติดตั้งลงใน master1 และ master2 ...  โดยอัตโนมัติ
$ cd /opt/tungsten-replicator-2.2.0-292
$  ./setup-masters.sh
รอบแรกจะพบ error บางเพราะสคริปจะสร้าง folder /opt/replicator ที่เครือง Master1 ให้แต่  ไม่มี permission เขียนไฟล์
# chown -R tungsten:tungsten  /opt/replicator

เปลี่ยน user ปัจจุบันให้เป็น tungsten
$ su tungsten
และที่เครือง Server อืนๆ ก็สร้างให้ด้วยเช่นกัน
[Master2]
# mkdir /opt/replicator
# chown -R tungsten:tungsten  /opt/replicator

[Master3]
# mkdir /opt/replicator
# chown -R tungsten:tungsten  /opt/replicator

[Master4]
# mkdir /opt/replicator
# chown -R tungsten:tungsten  /opt/replicator

และกลับมารันคำสั่งอีกรอบ
[Master1]
[tungsten@Dev-Tungsten1 tungsten-replicator]$ ./setup-masters.sh
ผลประมาณนี้

NOTE  >> Data service(s) four_musketeers updated in /opt/tungsten-replicator-2.2.0-292/deploy.cfg
..which: no innobackupex-1.5.1 in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
which: no innobackupex-1.5.1 in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
.which: no innobackupex-1.5.1 in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
WARN  >> master1 >> We suggest adding "open_files_limit=65535" to the MySQL configuration file for tungsten@Master1:3306 (WITH PASSWORD) (MySQLSettingsCheck)
WARN  >> master1 >> Add '*       -    nofile  65535' to your /etc/security/limits.conf and restart MySQL to make sure the setting takes effect (MySQLSettingsCheck)
.WARN  >> master1 >> MyISAM tables exist within this instance - These tables are not crash safe and may lead to data loss in a failover (MySQLMyISAMCheck)
which: no innobackupex-1.5.1 in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
WARN  >> master2 >> MyISAM tables exist within this instance - These tables are not crash safe and may lead to data loss in a failover (MySQLMyISAMCheck)
WARN  >> master1 >> We suggest adding "open_files_limit=65535" to the MySQL configuration file for tungsten@Master1:3306 (WITH PASSWORD) (MySQLSettingsCheck)
WARN  >> master1 >> Add '*       -    nofile  65535' to your /etc/security/limits.conf and restart MySQL to make sure the setting takes effect (MySQLSettingsCheck)
WARN  >> master1 >> MyISAM tables exist within this instance - These tables are not crash safe and may lead to data loss in a failover (MySQLMyISAMCheck)
WARN  >> master2 >> MyISAM tables exist within this instance - These tables are not crash safe and may lead to data loss in a failover (MySQLMyISAMCheck)
.which: no innobackupex-1.5.1 in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
which: no innobackupex-1.5.1 in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
which: no innobackupex-1.5.1 in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
.which: no innobackupex-1.5.1 in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
.......
#####################################################################
# Next Steps
#####################################################################
Once your services start successfully replication will begin.
To look at services and perform administration, run the following command
from any database server.
  /opt/replicator//tungsten/tungsten-replicator/bin/trepctl services
Configuration is now complete.  For further information, please consult
Tungsten documentation, which is available at docs.continuent.com.
NOTE  >> Command successfully completed


แสดงว่าเรียบร้อยแล้ว  ลองทดสอบดู service tunsten ดู

[tungsten@T-MA1-DataMDB1 .ssh]$ /opt/replicator//tungsten/tungsten-replicator/bin/trepctl services
Processing services command...
NAME              VALUE
----              -----
appliedLastSeqno: 807937
appliedLatency  : 0.137
role            : master
serviceName     : db1
serviceType     : local
started         : true
state           : ONLINE
NAME              VALUE
----              -----
appliedLastSeqno: 245
appliedLatency  : 0.0
role            : slave
serviceName     : db2
serviceType     : remote
started         : true
state           : ONLINE
NAME              VALUE
----              -----
appliedLastSeqno: 2805017
appliedLatency  : 0.613
role            : slave
serviceName     : db3
serviceType     : remote
started         : true
state           : ONLINE
NAME              VALUE
----              -----
appliedLastSeqno: 143
appliedLatency  : 0.0
role            : slave
serviceName     : db4
serviceType     : remote
started         : true
state           : ONLINE
Finished services command...
เรียบร้อย ONLINE หมดแล้ว  ลองทดสอบด้วยการ ลบ data ที่เครือง Master1 หรือ update ที่ Master2  Master3  Master4ดู  ข้อมูลอัพเดทเหมือนกันเป็นอันว่าใช้ได้
เพิ่ม service ให้ระบบ CentOS สตาร์ท
# ln -s /home/tungsten/tungsten/tungsten-replicator/bin/replicator /etc/init.d/replicator
# chkconfig --add replicator
# chkconfig replicator on
refer:
add node multiserver
https://code.google.com/p/tungsten-replicator/wiki/TRCMultiMasterInstallation#Install_a_three_masters_replication
http://datacharmer.blogspot.com/2013/07/tpm-multi-master-composer.html
https://code.google.com/p/tungsten-replicator/wiki/TungstenReplicatorCookbook


วันอังคารที่ 8 กรกฎาคม พ.ศ. 2557

การ merg partition บน Windows Server


การ merg partition บน Windows Server

>diskpart
>list disk  เพื่อดู disk
>sel disk 0   ชื่อดิสที่โชว์ก่อนนี้
>list partition   เพื่อดู partition ของดิสที่เราเลือก

>sel par 2   ( เลือกพาธิชั่นที่รวม unlocated ไว้ที่นี้คือ drive: D+allocated)
>list vol   (เพื่อดูชื่อ volume ของแต่ละไดร์ฟ)

>sel vol 2 (ที่นี้คือ volume 2 drive E: ที่เราต้องการขยายแล้วมี unllocated ดิสรวมในพื้นทีนี้แล้ว
>extend    คำสั่งขยายเต็มพื้นที่ที่ unllocated ที่เหลือก

setup replicate memcached

การ setup replicate memcached

ลง library ที่ต้องใช้งาน
yum install libmemcached  perl-IO-Socket-INET6 libevent

เลือกเวอร์ชั่นท่ต้ืองการ   http://repcached.lab.klab.org/
rpm -ivh  memcached-1.2.8-repcached-2.2-1.el6_.x86_64.rpm


[root@server1 software]# telnet 10.77.169.110 10001
Trying 10.77.169.110...
Connected to 10.77.169.110.
Escape character is '^]'.
set test 0 0 4
ตั้งชื่อ test  <enter>
STORED  แสดงว่าเก็บค่าแล้ว


[root@server2 init.d]# telnet 10.77.169.109 10001
Trying 10.77.169.109...
Connected to 10.77.169.109.
Escape character is '^]'.
get test
จะได้ค่าเดียวกัน
VALUE test 0 4
test
END

วันพฤหัสบดีที่ 3 กรกฎาคม พ.ศ. 2557

Convert Disk type from Thin to Thick

Convert Disk type from Thin to Thick


สำหรับ VMware ESXi version 5.5 ลอง migrate แล้วไม่เวิร์คใช้วิธีนี้แทน

1. shutdown ตัว machine ที่ต้องการจะเปลียน Thin ==> Thick
2. คลิกแทบ Summary ที่ datastore คลิกขวา  Browse  เข้าไปยัง datastore ที่เครื่องนั้นใช้เข้าไปยังชื่อ sever ที่เราจะทำการเปลียนแปลง
3. หาไฟล์  .vmdk  คลิกขวาเลือก  Inflate   แล้วรอจนกระทั้งเสร็จขั้นตอน
4. login  เข้า iLO  VMware เพื่อเปิด enable ssh
5. เมื่อทำการ enable แล้วเข้าไปยัง vmfs เครืองที่เราจะทำการแก้ไข
   จะเป็น /vmfs/datastore/ชื่อเครืองxxx  ประมาณนี้
6. เมื่อเข้าไปจะเห็นไฟล์ ที่เราทำการ Inflate ไปแล้ว  จะมี  -flate  ต่อท้ายชื่อไฟล์เรานั้นเองใช้คำสั่ง

> mkfstools -i ServerWeb_1.vmdk -d zeroedthick ServerWeb_1-flate.vmdk

ServerWeb_1.vmdk  ==> ไฟล์เก่า
ServerWeb_1-flate.vmdk ==> ไฟล์ใหม่ที่ทำให้เป็น thick

เสร็จดูผลที่ resource ได้เลย

วันอังคารที่ 4 กุมภาพันธ์ พ.ศ. 2557

mysql import data .sql แล้ว ภาษาไทยเพี้ยน

mysql import data .sql แล้ว ภาษาไทยเพี้ยน 

บางครั้งฝั่ง dev ใช้ tool ต่างกัน setting ต่างกันแล้วฝากให้เรา import data .sql ใน mysql  อาจจะเจอปัญหากับภาษาไทยแสดงผลไม่ถูกต้องหลังการ import
mysql -u root -p old_database < databasebackup.sql  

ฟิลด์ที่เป็นภาษาไทยกลับแสดงผลเป็น ??? หรือต่างดาว

วิธีคือ 
- นำไฟล์ .sql นั้นมาเปิดด้วย Editplust  แล้ว save as > เลือก Encoding เป็น UTF-8
แล้ว save เป็นไฟล์ใหม่แล้วค่อยอัพขึ้นไปที่ server 

- ใส่ออฟชั่น --default_character_set utf8  เพิ่มในคำสั่ง import  เป็น


# mysql -u root -p  --default_character_set utf8 old_database < databasebackup.sql

ทีนี้ลองเปิดเข้าไปดูด้วย phpMyAdmin ก็จะเห็นว่าแสดงผลเป็นภาษาไทยได้ถูกต้องแล้ว

update CentOS 6.4 to 6.5

update CentOS 6.4 to 6.5
** เช็ค /boot  ว่าเหลือกพื้นที่พอในการอัพเกรด   อย่างน้อยสักประมาณ 50 MB  ไม่งั้นอัพเท่าไหร่ก็ได้ kernel เดิม
# yum list updates
# yum update

# yum clean all
# yum update glibc* yum* rpm* python*
# yum update
# reboot   สักรอบแล้วตรวจสอบ version ดู

# cat /etc/redhat-release
CentOS release 6.5 (Final)

Install ElasticSeach in Centos

เริ่มต้น install java ก่อนครับ
ที่ http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
ดาวโหลดแล้ว install ไปซะ

ณ ตอนนี้เวอร์ชั่น jdk-7u51-linux-x64.rpm ล่าสุด
# rpm -ivh  jdk-7u51-linux-x64.rpm
################
################  รอจนเสร้จ

# jvava -version
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)

set part
# vi ~/.bash_profile
ใส่พาร์ทของ version ที่เราใช้ให้ตรงไป

PATH=$PATH:$HOME/bin
export JAVA_HOME=/usr/java/jdk1.7.0_51/bin/java

ทดสอบ  
# echo $JAVA_HOME 
/usr/java/jdk1.7.0_51/bin/java
พบถูกต้อง  ต่อไปก็ทำการ install  ElasticSeach

ดาวโหลดเวอร์ชั่น ปัจจุบันได้ที่ http://www.elasticsearch.org/

# cd /home/www/html/    
# tar -xzf elasticsearch-0.90.10.tar.gz
# mv elasticsearch-0.90.10.tar.gz elasticsearch

install the Elasticsearch Service Wrapper ตัวสตาร์ท service
# curl -L -k http://github.com/elasticsearch/elasticsearch-servicewrapper/tarball/master | tar -xz
# mv *servicewrapper*/service  /home/www/html/elasticsearch/
# /home/www/html/elasticsearch/bin/service/elasticsearch install
สคริปจะติดตั้งที่ /etc/init.d  ให้เรียบร้อยเป็น auto start  ต่อไปเวลาใช้งานเรียก

#/etc/init.d/elasticsearch start