Promptcloud สำรวจ Gerrit และ Jenkins Integration Setup

เผยแพร่แล้ว: 2017-01-20
สารบัญ แสดง
การตั้งค่าการผสานการทำงานโดยใช้ Gerrit และ Jenkins
Gerrit คืออะไร?
Jenkins คืออะไรและมีประโยชน์อย่างไร?
เวิร์กโฟลว์สำหรับการบูรณาการอย่างต่อเนื่อง
1. การติดตั้ง Gerrit
2. เข้าสู่ระบบเริ่มต้น
3. การสร้างคีย์ SSH
4. การติดตั้งเจนกินส์
5. เริ่มกระบวนการเจนกินส์

การตั้งค่าการผสานการทำงานโดยใช้ Gerrit และ Jenkins

ชีวิตของนักพัฒนาอาจน่าเบื่อหน่ายกับงานที่ซ้ำซากและซับซ้อน โชคดีที่เรามีเครื่องมือที่สามารถจัดการกับงานทางโลกได้อย่างสม่ำเสมอโดยไม่ต้องบ่นเมื่อคุณตั้งค่า เมื่อคุณเพิ่มระบบอัตโนมัติในการทดสอบและการปรับใช้ โซลูชันสามารถเรียกได้ว่าเป็น "การรวมอย่างต่อเนื่อง" การตั้งค่าดังกล่าวสามารถทดสอบและปรับใช้โปรเจ็กต์ได้โดยอัตโนมัติ ทำให้คุณมีเวลาให้ความสำคัญกับการเขียนโค้ดมากกว่าการพุชไปยังเซิร์ฟเวอร์ นี่คือวิธีที่คุณสามารถ ก้าวไปข้างหน้าด้วยการตั้งค่าการรวมอย่างต่อเนื่อง โดยใช้ Gerrit และ Jenkins การตั้งค่า CI โดยใช้ Gerrit และ Jenkins

Gerrit คืออะไร?

Gerrit เป็นระบบตรวจสอบโค้ดโอเพนซอร์ซแบบ git-based ที่มีอินเทอร์เฟซบนเว็บที่ช่วยให้คุณสามารถผลักดันการเปลี่ยนแปลงจากไคลเอนต์ git ตรวจสอบการเปลี่ยนแปลงและผสานอัตโนมัติกับมาสเตอร์โค้ด ทุกครั้งที่มีการเปลี่ยนแปลง ชุดแพตช์จะถูกสร้างขึ้นเหมือนกัน Gerrit อนุญาตให้เปรียบเทียบชุดแพตช์ที่แตกต่างกัน นอกจากนี้ยังมีตัวเลือกในการเพิ่มความคิดเห็นหรือทบทวนในบรรทัดใดบรรทัดหนึ่งหรือในแพตช์ทั้งหมด ผู้ตรวจสอบสามารถให้คะแนนการเปลี่ยนแปลงได้จากด้านล่าง: +2 – ดูดีสำหรับฉัน อนุมัติแล้ว +1 – ดูดีสำหรับฉัน แต่มีคนอื่นต้องอนุมัติ 0 – ไม่มีคะแนน -1 – ฉันต้องการให้คุณไม่ส่งสิ่งนี้ -2 – บล็อกการส่ง การตรวจสอบ +2 หมายถึงสามารถส่งรหัสไปยังต้นแบบได้โดยค่าเริ่มต้น สามารถกำหนดค่าได้ตามต้องการ

Jenkins คืออะไรและมีประโยชน์อย่างไร?

Jenkins เป็นเซิร์ฟเวอร์บิลด์ยอดนิยมที่ใช้สำหรับการรวมระบบอย่างต่อเนื่อง เป็นแบบเว็บและอนุญาตให้สร้างกระบวนการอัตโนมัติเมื่อมีการเปลี่ยนแปลงเกิดขึ้น เจนกินส์สามารถทำงานได้อย่างอิสระแม้ไม่มี Git หรือ Gerrit มีตะขอที่อนุญาตให้ทริกเกอร์เหตุการณ์ ดังนั้นเมื่อมีการเปลี่ยนแปลง บิลด์จะถูกสร้างขึ้นโดยอัตโนมัติ เมื่อใช้ Jenkins และ Gerrit ร่วมกัน บิลด์จะมีเครื่องหมายสำเร็จ/ล้มเหลวเพื่อระบุว่าผ่านการทดสอบหรือไม่ Jenkins จะทำการทดสอบการถดถอยหลังจากดำเนินการสร้าง เมื่อเสร็จแล้ว จะเผยแพร่ผลการทดสอบเหมือนกับผู้ตรวจสอบคนหนึ่ง ในกรณีที่บิลด์ล้มเหลว มันจะปฏิเสธแพตช์ คุณสามารถตั้งค่า -1 หรือ -2 ขึ้นอยู่กับคุณภาพของ CI ของคุณในกรณีที่การทดสอบล้มเหลว นอกจากนี้ ผู้ตรวจสอบโค้ดคนอื่นๆ ยังสามารถตรวจทานโค้ดได้ ณ จุดนี้ หากผ่านการตรวจสอบทั้งหมดแล้ว โค้ดจะถูกพุชไปยังที่เก็บสาธารณะ

