کتاب Jenkins Administrator’s Guide یا راهنمای مدیریت جنکینز، یک منبع بسیار مناسب برای یادگیری ابزار Jenkins است که در 11 فصل از مقدمات تا مبانی پیشرفتهی آن را آموزش میدهد.
در ادامه مقدمهای از کتاب Jenkins Administrator’s Guide را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب Jenkins Administrator’s Guide:
Jenkins نامی مشهور در میان مهندسان ساخت و انتشار CI/CD DevOps است، زیرا در خودکارسازی ساختها، نسخهها و حتی عملیات مفید است. با وجود قابلیتها و محبوبیت آن، اندازهگیری جنکینز در محیط تولید آسان نیست. راهنمای مدیر جنکینز نه تنها به شما یاد میدهد که چگونه یک نمونه جنکینز درجه تولید را از ابتدا تنظیم کنید، بلکه استراتژیهای مدیریت و مقیاسبندی را نیز پوشش میدهد.
این کتاب شما را از طریق مراحل راهاندازی یک نمونه جنکینز در AWS و داخل فایروال شرکت راهنمایی میکند، در حالی که درباره انتخابهای طراحی و گزینههای پیکربندی، مانند نقاط پایان TLS و سیاستهای امنیتی بحث میکند.
شما خطوط لوله CI/CD ایجاد خواهید کرد که از طریق رویدادهای درخواست کشش GitHub راهاندازی میشوند، و همچنین انواع مختلف نحو Jenkinsfile را درک میکنید تا به شما کمک کند یک فرآیند ساخت و انتشار منحصر به فرد برای نیازهای شما ایجاد کنید.
برای خوانندگانی که تازه با خدمات وب آمازون آشنا هستند، این کتاب دارای یک فصل اختصاصی در مورد AWS با اسکرین شات است. همچنین با پیکربندی جنکینز بهعنوان کد، بازیابی فاجعه، برنامههای ارتقاء، حذف تنگناها و موارد دیگر دست پیدا خواهید کرد تا به شما در مدیریت و مقیاسبندی نمونه جنکینز کمک کند.
در پایان این کتاب، شما نه تنها یک نمونه جنکینز درجه تولید با خطوط لوله CI/CD خواهید داشت، بلکه از بهترین شیوههای کارشناسان صنعت نیز آگاهی خواهید داشت.
کتاب Jenkins Administrator’s Guide برای چه کسی است؟
این کتاب هم برای مدیران جدید جنکینز و هم برای کاربران پیشرفتهای است که میخواهند جنکینز را بهینه و مقیاس کنند. مبتدیان جنکینز میتوانند دستورالعملهای گامبهگام را دنبال کنند، در حالی که خوانندگان پیشرفته میتوانند به بحثهای عمیق در مورد امنیت اسکریپت، رفع تنگناها و سایر موضوعات جالب بپیوندند. ساخت و انتشار مهندسان CI/CD DevOps در تمام سطوح نیز اطلاعات جدید و مفیدی را برای کمک به اجرای نمونه جنکینز درجه تولید، با پیروی از بهترین شیوههای صنعت، پیدا خواهند کرد.
آنچه این کتاب پوشش میدهد:
فصل 1، زیرساخت جنکینز با TLS/SSL و پروکسی معکوس، جنکینز را معرفی کرده و نقاط قوت آن را همراه با کمی تاریخچه و کلمات کلیدی مهم مورد بحث قرار میدهد. این فصل معماری زیرساختهای جنکینز را که در فصلهای آینده خواهیم ساخت، توضیح میدهد، یکی برای جنکینز در AWS و دیگری برای جنکینز در داخل فایروال شرکتی.
با فهرست کردن ماشینهای مجازی مورد نیاز، سیستمعامل و بستههای نرمافزاری مورد نیاز، پورتهایی که باید باز شوند و سایر اجزای مورد نیاز، معماری کنترلکنندهها، پروکسی معکوس، عاملها و ابر داکر را مورد بحث قرار میدهد.
این فصل به بحث درباره سؤالات متداول برای زیرساخت AWS، مانند انواع و اندازههای نمونه EC2، مناطق و مناطق در دسترس، قوانین مسیریابی و IPهای الاستیک ادامه میدهد.
سپس، این فصل انتخابهای گواهینامه TLS/SSL را مورد بحث قرار میدهد و مراحل استفاده از Let’s Encrypt را با جزئیات برای ایجاد یک گواهی رایگان طی میکند. در نهایت، این فصل اهمیت انتخابهای ذخیرهسازی باطن را مورد بحث قرار میدهد. این گزینههای مختلف را با محک زدن عملکرد و بررسی مزایا و معایب راهحلهای محبوب ذخیرهسازی پشتیبان مورد بحث قرار میدهد.
فصل 2، جنکینز با داکر در HTTPS در AWS و داخل فایروال شرکتی، کل سفر راهاندازی کنترلر جنکینز، پروکسی معکوس برای اتصالات HTTPS، عوامل و ابر داکر را طی میکند.
راهی برای ایجاد یک دایرکتوری در ماشین میزبان و سوار کردن آن در یک ظرف Docker در حال اجرا Jenkins نشان میدهد، به طوری که وضعیت در سراسر کانتینر راهاندازی مجدد حفظ میشود. همچنین سه روش مختلف برای خاتمه دادن به TLS برای ارائه اتصالات HTTPS را نشان میدهد.
هنگامی که Jenkins روی HTTPS اجرا میشود، این فصل به گزینههای پیکربندی اولیه برای روشهای ورود، سرعت پیشفرض خط لوله، مجوزهای کاربر و سایر تنظیمات پیشفرض مفید میپردازد. همچنان مراحل اتصال عوامل و ایجاد و اتصال یک ابر داکر را نشان میدهد، به طوری که ما به جنکینز درجه تولید میرسیم.
فصل 3، خط لوله CI مبتنی بر GitOps با GitHub، مراحل ایجاد خطوط لوله CI پیش ادغام را نشان میدهد که از یک فعالیت درخواست کشش GitHub راهاندازی میشوند.
ابتدا چهار کاربر نمونه ایجاد میکند، سپس مجوزهای مختلفی را برای دو پروژه مثال جمعکننده و تفریق به آنها اختصاص میدهد تا مدل مجوز جنکینز را نشان دهد. سپس مراحل ایجاد خطوط لوله CI را به تفصیل طی می کند، هر مرحله را در حین پیشرفت نشان میدهد و بحث میکند.
این دو روش مختلف برای پیکربندی خط لوله CI را نشان میدهد، یکی برای AWS Jenkins با استفاده از push hook و دیگری برای Jenkins فایروال با استفاده از افزونه GitHub Pull Request Builder. با نشان دادن مراحل اختیاری برای اجازه دادن به خط لوله CI برای ایجاد یک انشعاب دلخواه، همراه با مراحل نیاز به ساخت موفق برای ادغام یک درخواست کشش، به پایان میرسد.
فصل 4، خط لوله CD مبتنی بر GitOps با Docker Hub و ویژگیهای Jenkinsfile بیشتر، مراحل ایجاد خطوط لوله CD پس از ادغام را نشان میدهد که از فعالیت ادغام درخواست کشش GitHub راهاندازی میشوند.
در طول مسیر، تکنیکهای مختلف Jenkinsfile مانند اجرای اسکریپتهای خارجی، انتقال متغیرها در مراحل، چندین روش استفاده از Docker-outside-of-Docker (DooD)، استفاده از عوامل فلزی خالی، استفاده از اعتبارنامهها و تعامل با GitHub و Docker را مورد بحث قرار میدهد. هاب مشابه فصل 3، خط لوله CI مبتنی بر GitOps با GitHub، مراحل دقیق ایجاد خطوط لوله CD را برای هر دو AWS Jenkins با استفاده از push hook و Jenkins فایروال با استفاده از رأیگیری طی میکند.
فصل 5، Headfirst AWS برای Jenkins، دستورالعملهای دقیقی را در مورد استفاده از AWS نشان میدهد. در فصلهای قبلی، به منظور حفظ تمرکز بر جنکینز، جزئیات بیشتر عملیات AWS را نادیده گرفتهایم و در این فصل، آنها را با جزئیات کامل مورد بحث قرار میدهیم تا کاربران جدید بتوانند مراحل را با کلیک روی کلیک و در حین مراجعه به آن دنبال کنند.
اسکرینشاتهای متعدد با بحث در مورد اصول ورود به AWS شروع میشود، سپس به مراحل ایجاد یک جفت کلید SSH، مدیریت گروههای امنیتی، ایجاد نمونههای EC2 با IPهای Elastic، استفاده از Let’s Encrypt برای تولید گواهیهای TLS/SSL، ایجاد و پیکربندی Elastic Load Balancers ادامه میدهد. (ELB)، با استفاده از مدیر گواهی AWS برای تولید گواهیهای TLS/SSL، تنظیم قوانین مسیریابی، و در نهایت پیکربندی مسیر 53 برای نشان دادن URL جنکینز به کنترلکننده.
فصل 6، پیکربندی جنکینز به عنوان کد (JCasC)، با ایجاد یک نمونه کاملاً جدید جنکینز با استفاده از یک فایل پیکربندی که در سرتاسر فصل تولید میکنیم، JCasC را به تفصیل مورد بحث قرار میدهد. با نصب پلاگین JCasC و بحث در مورد محدودیتها و مرزهای آنچه که JCasC میتواند مدیریت کند شروع میشود.
سپس به خواندن جزئیات پیکربندی Jenkins که در فصل 1 راهاندازی کردیم، زیرساخت Jenkins با TLS/SSL و Reverse Proxy، از طریق فصل 4، خط لوله CD مبتنی بر GitOps با Docker Hub و ویژگیهای Jenkinsfile بیشتر ادامه میدهد.
هر بخش از پیکربندی را مورد بحث قرار میدهد و یک فایل پیکربندی جدید JCasC را بر اساس ورودیهای Jenkins موجود میسازد. هنگامی که فایل پیکربندی برای کنترلر، عامل و ابر داکر ساخته شد، یک نمونه جدید جنکینز با استفاده از فایل پیکربندی ایجاد میکند. هر مورد پیکربندی را مجدداً بررسی میکند و در مورد اینکه چقدر خوب (یا نه) بازیابی شده است بحث میکند. در نهایت، روشی اختیاری برای استفاده از اسکریپت Groovy برای حل برخی از مشکلاتی که در طول بازیابی یافت میشود را نشان میدهد.
بیشتر بخوانید: کتاب GitOps and Kubernetes
فصل 7، پشتیبانگیری و بازیابی و بازیابی فاجعه، استراتژیهای پشتیبانگیری را برای سناریوهای مختلف مورد بحث قرار میدهد و مراحل دقیق راهاندازی یک سیستم پشتیبانگیری خودکار را مرور میکند. ابتدا مزایا و معایب پشتیبانگیری از دیسک اسنپشات و پشتیبانگیری در سطح فایل را مورد بحث قرار میدهد.
سپس به محتوای $JENKINS_HOME نگاه میکند و فایلها و پوشههایی را که باید با فرکانس بالا پشتیبانگیری شوند، شناسایی میکند، برخلاف آنهایی که فقط یکبار در روز باید پشتیبانگیری شوند. هنگامی که مشخص کردیم از کدام فایلها باید نسخه پشتیبان تهیه کنیم، این فصل از طریق تنظیمات افزونه ThinBackup میرود. ابتدا یک راه حل پشتیبانگیری خارج از سایت با استفاده از NFS و تنظیم حجم داکر ارائه میدهد، سپس به جزئیات پیکربندی افزونه ThinBackup برای تولید فایلهای پشتیبان به طور مؤثر میرود. هنگامی که فایلهای پشتیبان تولید میشوند، فصل از طریق یک سناریوی فاجعه میگذرد که در آن خط لولهای را که کاربر به اشتباه حذف کرده است، بازیابی میکنیم.
راههای مختلفی را برای شناسایی اسنپشات پشتیبان درست برای بازیابی نشان میدهد، سپس وارد بحثهای عمیق در مورد چگونگی بازیابی مؤثر یک نسخه پشتیبان میشود. علاوه بر بازیابی خط لوله که به اشتباه حذف شده است، مکانیسم اساسی پشتیبانگیری و بازیابی را با نشان دادن راهی برای بازیابی خط لولهای که وجود نداشت، آموزش میدهد. در نهایت، یک سناریوی فاجعه شکست زیرساخت را پشت سر میگذارد و یک کتاب بازی بازیابی ارائه میدهد که میتوانید آن را دنبال کنید.
فصل 8، ارتقاء کنترلر، عوامل و پلاگینهای جنکینز، استراتژیهای ارتقاء را برای نمونههای کوچک و بزرگ جنکینز مورد بحث قرار میدهد. ابتدا مشکلات ارتقاء پلاگینها را مورد بحث قرار میدهد و راههای مختلفی را برای ارتقاء مؤثر افزونهها و کنترلرها ارائه میدهد. علاوه بر فرآیند ارتقا، این فصل از طریق Runbook SRE برای سناریوی ارتقاء میگذرد که در آن به شما آموزش داده میشود که چه زمانی و چگونه با کاربران در مورد ارتقاء ارتباط برقرار کنید. runbook نه تنها مسیر موفقیت، بلکه سناریوی شکست را نیز پوشش میدهد و استراتژیهای بازیابی و بازگشت را مورد بحث قرار میدهد.
فصل 9، کاهش تنگناها، راههای مختلفی را برای بهینهسازی Jenkins به شما میآموزد، مانند انتخاب اندازه نمونه EC2 مناسب، کاهش ردپای حافظه Jenkins، استفاده نکردن از محرکهای دورهای به نفع محرکهای webhook، ردیابی هزینههای AWS، بهینهسازی GitHub Pull Request Builder.
گزینهها، و حذف نماد آب و هوا از صفحه اصلی. در ادامه به بحث در مورد اسکریپتهای مختلف Groovy میپردازد که خطوط لوله طولانیمدت را خاتمه میدهند، قفلهای قدیمی را آزاد میکنند و سیاههها را تمیز میکنند. همچنین بهترین روشها برای نوشتن کد خط لوله جنکینز، مانند کاهش استفاده از مرحله اکو و استفاده از کد NonCPS برای اجرای سریعتر را مورد بحث قرار میدهد. سپس در مورد کاهش زمان راهاندازی عامل با پخت آرشیو پلاگین در EC2 AMI صحبت میکند، و سپس در نهایت راههای مدیریت موثر لاگهای مختلف را مورد بحث قرار میدهد.
فصل 10، کتابخانههای مشترک، با بحث در مورد ساختار دایرکتوری و محتوای یک کتابخانه مشترک شروع میشود. سپس، یک نمونه کتابخانه مشترک ایجاد میکند که از بسیاری از ویژگیهای مشترک استفاده میکند، سپس تفاوتهای بین ارائه کتابخانه مشترک بهعنوان یک کتابخانه مشترک جهانی در مقابل یک کتابخانه مشترک در سطح پوشه را توضیح میدهد.
هنگامی که کتابخانه مشترک برای استفاده در دسترس است، این فصل چندین روش مختلف بارگذاری آن را به شما آموزش میدهد و مورد استفاده هر روش را مورد بحث قرار میدهد.
پس از آن، این فصل با یک مثال عملی از ایجاد عملکردهای کتابخانه مشترک که از برنامه پیامرسان Slack برای ارائه بستههای پیامرسانی استاندارد استفاده میکند، میپردازد. در نهایت، این فصل عمیقتر به یک مورد استفاده پیشرفتهتر از ایجاد زبانهای اختصاصی دامنه (DSL) با استفاده از کتابخانههای مشترک میپردازد.
فصل 11، امنیت اسکریپت، با توضیح نقش یک مدیر در مقابل یک غیر مدیر در جنکینز شروع میشود. با توضیح مفهوم Groovy sandbox ادامه مییابد و در مورد Running outside و داخل sandbox بحث میکند.
خطرات اجرای خطوط لوله در خارج از جعبه شنی را آموزش میدهد و یک مورد استفاده از استفاده از یک کتابخانه مشترک جهانی برای بستهبندی تماسهای روش خطرناک را ارائه میدهد.
سپس به توضیح مدل مجوز جنکینز با بحث در مورد اجرای درون جعبه شنی ادامه میدهد و به شما میآموزد که چگونه از تأیید امضای روش به طور مؤثر استفاده کنید. این فصل به توضیح دکمه بررسی مجوزها با فرض تأیید تأیید میپردازد و کاربر SYSTEM و خطرات مدل مجوز پیشفرض جنکینز را توضیح میدهد. در نهایت، یک طراحی جایگزین جنکینز را مورد بحث قرار میدهد که به حفاظت از افزونه امنیت اسکریپت متکی نیست.
سرفصلهای کتاب Jenkins Administrator’s Guide:
- Preface
- 1 Jenkins Infrastructure with TLS/SSL and Reverse Proxy
- 2 Jenkins with Docker on HTTPS on AWS and inside a Corporate Firewall
- 3 GitOps-Driven CI Pipeline with GitHub
- 4 GitOps-Driven CD Pipeline with Docker Hub and More Jenkinsfile Features
- 5 Headfirst AWS for Jenkins
- 6 Jenkins Configuration as Code (JCasC)
- 7 Backup and Restore and Disaster Recovery
- 8 Upgrading the Jenkins Controller, Agents, and Plugins
- 9 Reducing Bottlenecks
- 10 Shared Libraries
- 11 Script Security
- Index
فایل کتاب Jenkins Administrator’s Guide را میتوانید پس از پرداخت، دریافت کنید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.