Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Ruby

ปรับปรุงการใช้งาน Ruby on Rails ด้วย Capistrano:คำแนะนำทีละขั้นตอน

ในบทความนี้ เราจะกำหนดค่า Capistrano ในแอปพลิเคชัน Ruby on Rails จากนั้นเราจะปรับใช้แอปกับอินสแตนซ์คลาวด์ที่ใช้ Ubuntu เป็นระบบปฏิบัติการ โดยไม่ขึ้นอยู่กับผู้ให้บริการโฮสต์ของคุณ คุณสามารถใช้บริการคลาวด์ใดก็ได้ หรือแม้แต่เซิร์ฟเวอร์ภายในองค์กร เพื่อทดสอบหรือจำลองขั้นตอนที่เราจะดำเนินการ

เมื่อเราปรับใช้แอปแล้ว เราจะดูโดยย่อว่าคุณสามารถตรวจสอบการใช้งานแอปของคุณโดยใช้ AppSignal ได้อย่างไร

แต่ก่อนอื่น คุณอาจถามว่า:ทำไมฉันจึงควรใช้ Capistrano ตั้งแต่แรก

เหตุใดจึงเลือก Capistrano สำหรับแอป Ruby on Rails ของคุณ

คุณอาจสงสัยว่าการใช้ Capistrano เพื่อการปรับใช้ในปัจจุบันยังคงสมเหตุสมผลหรือไม่ ขณะนี้เรามีเครื่องมือและบริการมากมายสำหรับการปรับใช้และการบูรณาการอย่างต่อเนื่อง

แต่เพื่อตอบคำถามนั้น เราต้องทบทวนต้นกำเนิดของ Capistrano และวิวัฒนาการของมันจนถึงปัจจุบัน แท็กแรกที่สร้างขึ้นในพื้นที่เก็บข้อมูล Capistrano เกิดขึ้นในปี 2549 โดยมีวัตถุประสงค์เพื่อให้การดำเนินการคำสั่งจากระยะไกลผ่าน SSH พร้อมกันบนเครื่องหลายเครื่อง โดยทั้งหมดใช้ DSL ตั้งแต่นั้นเป็นต้นมา Capistrano ก็มีการพัฒนาโดยการเพิ่มคุณสมบัติต่างๆ ให้กับแต่ละเวอร์ชัน

ปัจจุบัน Capistrano อยู่ในเวอร์ชัน 3 หลังจากผ่านไป 16 ปี ยังคงได้รับการพัฒนาอย่างต่อเนื่อง และปัจจุบันเป็นที่รู้จักในฐานะเฟรมเวิร์กสำหรับการสร้างสคริปต์การปรับใช้อัตโนมัติ

ดังนั้นจึงไม่ใช่แค่เครื่องมือในการรันคำสั่งบนเครื่องระยะไกลอีกต่อไป นอกเหนือจากฟีเจอร์ของ Capistrano แล้ว ยังมีปลั๊กอินและอัญมณีอื่นๆ มากมายที่ทำงานร่วมกับ Capistrano โดยเฉพาะ

ด้วยเหตุนี้และความจริงที่ว่าชุมชนขนาดใหญ่ยังคงใช้ Capistrano จึงยังคงเป็นเครื่องมือที่ยอดเยี่ยมสำหรับการปรับใช้แบบอัตโนมัติ

การเพิ่ม Capistrano ไปยังแอป Ruby on Rails ของคุณ

ขั้นแรก คุณจะต้องกำหนดค่าแอปพลิเคชัน Ruby on Rails เพื่อผสานรวมกับ Capistrano คุณสามารถปฏิบัติตามเอกสารของ Capistrano อย่างไรก็ตาม มีข้อมูลมากกว่าที่คุณต้องการสำหรับขอบเขตของโพสต์นี้ ดังนั้นเพื่อความเรียบง่าย บทความนี้จึงรวมเฉพาะขั้นตอนและการกำหนดค่าที่จำเป็นที่คุณต้องการเท่านั้น

หากต้องการเริ่มการกำหนดค่า ให้เพิ่ม Capistrano gem ในส่วนการพัฒนาของ Gemfile ของคุณ:

 

คุณต้องมี capistrano-rails gem เพื่อดำเนินการย้ายข้อมูลบนฐานข้อมูลของคุณและจัดการสินทรัพย์ที่เราจะเห็นในส่วนถัดไป

ตอนนี้รัน bundle install วิธีเพิ่ม Capistrano ในแอปพลิเคชันของคุณ:

 