เวิร์กโฟลว์สำหรับการบูรณาการอย่างต่อเนื่อง

  1. นักพัฒนาตรวจสอบแหล่งที่มาจาก Git
  2. นักพัฒนาทำการเปลี่ยนแปลงที่จำเป็น
  3. นักพัฒนาผลักดันการเปลี่ยนแปลงให้กับ Gerrit
  4. Gerrit ส่งหนังสือแจ้งการเปลี่ยนแปลงไปยัง Jenkins เพื่อทดสอบการผสานรวม
  5. Jenkins ดึงการเปลี่ยนแปลงโดยตรงจากเซิร์ฟเวอร์ Gerrit git และเรียกใช้กรณีทดสอบทั้งหมดตามการกำหนดค่าโครงการของเรา
  6. นักพัฒนารายอื่นตรวจสอบการเปลี่ยนแปลงและอนุมัติ (+2)
  7. Gerrit รวมการเปลี่ยนแปลงไปยังที่เก็บ git ของโครงการหลักเมื่อ Jenkins ผ่านการสร้างและการเปลี่ยนแปลงได้รับการอนุมัติจากนักพัฒนารายอื่น

การตั้งค่าการผสานการทำงานโดยใช้ Gerrit และ Jenkins Workflow 1. การติดตั้ง Gerrit

  • ข้อกำหนด: JRE เวอร์ชันขั้นต่ำ 1.8
  • ลิงค์ดาวน์โหลดแพ็คเกจ tGerrit war

หากคุณมี MySQL คุณสามารถใช้มันสำหรับฐานข้อมูล Gerrit สร้างผู้ใช้และฐานข้อมูลใน MySQL สำหรับ Gerrit

mysql> สร้างผู้ใช้ 'gerrit2'@'localhost' ระบุโดย 'secret';

mysql> สร้างฐานข้อมูล reviewdb;

mysql> ให้สิทธิ์ทั้งหมดบน reviewdb.* ถึง 'gerrit2'@'localhost';

mysql> ล้างสิทธิ์;

ตอนนี้เรียกใช้คำสั่งด้านล่างเพื่อเริ่มต้นไซต์

 # java -jar gerrit.war init –batch -d ~/

ในระหว่างการเริ่มต้นนี้ บริการ gerrit จะเริ่มต้นโดยค่าเริ่มต้น หากคุณต้องการเปลี่ยนแปลงใดๆ เช่น ฐานข้อมูล mysql การตรวจสอบสิทธิ์การเข้าสู่ระบบ ส่งเซิร์ฟเวอร์อีเมลและ httpd url คุณสามารถแก้ไขไฟล์ ~//etc/gerrit.config และเพิ่มรายละเอียด ldap และรหัสผ่านฐานข้อมูลใน ~//etc/secure ไฟล์ .config หากมีการเปลี่ยนแปลงการตั้งค่า บริการ gerrit จะต้องเริ่มใหม่ก่อนจึงจะมีผล

 # ~//bin/gerrit.sh รีสตาร์ท

คัดลอกสคริปต์ ~//bin/gerrit.sh ไปยัง init.d dir เป็น gerrit และเพิ่มเพื่อเริ่มขณะบูตเครื่อง

2. เข้าสู่ระบบเริ่มต้น

ตอนนี้โหลด Gerrit URL ของคุณในเบราว์เซอร์ คุณสามารถค้นหา URL เว็บของ Gerrit ได้โดยใช้คำสั่งนี้ด้วย

# git config -f ~//etc/gerrit.config gerrit.canonicalWebUrl

