เมื่อเร็ว ๆ นี้ผู้นำได้ขอให้โครงการท้องถิ่นในเซี่ยงไฮ้ใช้เจนกินส์เพื่อให้บรรลุการใช้งานอัตโนมัติเพื่อให้โครงการสามารถส่งมอบให้กับนักเรียนปฏิบัติการและบำรุงรักษาเพื่อลดภาระงานของการพัฒนา บันทึกกระบวนการปีนหลุมนี้
1. คำนำ
Jenkins เป็นเครื่องมือการรวมอย่างต่อเนื่องที่พัฒนาขึ้นอยู่กับ Java เพื่อตรวจสอบการทำงานซ้ำ ๆ อย่างต่อเนื่องและฟังก์ชั่นของมันรวมถึง:
1. โครงการเปิดตัว/ทดสอบเวอร์ชันซอฟต์แวร์ต่อเนื่อง
2. ตรวจสอบงานที่ดำเนินการโดยการโทรภายนอก
ฉันดาวน์โหลดด้านบนจากสารานุกรม พูดตามตรงฉันไม่เข้าใจ นี่คืออะไร? ในความเป็นจริงขึ้นอยู่กับความเข้าใจและแอปพลิเคชันปัจจุบันของฉันสิ่งที่พบบ่อยที่สุดคือการปรับใช้ ฟังก์ชั่นอื่น ๆ จะต้องศึกษา (_) อาจารย์กำลังทำงานในองค์กรที่ไม่รู้จักรัฐในเซี่ยงไฮ้ กระบวนการเปิดตัวโครงการปัจจุบันคือ:
1. เซิร์ฟเวอร์ท้องถิ่นหรือแพคเกจใช้ Maven เพื่อสร้างแพ็คเกจสงคราม
2. เชื่อมต่อกับเซิร์ฟเวอร์โครงการจากระยะไกลหรือ SSH
3. หยุด Tomcat ลบแพ็คเกจเก่าและแคชและใส่แพ็คเกจที่พิมพ์ใหม่ใน
4. รีสตาร์ท Tomcat ขั้นตอนง่าย ๆ ที่ดูเหมือนจะเสร็จสมบูรณ์ แต่จริงๆแล้วมันต้องใช้เวลาในการพัฒนามาก
จากนั้นใช้เจนกินส์:
1. คลิกเพื่อสร้างทันทีและเสร็จสิ้น อะไร เพียงคลิกปุ่มแล้วก็เสร็จสิ้น ใช่มันเป็นปุ่ม ในความเป็นจริงหลังจากที่คุณคลิกปุ่มเจนกินส์ได้ช่วยให้คุณทำงานพื้นหลังของกระบวนการข้างต้น ครั้งนี้ฉันจะแนะนำวิธีทำให้มันทำงานในพื้นหลัง
2. การติดตั้งและการก่อสร้าง
การแนะนำนี้ขึ้นอยู่กับ Windows ซึ่งสามารถติดตั้งบนคอมพิวเตอร์พัฒนาหรือเซิร์ฟเวอร์ Windows Server
1. ดาวน์โหลดเจนกินส์
เจนกินส์มีวิธีการติดตั้งหลายวิธี
การติดตั้ง 1.1jenkins.msi เป็นเหมือนเมื่อเรามักจะติดตั้งซอฟต์แวร์ DOTS ดาวน์โหลดที่อยู่: https://jenkins.io/download/
1.2Jenkins.war แพ็คเกจเนื่องจากเป็นแพ็คเกจสงครามมันไปโดยไม่บอกว่าทุกคนรู้วิธีเริ่มต้นเพียงแค่โยนมันลงใน Tomcat ดาวน์โหลดที่อยู่: http://updates.jenkins-ci.org/download/war/
2. เริ่มเจนกินส์
โดยส่วนตัวแล้วฉันขอแนะนำวิธีการติดตั้งที่ 1.1 ฉันมักจะพบปัญหาการไหลล้นหน่วยความจำเมื่อใช้ 1.2 แน่นอนว่าหน่วยความจำล้นสามารถปรับได้ แต่มีภาระงานเพิ่มเติม
การใช้วิธีการติดตั้ง 1.1 หลังจากการติดตั้งเสร็จสมบูรณ์เราจะเห็นบริการ Jenkins ในบริการ Windows ดังที่แสดงในรูปด้านล่างเพียงเริ่มและปิดและรีสตาร์ทโดยตรงเพื่อคลิกบริการ
หากคุณใช้ 1.2 เพื่อดาวน์โหลดแพ็คเกจสงครามมีสองวิธีในการเริ่มต้น
ประเภทแรกถูกวางไว้ในภาชนะ Tomcat
ประเภทที่สองคือการป้อน CMD ลงในไดเรกทอรีการติดตั้ง Java -Jar Jenkins.war
3. ติดตั้งเจนกินส์
วิธีการติดตั้ง 1.1 และ 1.2 เหมือนกัน
พอร์ตเริ่มต้นของเจนกินส์ 8080 สามารถแก้ไขได้ Method Baidu
ป้อน http: // localhost: 8080/ เส้นทางฟอนต์สีแดงมีรหัสผ่านกรอกรหัสผ่านและขั้นตอนต่อไป
เมื่อเลือกปลั๊กอินขอแนะนำให้เลือกปลั๊กอินที่แนะนำอย่างเป็นทางการเพื่อหลีกเลี่ยงปัญหามากมาย
รอการติดตั้ง ...
หลังจากการติดตั้งคุณจะเห็นภาพด้านล่าง ชื่อผู้ใช้และรหัสผ่านใช้เพื่อเข้าสู่ระบบชื่อเต็มจะใช้เพื่อแสดง ดำเนินการต่อไปในขั้นตอนต่อไป
เนื่องจากฉันต้องการปรับใช้โครงการ Maven จึงไม่มี Maven ในปลั๊กอินเริ่มต้นของเจนกินส์ดังนั้นฉันจึงต้องติดตั้งก่อน
คลิกปลั๊กอินด้านล่างเพื่อติดตั้งโดยตรงปลั๊กอิน Maven Integration
ติดตั้งปลั๊กอินการปรับใช้ HOT ไปยังปลั๊กอินคอนเทนเนอร์
4. กำหนดค่าเจนกินส์
เราจำเป็นต้องจับคู่ไฟล์การตั้งค่า Maven ที่อยู่ JDK และ Maven ไฟล์การตั้งค่าจะต้องตรงกัน อย่าใช้เป็นค่าเริ่มต้น เนื่องจากสิ่งนี้ไม่ตรงกันคุณต้องดิ้นรนมานานแล้ว
ในที่สุดเพียงแค่ใช้และบันทึก จำไว้ว่าอย่าลืมบันทึกแอปพลิเคชันมิฉะนั้นจะไร้ประโยชน์
ต่อไปเราจะสร้างโครงการใหม่ก่อนเข้าสู่ชื่อโครงการเลือกโครงการ Maven, OK
เลือกการจัดการซอร์สโค้ดเพราะเราเป็นโครงการระดับองค์กรไม่ใช่โอเพนซอร์สใช้ SVN เลือกการโค่นล้มเพื่อกำหนดค่า SVN
URL คือที่อยู่ SVN ของคุณและข้อมูลรับรองคือรหัสผ่านบัญชี
จากนั้นไปที่ขั้นตอนก่อนสิ่งนี้เป็นสิ่งที่จำเป็นต้องดำเนินการก่อนบรรจุภัณฑ์ ตัวอย่างเช่นโครงการปัจจุบันของเราจำเป็นต้องคัดลอกไฟล์ log4j.xml ฯลฯ คุณสามารถเขียน Windows หรือ Shell Scripts ตามสภาพแวดล้อม
หากไม่มีการดำเนินการไม่จำเป็นต้องจับคู่
โพสต์สคริปต์ของฉันสำหรับการอ้างอิงของคุณ ฉันจะใช้ XXX เพื่อแทนที่ชิ้นส่วนที่เกี่ยวข้อง
@echo Offrem Set Variable :: App.xxx App.xxx รหัสท้องถิ่นและไดเรกทอรีชุด App.xxx = "D: /svn/svn.173.xxx/app.xxx/" :: home.ommm's log4j.xml ตัวแปรเริ่มต้น :: home_omm_log4j_goals_ home_omm_log4j_goals_path = "d: /svn/svn.173.xxx/app.xxx/src/home.ommm/src/main/resources" :: home_omm_log4j เส้นทางของ log4j.xml home_omm_log4j = "d: /svn/svn.173.xxx/app.xxx/config/home.ommm/sh_test/resources" :: home.ommm's log4j.xml ตัวแปร end :: home.weixin เริ่มต้น: home.weixin's log4j.xml home_weixin_log4j_goals_path = "d: /svn/svn.173.xxx/app.xxx/src/home.weixin/src/main/resources" :: home_weixin_log4j home_weixin_log4j = "d: /svn/svn.173.xxx/app.xxx/config/home.weixin/sh_test/resources" :: home_weixin_config.js_goals_path config.js เส้นทาง home_weixin_config.js_goals_path = "d: /svn/svn.173.xxx/app.xxx/src/home.weixin/src/main/webapp/module/js" :: home_weixin_config.js home.ommm home_weixin_config.js = "d: /svn/svn.173.xxx/app.xxx/config/home.weixin/sh_test/webapp/module/js" :: home.weixin ตัวแปรสิ้นสุด :: บริการตัวแปรเริ่มต้น :: service_log4j_goals_path = "d: /svn/svn.173.xxx/app.xxx/src/service/src/main/resources" :: service_log4j เส้นทางของการทดสอบ log4j.xml service_log4j = "d: /svn/svn.173.xxx/app.xxx/config/service/sh_test/resources" :: service_application_resources_all_goals_path เส้นทางของแอปพลิเคชัน service_application_resources_all_goals_path = "d: /svn/svn.173.xxx/app.xxx/src/service/src/main/resources/config/spring" :: service_application_resources_all แอปพลิเคชัน service_application_resources_all = "d: /svn/svn.173.xxx/app.xxx/config/service/sh_test/resources/config/spring" :: service end :: service.refresh ตัวแปรเริ่มต้น:: Service_refresh_log4j_go service_refresh_log4j_goals_path = "d: /svn/svn.173.xxx/app.xxx/src/service.refresh/src/main/resources" :: service_refresh_log4j service_refresh_log4j = "d: /svn/svn.173.xxx/app.xxx/config/service.refresh/sh_test/resources" :: service_refresh_application_resources_all_goals_path เส้นทางไปยังแอปพลิเคชัน service_refresh_application_resources_all_goals_path = "d: /svn/svn.173.xxx/app.xxx/src/service.refresh/src/main/resources/config/spring" service_refresh_application_resources_all = "d: /svn/svn.173.xxx/app.xxx/config/service.refresh/sh_test/resources/config/spring" :: service.refresh %home_omm_log4j_goals_path %/log4j.xml (del %home_omm_log4j_goals_path %/log4j.xml) cd %home_omm_log4j_goals_path %copy %home_omm_log4j %/log4j.xml log4j.xml: %home_weixin_log4j_goals_path %/log4j.xml (del %home_weixin_log4j_goals_path %/log4j.xml) cd %home_weixin_log4j_goals_path %/log4j.xml) cd %home_weixin_log4j_goals %home_weixin_log4j %/log4j.xml log4j.xml :: ตัดสินว่าไฟล์ config.js ของ home.weixin มีอยู่ถ้ามีอยู่ใน home_weixin_config.js_goals_path %/config.js %home_weixin_config.js_goals_path %สำเนา %home_weixin_config.js %/config.js config.js :: ตัดสินว่าไฟล์ config.xml มีอยู่หรือไม่ถ้ามีอยู่ %service_log4j_goals_path %/log4j.xml %service_log4j_goals_path %คัดลอก %service_log4j %/log4j.xml log4j.xml :: ตัดสินว่าไฟล์แอปพลิเคชันของบริการ-all.xml มีอยู่หรือไม่ %service_application_resources_all_goals_path%/application-resources-all.xml) cd%service_application_resources_all_goals_path%copy%service_aplication_resources_all%/แอปพลิเคชัน-all.xml %service_refresh_log4j_goals_path%/log4j.xml (del%service_refresh_log4j_goals_path%/log4j.xml) cd%service_refresh_log4j_goals_path%service_refresh_log4j%/log4j.xml Service.refresh มีอยู่ถ้ามีอยู่ %service_refresh_application_resources_all_goals_path %/แอปพลิเคชัน-แหล่งข้อมูล-all.xml (del %service_refresh_aplication_resources_all_goals_path %/แอปพลิเคชัน %service_refresh_application_resources_all_goals_path %คัดลอก %service_refresh_application_resources_all %/แอปพลิเคชัน-แหล่งข้อมูล-ทั้งหมด
Build ได้รับการรวบรวมโดยระบุตำแหน่ง POM และคำสั่ง MVN โดยวิธีการที่คุณสามารถกำหนดค่าพื้นที่ทำงานในระดับขั้นสูงซึ่งไม่ตรงกับค่าเริ่มต้นในไดเรกทอรีการติดตั้งเจนกินส์
หลังจากสร้างการดำเนินการคือสถานที่ที่จะวางไว้หลังจากที่แพ็คเกจเสร็จสมบูรณ์ เลือกรูปภาพต่อไปนี้
หลังจากการก่อสร้างนี้เราใช้การปรับใช้ที่ร้อนแรงของ Tomcat คุณสามารถอ้างถึงบทความก่อนหน้าของฉัน: การปรับใช้สุดฮอตของ Tomcat
สงคราม/หู: ที่อยู่ของแพ็คเกจสงคราม
บริบท: ชื่อแพ็คเกจที่ปรับใช้
ชื่อผู้ใช้/รหัสผ่านหมายถึงบัญชี/รหัสผ่านสำหรับการปรับใช้ hot tomcat
URL: อินเทอร์เฟซ Tomcat เช่น: http://172.16.101.71:8180/
5. เริ่มสร้าง
หลังจากพูดคุยกันมากในที่สุดก็ถึงเวลาแล้ว ในที่สุดการทำงานของปุ่มก็มาถึงแล้ว คุณสามารถดูโครงการของเราเมื่อคุณกลับไปที่หน้าแรกของเจนกินส์
หลังจากสร้างแล้วให้คลิกที่สถานะการดำเนินการสร้างที่มุมล่างซ้ายเพื่อดูว่าโครงการของเราอยู่ระหว่างการก่อสร้าง คลิกที่ชื่อโครงการเพื่อป้อน
เลือกคอนโซลเพื่อดูบันทึกหรือข้อความแสดงข้อผิดพลาดที่พิมพ์ในระหว่างกระบวนการก่อสร้าง
3. ปัญหาที่มีอยู่
ปัญหาบทบาทของเจนกินส์เนื่องจากมีการปล่อยตัวมันเกี่ยวข้องกับสภาพแวดล้อมการผลิต ผู้ใช้ทุกคนไม่สามารถได้รับอนุญาตให้ปรับใช้สภาพแวดล้อมการผลิต หากใครก็ตามโดยบังเอิญคลิก ผลที่ตามมา ... ไม่อยากจะเชื่อเลย
วิธีแก้ปัญหา: ติดตั้งปลั๊กอินกลยุทธ์การอนุญาตตามบทบาทอ้างอิงถึงขั้นตอนที่เหลืออยู่: http://www.cnblogs.com/zz0412/p/jenkins_jj_14.html ฉันไม่ได้มีรายละเอียด
ปัญหาของการปรับใช้ Hot Tomcat หน่วยความจำเพิ่มขึ้นและล้นหลังจากปรับใช้หลายครั้งหยุดทำงานหรือรายงานข้อผิดพลาด ฉันตรวจสอบปัญหาการปรับใช้ที่ร้อนแรงทางออนไลน์และฉันกำลังมองหาวิธีแก้ปัญหา ...
วิธีแก้ปัญหา: มีปัญหาเกี่ยวกับการปรับใช้ Hot Tomcat เองและสภาพแวดล้อมการผลิตโดยทั่วไปไม่ได้ใช้วิธีการปรับใช้ที่ร้อนแรง ปัจจุบันเนื่องจากสภาพแวดล้อมการทดสอบของฉันใช้ระบบ Windows Server 2008 จึงใช้วิธีการปรับใช้ HOT ปัญหายังคงมีอยู่ อย่างไรก็ตามฉันได้อ่านโพสต์ว่าสามารถแก้ไขได้โดยใช้คำสั่ง Windows Batch ซึ่งเป็นคำสั่ง BAT แต่ฉันยังไม่ได้ศึกษาในเชิงลึก ในระบบ Linux ในสภาพแวดล้อมการผลิตปัจจุบันฉันใช้การเผยแพร่ผ่านปลั๊กอิน SSH ขั้นตอนเฉพาะคือการเพิ่มขั้นตอนด้านล่างในการกำหนดค่า
1. ในการจัดการระบบ-การตั้งค่าระบบค้นหาเผยแพร่ผ่าน SSH และ Enter:
2. กำหนดค่าขั้นตอนการโพสต์
ที่นี่เราจะดำเนินการต่อกับโครงการข้างต้น การกำหนดค่านี้จะปรากฏขึ้นหลังจากติดตั้งปลั๊กอินด้านบนเท่านั้น!
ถ่ายโอนไฟล์ SetSource: ระบุแพ็คเกจสงครามและเส้นทางในการอัปโหลดคุณสามารถไปที่เวิร์กสเปซเพื่อดูได้
ลบคำนำหน้า: หมายถึงโฟลเดอร์ที่จะลบออกเมื่ออัปโหลดนั่นคือเฉพาะแพ็คเกจสงครามเท่านั้นที่อัปโหลด
การเจาะระยะไกล: หมายถึงเส้นทางระหว่างการดำเนินการซึ่งเทียบเท่ากับการอัปโหลดแพ็คเกจสงครามที่นี่
EXEC Commad: คำสั่งที่จะดำเนินการ
ดังที่แสดงในรูปแพ็คเกจสงครามจะถูกวางไว้ในโฟลเดอร์ Home/Admin จากนั้นฉันจะเรียกใช้คำสั่งเชลล์ที่ฉันเขียน ส่วนใหญ่เกี่ยวข้องกับการหยุด Tomcat สำรองแพ็คเกจสงครามดั้งเดิมการลบแพ็คเกจสงครามดั้งเดิมภายใต้ WebApp คัดลอกแพ็คเกจสงครามใหม่ภายใต้บ้าน/ผู้ดูแลระบบเริ่มต้น Tomcat แล้วเสร็จแล้ว สิ่งนี้จะช่วยหลีกเลี่ยงปัญหาการชนของเซิร์ฟเวอร์ที่เกิดจากหน่วยความจำการปรับใช้ที่ร้อนแรงล้น
การอ้างอิงสคริปต์:
#!/bin/sh #defined tomcat_home = "/usr/java/tomcat/apache-tomcat-7.0.67/" id = `ps -ef | Grep Java | grep tomcat | awk '{print $ 2}' `echo $ id echo" Kill Tomcat "Kill -9 $ id echo" ไฟล์สงครามกำจัด "CD" $ tomcat_home "/webapps rm -rf javaweb-0.1-snapshot rm -rf javaweb-0.0.0.0. /home/lin cp javaweb-0.0.1-snapshot.war "$ tomcat_home"/webapps cd "$ tomcat_home"/bin echo "เริ่ม Tomcat" ./startup.shปัญหาการปรับใช้ปลั๊กอินการปรับใช้ปลั๊กอินคอนเทนเนอร์ที่ใช้ด้านบนใช้เพื่อใช้การปรับใช้ HOT แต่ข้อ จำกัด การปรับใช้ปลั๊กอินที่โครงการหนึ่งสามารถปรับใช้แพ็คเกจสงครามได้เพียงแพ็คเกจเดียว โครงการของฉันคือสงครามสองสงครามที่แยกออกจากด้านหน้าและด้านหลังของโครงการไม่สามารถสร้างได้สองครั้ง  ̄へ ̄
วิธีแก้ปัญหา: พยายามอย่าใช้การปรับใช้ร้อน หากมีการใช้สภาพแวดล้อมการทดสอบชั่วคราวฉันกำลังสร้างโครงการใหม่สองโครงการและรวบรวมแพ็คเกจสงครามครั้งละหนึ่งชุดเท่านั้น
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น