จากนั้นคุณสามารถติดตั้ง Capistrano:

 

คำสั่งนี้จะสร้างไฟล์ชื่อ Capfile ที่นำเข้าและกำหนดค่าไลบรารีที่จำเป็น นอกจากนี้ ไฟล์ชื่อ deploy.rb (สร้างขึ้นภายใน config โฟลเดอร์) จะมีการกำหนดค่าทั้งหมดที่ควรรวมไว้ในการปรับใช้กับ Capistrano

หมายเหตุ: Capistrano สร้างไฟล์เพื่อแทนที่ deploy.rb การกำหนดค่าสำหรับทั้งสภาพแวดล้อมการแสดงละครและการใช้งานจริง แต่จะไม่ครอบคลุมในบทความนี้

เมื่อทำเช่นนี้ คุณก็พร้อมที่จะเริ่มต้นการกำหนดค่าและการสื่อสารระหว่างแอปพลิเคชัน Ruby on Rails และเซิร์ฟเวอร์แล้ว

การกำหนดค่าเซิร์ฟเวอร์ด้วย Capistrano สำหรับแอป Rails ของคุณ

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

เพื่อให้แน่ใจว่าสภาพแวดล้อมการใช้งานจริงของคุณรัน Ruby เวอร์ชันเดียวกันกับเวอร์ชันที่คุณใช้ในการพัฒนา ให้ใช้ตัวจัดการเวอร์ชัน Ruby เช่น RVM หรือ rbenv (Capistrano รองรับทั้งสองอย่าง)

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

กำลังเพิ่ม capistrano-rvm อัญมณี

โครงการ Capistrano มอบอัญมณีชื่อ capistrano-gem ที่ช่วยให้คุณกำหนดค่า RVM ได้อย่างง่ายดาย หากต้องการรวมไว้ในโปรเจ็กต์ของคุณ ให้เพิ่มลงใน Gemfile ภายในกลุ่มการพัฒนาของคุณ และรัน bundle install อีกครั้ง

 

อัปเดต Capfile ของคุณด้วยการนำเข้า capistrano-rvm:

 

ในไฟล์ปรับใช้ ให้เพิ่มการกำหนดค่าเพื่อตั้งค่าเวอร์ชัน Ruby และเส้นทางไปยัง RVM (โดยเฉพาะหากคุณใช้เส้นทางอื่นในการติดตั้ง RVM)

หากไม่มีการกำหนดเวอร์ชันของ Ruby Capistrano จะเลือกเวอร์ชันล่าสุดที่คุณติดตั้งบนเซิร์ฟเวอร์ที่จะปรับใช้แอปพลิเคชันของคุณ

 

Capistrano::RVM มีการตั้งค่าอื่นๆ สำหรับ RVM แต่การตั้งค่าที่แสดงไว้ที่นี่คือสิ่งที่คุณต้องมีในการเริ่มต้น

ตั้งค่าการกำหนดค่าเซิร์ฟเวอร์ของคุณ

แนวปฏิบัติที่ดีในการกำหนดผู้ใช้สำหรับการปรับใช้ อย่าลืมทำตามขั้นตอนเหล่านี้บนเซิร์ฟเวอร์ของคุณก่อนที่จะเริ่มการปรับใช้:

  1. เพิ่มรหัสสาธารณะที่สร้างบนเครื่องของคุณไปที่ ~/home/YOUR_USER/.ssh/authorized_keys ไฟล์
  2. สร้างคีย์และรวมคีย์สาธารณะไว้ในที่เก็บโค้ด สิ่งนี้ช่วยให้คุณเข้าถึงการโคลนโครงการของคุณภายในเซิร์ฟเวอร์ที่ใช้งานจริง หากคุณใช้ GitHub คุณสามารถปฏิบัติตามเอกสารนี้
  3. ตั้งค่าสิทธิ์ในการเขียนไปที่ /var/www/ ไดเร็กทอรี

คุณสามารถกำหนดค่า Capistrano สำหรับสภาพแวดล้อมใดๆ ที่คุณต้องการ คุณเพียงแค่ต้องสร้างไฟล์การกำหนดค่าใหม่ภายใน config/deploy/<environment_name>.rb จากนั้นกำหนดค่า IP หรือ DNS และชื่อผู้ใช้เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ของคุณ

 

