เริ่มต้น Jenkins part 5: ปลาหมึกกับพ่อบ้านเลี้ยงแมว

Phai Panda
4 min readDec 5, 2019

--

โค้ดอยู่กับ Github เมื่อไรก็ตามที่ change ปลาหมึกจะบอกกับพ่อบ้านว่าจัดการต่อได้ พ่อบ้านก็ทำตามคำสั่งที่เราแจ้งแก่เขาไว้ (CI) ได้ .war แล้วจึงโยนขึ้น Apache Tomcat (CD)

ความเดิมจากตอนที่แล้ว

Github

เชื่อว่าเพื่อนๆหลายคนรู้จักเป็นอย่างดี Github คือแหล่งเก็บ Git (.git) บนอินเตอร์เน็ตนั่นแหละครับ เรียกว่า repository

Github: Create Repository

ขั้นตอนต่อจากนี้เราต้องนำโปรเจกต์ที่สร้างไว้ก่อนหน้านี้ HelloJenkins มาไว้ที่นี่

สร้าง repository ใหม่ ผมตั้งชื่อว่า hello-jenkins ง่ายๆก่อนนะครับให้เป็น public repository ด้วย

เราจะได้ path ที่เก็บ .git นี้มา ผมได้หน้าตาแบบนี้

https://github.com/proSbeginner/hello-jenkins.git

กลับไปเปิด HelloJenkins ของเรา

เราต้องเพิ่ม .git ให้กับโปรเจกต์นี้ก่อน อันดับแรกดูก่อนว่าเครื่องคอมฯของเรามี Git ติดตั้งไว้หรือยัง ถ้ายังก็ติดตั้ง

Google ไปว่า

git download

สำหรับคนที่มีอยู่แล้ว

git --version

git version 2.23.0

ที่โปรเจกต์ พิมพ์

git init

จากนั้นสร้างไฟล์ชื่อ .gitignore

touch .gitignore

ไฟล์นี้ใช้เพื่อบอกกับ Git ว่าไม่ต้องสนใจ folder หรือไฟล์ไหนบ้าง

อ่านเรื่อง Git เพิ่มเติม (ของผมเอง สมัยเด็กน้อย)

เนื้อหาของ .gitignore ให้ค้น Google ถามชาวบ้านไป

maven project .gitignore

ผมได้ประมาณนี้

.gitignore
เหลืออีก 5 ไฟล์ที่ต้อง commit

จากนั้น commit ไฟล์ที่เหลือ

จำคำสั่งไม่ได้ ขอกลับไปดูที่ Github หน่อย

เพื่อบอกว่า .git บน repository อยู่ที่ไหน

git remote add origin https://github.com/proSbeginner/hello-jenkins.git

เพื่อ push โค้ดของเราขึ้นไป

git push -u origin master
เนียนทุกขั้นตอน
ขึ้นมาแล้วเฮ้ย!

ตามแผนการ (อันชั่วร้าย) ทุกประการในขณะนี้มีโค้ดแล้วก็ push ไปไว้บน Github

Jenkins: Maven Plugin

ที่ Jenkins บน Amazon EC2 เนื่องจากเรามีโปรเจกต์ Maven แล้ว ก็ต้องเพิ่ม Maven Plugin เข้าไปด้วย

เมนู Manage Jenkins เลือก Manage Plugin เลือกแท็บ Available แล้ว Filter หา maven

เลือก Maven Integration

กดปุ่ม Install without restart คอยจนกว่าจะเสร็จ

Jenkins: Create Maven Project

ถัดมาคือการสร้างโปรเจกต์ใหม่บน Jenkins โดยเลือกประเภทเป็น Maven

วาง public git repository url ที่ได้สร้างไว้ลงไป

บอกให้ mvn ทำคำสั่ง package

บันทึกแล้วกดปุ่ม Build Now

หากไม่มีอะไรผิดพลาดก็จะได้ของ

เย้ๆ

กระบวนการนี้อยู่ส่วนไหนของภาพ? อยู่ตรงนี้ครับ