ตอนนี้ใช้การพิสูจน์ตัวตนการเข้าสู่ระบบโดยใช้วิธีการที่คุณกำหนดค่าไว้ในไฟล์กำหนดค่า Gerrit เพื่อลงชื่อเข้าใช้เว็บอินเตอร์เฟสของ Gerrit โดยค่าเริ่มต้น จะเป็น OpenID LDAP เป็นหนึ่งในวิธีการพิสูจน์ตัวตนที่ใช้กันมากที่สุด

เมื่อคุณลงชื่อเข้าใช้หน้าเว็บ Gerrit สำเร็จแล้ว คุณต้องลงชื่อเข้าใช้เครื่องไคลเอนต์ของคุณที่คุณจะทำการพัฒนา คุณต้องสร้างคีย์ RSA สำหรับเซสชัน ssh ของคุณ คุณสามารถข้ามขั้นตอนการสร้างคีย์ได้หากคุณมีไฟล์อยู่แล้ว

# ls -l ~/.ssh

Author_keys config id_rsa id_rsa.pubknown_hosts

3. การสร้างคีย์ SSH

# ssh-keygen -t rsa

กำลังสร้างคู่คีย์ rsa สาธารณะ/ส่วนตัว

ป้อนไฟล์ที่จะบันทึกคีย์ (/home/user/.ssh/id_rsa):

ป้อนข้อความรหัสผ่าน (เว้นว่างไว้ไม่มีข้อความรหัสผ่าน):

ป้อนข้อความรหัสผ่านเดิมอีกครั้ง:

ข้อมูลประจำตัวของคุณได้รับการบันทึกไว้ใน /home/user/.ssh/id_rsa

คีย์สาธารณะของคุณถูกบันทึกไว้ใน /home/user/.ssh/id_rsa.pub

ลายนิ้วมือที่สำคัญคือ:

SHA256:dMMVqsoLDf8T/d5Niob69oea3rkSLTBltiZ8s1lbdeA ผู้ใช้@localhost

ภาพ Randomart ของคีย์คือ:

+—[RSA 2048]—-+

| โอ… |

| .+โอ o|

| ..+=. อี..|

| .=o=.. |

| . SB * o |

| = .. * o |

| . = . = . .|

| . o +o++.+ |

| . o*=*บู .|

+—-[SHA256]—–+

# cat ~/.ssh/id_rsa.pub

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCwoWTT6S1pv2LP0l6r8305njSLtoupDCw8Df
GnaqW+ppfzNMtRJmAvCQpYuvE154EsGZC5csnRkUYAScOD3nri8NBsXMdD+m1mMyD
lA4ssMLhWHfstJGQ5aJ84NIR+zFK9o9QmDCVYU/
MYt2SZnmzi+Pdd4QbDWKisewmtun5rpy8vXWukKt9CHGTbv5lKyRVPF
LuQCynKbniZLV7aQD6gsVcZFG7Hj3ezBhDAZdBrCWLldy0S61DAmdH5C94xmlSuraq
HiX0pkLi4J67msvOUW6dBfeCP1VsMNz0j/
91LPlOMf5I2r1fRw1s/J1z/
UcsgBDyATwSKocNklkrd8+pp user@localhost

  • คัดลอกกุญแจสาธารณะด้านบนและไปที่ gerrit web url ของคุณ
  • ตรวจสอบชื่อผู้ใช้ที่มุมขวาของหน้าเว็บและคลิกที่ผู้ใช้ของคุณเพื่อค้นหาลิงก์การตั้งค่า
  • ที่ด้านซ้าย คุณจะพบ "SSH Public Keys" คลิกที่มัน
  • ตอนนี้คลิกปุ่ม "เพิ่มคีย์" วางคีย์สาธารณะ ssh ของคุณแล้วเพิ่ม

การตั้งค่าการรวมโดยใช้ Gerrit และ Jenkins SSH Key Generator ผู้ใช้รายแรกที่ลงชื่อเข้าใช้และลงทะเบียนบัญชีจะถูกนำไปไว้ในผู้ดูแลระบบที่มีสิทธิ์อย่างเต็มที่โดยอัตโนมัติ ตอนนี้คุณมีสิทธิ์สร้างโครงการแล้ว คลิกแท็บ "โครงการ" และคลิก "สร้างโครงการใหม่" ตอนนี้ป้อนชื่อโครงการเพื่อเริ่มต้น การตั้งค่า CI เสร็จแล้ว โคลนโปรเจ็กต์ในระบบของคุณ และเริ่มเพิ่มรหัสการพัฒนาของคุณ # ssh [email protected] -p 29418