เพื่อให้การตั้งค่าการปรับใช้เสร็จสมบูรณ์ ให้รวมข้อมูลเกี่ยวกับแอปพลิเคชันของคุณ เช่น ชื่อแอปพลิเคชันและ URL ที่เก็บโค้ด ข้อมูลใดๆ ที่เหมือนกันสำหรับทุกสภาพแวดล้อมจะต้องเพิ่มลงใน config/deploy.rb . เก็บการกำหนดค่าสภาพแวดล้อมเฉพาะไว้ใน config/deploy/<environment_name>.rb .

 

ตั้งค่า capistrano-secrets-yml อัญมณีสำหรับแอป Rails ของคุณ

คุณควรตั้งค่า capistrano-secrets-yml gem ด้วย

เพิ่ม gem ลงใน Gemfile ของคุณและรันบันเดิลเพื่อติดตั้ง:

 

นำเข้าสู่ Capfile:

 

จากนั้นสร้าง config/secret.yml ในแอปพลิเคชันของคุณและรวมคีย์ลับเป็นตัวแปรสภาพแวดล้อม ตัวแปรนี้จะถูกสร้างขึ้นบนเซิร์ฟเวอร์ที่ใช้งานจริงของคุณ จำไว้ว่า ไม่ใช่ เพื่อส่งไฟล์นี้ไปยังพื้นที่เก็บข้อมูลของคุณ

 

ภายในโฟลเดอร์แอปพลิเคชันของคุณในเทอร์มินัล ให้รันคำสั่งนี้เพื่อสร้างฐานคีย์ลับ:

 

คัดลอกคีย์ที่สร้างขึ้นและใช้เพื่อตั้งค่า SECRET_KEY_BASE ของคุณบนเซิร์ฟเวอร์ที่ใช้งานจริง เข้าถึงเซิร์ฟเวอร์ที่ใช้งานจริงของคุณและส่งออกตัวแปร SECRET_KEY_BASE ในส่วนสุดท้าย ~/.bashrc ไฟล์ ดังนั้นจึงพร้อมใช้งานเสมอ:

 

เรียกใช้แหล่งที่มาเพื่อให้พร้อมใช้งานทันทีในสภาพแวดล้อมของคุณ:

 

ตอนนี้ กลับมาที่เครื่องของคุณ เข้าถึงโฟลเดอร์แอปพลิเคชันในเทอร์มินัลแล้วรันคำสั่ง Capistrano ด้านล่างเพื่อสร้าง config/secrets.yml บนเซิร์ฟเวอร์ที่ใช้งานจริง:

 

เสร็จแล้ว! ตอนนี้ได้เวลากำหนดค่า Capistrano เพื่อดำเนินการย้ายข้อมูลแล้ว

กำหนดค่า Capistrano เพื่อดำเนินการย้ายฐานข้อมูล

ตอนนี้ได้เวลากำหนดค่า Capistrano ให้เรียกใช้คำสั่งที่เกี่ยวข้องกับฐานข้อมูล

รางคาปิสตราโน gem ที่รวมอยู่ใน Gemfile ของคุณสามารถกำหนดค่าให้ดำเนินการย้ายในการปรับใช้แต่ละครั้งได้ เราเพียงแค่ต้องนำเข้ามันลงใน Capfile:

 

แต่หากคุณต้องการรันการเริ่มใช้งาน คุณต้องสร้างงานใหม่เพื่อรันหลังจากการโยกย้าย:

 

ด้วยเหตุนี้ แอปของคุณจึงพร้อมใช้งานในที่สุด!

เริ่มปรับใช้แอป Ruby on Rails ของคุณ

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

เมื่อคุณดำเนินการคำสั่งการปรับใช้ Capistrano จะเชื่อมต่อกับเซิร์ฟเวอร์ของคุณ จากนั้น Capistrano จะพยายามโคลนโค้ดจากพื้นที่เก็บข้อมูลที่กำหนดไว้ในไฟล์การกำหนดค่า (config/deploy.rb ). จากนั้นงานอื่นๆ จะดำเนินการตามขั้นตอนการปรับใช้

deploy:check ของ Capistrano คำสั่งตรวจสอบว่าการกำหนดค่า Git นั้นใช้ได้ และ Capistrano มีสิทธิ์เข้าถึงไดเร็กทอรีที่จะใช้ในการปรับใช้อย่างถูกต้อง

หากต้องการใช้ก็ผ่านสิ่งแวดล้อม ในกรณีนี้ เรากำลังใช้การผลิต:

 

หากทุกอย่างเรียบร้อยดีกับการกำหนดค่า คุณสามารถเริ่มการปรับใช้งานเป็นการใช้งานจริงได้:

 

นอกจากนี้ คุณสามารถตรวจสอบงานที่มีอยู่ทั้งหมดใน Capistrano ด้วยคำสั่ง:

 