เอาล่ะ ใกล้ความจริงแล้ว ต่อไปเราควรเตรียม server อีกตัวเพื่อทำงานของ Apache Tomcat เพื่อที่จะได้นำ .war นี้ไป deploy เหมือนกับที่เราได้ทำบนเครื่อง local ที่ผ่านมา ต่างกันแค่มันจะเป็นไปโดยอัตโนมัติ

และควรทราบว่าแต่ละ instance ที่เราใช้บริการของ Amazon EC2 นี้ก็แยกจากกัน นั่นหมายความว่ามัน (น่าจะ) ใช้ทรัพยากรแยกจากกันด้วย เราจึงจะสร้าง instance ตัวใหม่ที่ทำงานของ Apache Tomcat อย่างเดียวเลย

Apache Tomcat: New Instance

ที่หน้า AWS Management Console (ถ้ายังจำได้) เลือก EC2

เลือก Instances แล้วกดปุ่ม Launch Instance

ลองมาเล่นตัวนี้บ้าง Amazon Linux AMI 2018.X.X เห็นว่ามีเครื่องมือติดตั้งไว้ให้หลายตัว

เราก็ขอเลือกแบบฟรีเช่นเดิมนะครับ

กดปุ่ม next ทางขวาล่างไปเรื่อยๆจนกว่าจะถึงขึ้นตอนที่ 5

กดปุ่ม Add Tag

ตรง Key ใส่ Name ตรง Value ผมใส่ apache-tomcat

กด next

ขอให้เลือก security group เดิมกับตัวก่อน

กดปุ่ม Review and Launch

เลือก key pair ที่มีอยู่แล้ว (จำไม่ได้ให้ย้อนไปอ่าน part แรก)

ทุกอย่างเรียบร้อยก็ Launch Instances ได้

ระหว่างนี้คอยไปก่อน จนกว่า Instance State จะเปลี่ยนเป็น running

Apache Tomcat: Setup

เปิด Terminal แล้ว remote ไปยัง Public IP ของ apache-tomcat instance ข้างต้น (จำไม่ได้ให้ย้อนไปอ่าน part แรก)

ผมบันทึกไว้ที่ Download ก็จัด

sudo ssh -i ~/Downloads/ec2-red-hat-t2micro-devops.pem ec2-user@X.X.X.X

Amazon Linux AMI 2018.X.X บอกว่าได้ลงจาวาให้แล้ว เราก็ตรวจดูหน่อย

java -versoin

java version “1.7.0_231”
OpenJDK Runtime Environment (amzn-2.6.19.1.80.amzn1-x86_64 u231-b01)
OpenJDK 64-Bit Server VM (build 24.231-b01, mixed mode)

น่าจะใช้ได้แหละ

ถัดไปก็หาแมวให้พ่อบ้านของเรา

Google ไปว่า

download apache tomcat tar.gz

ที่ local เราใช้เวอร์ชัน 7 ใช่ไหม งั้นเราลองหาเวอร์ชัน 8 มาใช้กับ server ใหม่นี่ดีกว่า

คัดลอกลิงก์มา (ทำเหมืนตอนติดตั้ง Maven)

เปลี่ยนตนเป็ root แล้วเข้าไปที่ opt folder

sudo su -cd /opt

จากนั้นดึง

wget https://www-eu.apache.org/dist/tomcat/tomcat-8/v8.5.49/bin/apache-tomcat-8.5.49.tar.gz

แล้วแกะ

tar -zxvf apache-tomcat-8.5.49.tar.gz

เข้าไป

cd apache-tomcat-8.5.49/bin

มองหาไฟล์ startup.sh แล้วรัน

./startup.sh

ผลลัพธ์

/opt/apache-tomcat-8.5.49/bin/bootstrap.jar:/opt/apache-tomcat-8.5.49/bin/tomcat-juli.jar
Tomcat started.

คัดลอก Public IP ของ server instance ไปวางที่ address bar ของ Browser อย่าลืมระบุ port 8080 แล้ว enter

งดงามเหลือเกิน

เท่านี้พ่อบ้านก็มีแมวเลี้ยงแล้ว หึหึหึ

ก็ขอจบ part นี้ไว้เท่านี้ครับ ถัดไปเรามา config เจ้าแมวให้รู้จักปลา เอ้ย! ไฟล์ .war กัน

--

--

No responses yet