**** ยินดีต้อนรับสู่ Gerrit Code Review **** สวัสดี selvam คุณเชื่อมต่อผ่าน SSH สำเร็จแล้ว ขออภัย เชลล์แบบโต้ตอบถูกปิดใช้งาน ในการโคลนที่เก็บ Git ที่โฮสต์ ให้ใช้: git clone ssh://[email protected]:29418/REPOSITORY_NAME.git การเชื่อมต่อกับ 192.168.56.137 ปิดแล้ว

# git clone ssh: //[email protected] :29418/Gerrit_Test

4. การติดตั้ง Jenkins

คุณสามารถติดตั้งเจนกินส์โดยใช้ apt-get หรือแพ็คเกจ deb

  • sudo apt-get update
  • sudo apt-get install jenkins

การกำหนดค่า Jenkins มีอยู่ใน /etc/default/jenkins ซึ่งคุณสามารถเปลี่ยนตำแหน่งของ java และ JAVA_ARGS ได้ โดยค่าเริ่มต้น jenkins จะทำงานบน 8080 หากคุณใช้ gerrit และ jenkins ในเครื่องเดียวกัน พอร์ตเริ่มต้น 8080 จะถูกครอบครองโดย gerrit แล้ว ที่นี่คุณต้องเปลี่ยนพอร์ตเจนกินส์ หากต้องการเปลี่ยน ให้แก้ไขค่า HTTP_PORT เพื่อรันบนพอร์ตอื่น

5. เริ่มกระบวนการเจนกินส์

# /etc/init.d/jenkins start ไปที่เบราว์เซอร์ของคุณและโหลดหน้า jenkins ด้วยชื่อโฮสต์ jenkins และหมายเลขพอร์ตของคุณ

 https://:/

หากคุณได้ติดตั้ง Jenkins 2.* แล้ว หน้าเว็บของเจนกินส์จะถามรหัสผ่านเริ่มต้นของผู้ดูแลระบบ คุณสามารถค้นหารหัสผ่านได้ในไฟล์ /var/log/jenkins/jenkins.log บันทึกมีลักษณะดังนี้:

จำเป็นต้องมีการตั้งค่าเริ่มต้นของเจนกินส์ มีการสร้างผู้ใช้ผู้ดูแลระบบและสร้างรหัสผ่าน โปรดใช้รหัสผ่านต่อไปนี้เพื่อดำเนินการติดตั้ง: f16b093akcnml397jcdoa239d6bafb9 ซึ่งสามารถพบได้ที่: /var/lib/jenkins/secrets/initialAdminPassword
  • ไปที่ Jenkins -> Manage Jenkins -> Plugin Manager เพื่อติดตั้งปลั๊กอิน git และ gerrit ใน jenkins
  • คลิกแท็บ 'ใช้ได้' และค้นหา ' ปลั๊กอิน Git ' และคลิก 'ติดตั้งโดยไม่ต้องรีสตาร์ท' ค้นหาอีกครั้ง ' Gerrit Trigger' และคลิก "ติดตั้งโดยไม่ต้องรีสตาร์ท" สุดท้าย ให้ตรวจสอบว่าอยู่ในรายการที่ติดตั้งหรือไม่

การตั้งค่าการรวมโดยใช้ปลั๊กอิน Gerrit และ Jenkins กระบวนการ Jenkins ดำเนินการโดยผู้ใช้ jenkins ดังนั้น เราจำเป็นต้องเปิดใช้งานการเข้าถึงสำหรับผู้ใช้ jenkins ใน gerrit

  • ใช้วิธีการรับรองความถูกต้องของคุณ สร้างผู้ใช้ jenkins ใน gerrit
  • ตอนนี้สร้าง ssh-keygen สำหรับผู้ใช้ jenkins ตามที่เราทำก่อนหน้านี้ แต่คราวนี้สร้างคีย์ด้วย passpharse ที่ว่างเปล่าและคัดลอกกุญแจสาธารณะสำหรับผู้ใช้ jenkins ใน gerrit
  • ตอนนี้คลิก 'รายการใหม่' เพื่อสร้างงานใหม่และเพิ่ม git url ของคุณในส่วน Source Code Management/Git นอกจากนี้ เลือก "เหตุการณ์ Gerrit" ใน Build Triggers และป้อนรูปแบบโครงการ Gerrit

การตั้งค่าการผสานการทำงานโดยใช้ Gerrit และ Jenkins Eventเหตุการณ์การรวม CI สุดท้าย บันทึกการกำหนดค่า สมบูรณ์แบบ การตั้งค่า Gerrit และ Jenkins ของคุณเสร็จสมบูรณ์แล้ว