ในขั้นตอนสุดท้าย เราจะรวมแอปพลิเคชัน Ruby on Rails เข้ากับ AppSignal และเริ่มติดตามดู

วิธีผสานรวม AppSignal กับ Capistrano และแอป Rails ของคุณ

AppSignal เป็นเครื่องมือตรวจสอบ ดังนั้นคุณอาจสงสัยว่าทำไมจึงรวมไว้ในบทความนี้ นั่นเป็นคำถามที่ถูกต้อง เนื่องจากการเฝ้าติดตามไม่เกี่ยวข้องโดยตรงกับการปรับใช้

อย่างไรก็ตาม AppSignal เป็นเครื่องมืออันทรงคุณค่าในการตรวจสอบแอปพลิเคชัน Ruby on Rails และติดตามการใช้งานในแต่ละสภาพแวดล้อม มาดูกันว่าเราจะตั้งค่า AppSignal สำหรับแอปของคุณได้อย่างไร

คุณจะต้องมีบัญชี AppSignal ซึ่งคุณสามารถสร้างได้ในหน้าลงทะเบียนของ AppSignal เลือก Ruby เป็นภาษาของคุณ และทำตามขั้นตอนเพื่อติดตั้ง AppSignal ในแอปพลิเคชันของคุณ

เมื่อติดตั้งแล้ว ไฟล์จะถูกสร้างขึ้นเพื่อกำหนดค่า AppSignal สิ่งสำคัญที่นี่คือการกำหนดการแก้ไข — ข้อมูลที่จะถูกตรวจสอบหลังจากการปรับใช้เพื่อดูว่ามีการปรับใช้แอปพลิเคชันเวอร์ชันใหม่หรือไม่ ในกรณีนี้ เราจะใช้บันทึก Git เป็นข้อมูลการแก้ไขเพื่อให้แน่ใจว่าการใช้โค้ดใหม่แต่ละครั้งจะแจ้งให้ AppSignal ทราบ

 

แนวทางปฏิบัติที่ดีในการส่งออกตัวแปรสภาพแวดล้อม AppSignal ไปยังเซิร์ฟเวอร์ที่ใช้งานจริงของคุณ (โดยเฉพาะคีย์ API เพื่อไม่ให้เก็บไว้ในไฟล์การกำหนดค่า AppSignal)

 

และตอนนี้เราสามารถดำเนินการปรับใช้อีกครั้งได้ หากทุกอย่างถูกต้องตั้งค่าอย่างถูกต้อง คุณจะเห็นข้อความเช่นนี้เมื่อสิ้นสุดการใช้งาน:

 

ตอนนี้คุณจะสามารถดูใบสมัครของคุณได้ใน AppSignal! 🎉

ปรับปรุงการใช้งาน Ruby on Rails ด้วย Capistrano:คำแนะนำทีละขั้นตอน

และข้อมูลเกี่ยวกับการใช้งานใดๆ:

ปรับปรุงการใช้งาน Ruby on Rails ด้วย Capistrano:คำแนะนำทีละขั้นตอน

ไปที่หน้าเอกสารการปรับใช้ของ AppSignal เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับการบูรณาการการปรับใช้และคุณสมบัติอื่นๆ ที่มีให้สำหรับแอปพลิเคชัน Ruby on Rails

สรุปและขั้นตอนถัดไป

ในโพสต์นี้ เราได้สำรวจวิธีใช้ Capistrano เพื่อปรับใช้แอป Ruby on Rails ของคุณ ก่อนอื่นเราได้เพิ่ม Capistrano ลงในแอป จากนั้นกำหนดค่าและปรับใช้ ก่อนที่จะตั้งค่าการตรวจสอบด้วย AppSignal ในที่สุด

หากคุณต้องการสำรวจเพิ่มเติม คุณสามารถกำหนดค่า Capistrano ให้ทำงานจากการผสานรวมที่เชื่อมต่อกับไปป์ไลน์ของพื้นที่เก็บข้อมูลของคุณ เครื่องมืออย่าง Bitbucket, GitHub และ GitLab มีการตั้งค่าเพื่อจัดการกระบวนการนี้และสามารถใช้ร่วมกับ Capistrano ได้

ขอให้สนุกกับการเขียนโค้ด!

ปล. หากคุณต้องการอ่านโพสต์ Ruby Magic ทันทีที่เผยแพร่ สมัครรับจดหมายข่าว Ruby Magic ของเราและไม่พลาดแม้แต่โพสต์เดียว!