نصب پلاگین jenkins داخل docker

دنبالش بودم گفتم خیلی این روزا بهش نیاز دارند. برای نصب پلاگین داخل Dockerfile نمی خواد و نمی شه از روشهایی که تو اینترنت در جستجو های اولیه می یاد استفاده کرد. ولی خوب فکرشو کردن، باید از اسکریپت install-plugins.sh استفاده کنید . محتوای Dockerfile من این شکلیه:

FROM jenkins/jenkins:lts

RUN /usr/local/bin/install-plugins.sh checkstyle cloverphp dry htmlpublisher jdepend plot pmd violations xunit git greenballs

شروع کار با stretch

خوب دبیان جدید اومد من هم نصبش کردم. بد ندیدم نصبش رو لپ تاپم را مستند کنم هم برای خودم هم برای آنان که می اندیشند. 🙂

نصب دبیان ۹ – Stretch

امیدوارم انتظار نداشته باشید که عکس های مراحل نصب و پارتیشن بندی را بزارم…  🙂
فقط می تونم بگم که نصب به صورت پیشفرض از این نسخه به صورت گرافیکیه همین. و اینکه سیستم را به صورت کاملا پایه نصب کردم و هیچ میزکاری را موقع نصب انتخاب نکردم

ادامه خواندن شروع کار با stretch

مشکل نصب پلاگین برای Vagrant

در دبیان و اوبونتو زمانی که بسته Vagrant را نصب می کنید همه وابستگی های لازم برای اجرای بخشهای مختلف این نرم افزار نصب نمی شود. علاوه بر آن یک باگ شناخته شده وجود دارد که هنوز در مخازن اصلاح نشده است. محیط تست من ubuntu 16.04 است. یکی از مشکلات برای من زمان نصب پلاگین vagrant-share پیش اومد. زمانی که می خواستم دستور زیر را اجرا کنم با خطا مواجه می شدم:

vagrant plugin install vagrant-share

ادامه خواندن مشکل نصب پلاگین برای Vagrant

برگرداندن بک آپ یک ستون از دیتابیس

امروز یه حادثه کوچیک رخ داد. به اشتباه یک ستون از یک table پاک شد. این موضوع اگه یک backup‌ مطمئن نداشته باشی یک فاجعه است و احتمالا درد سر های زیادی خواهید داشت.

اما اگه بک آپ داشته باشی خیلی راحت می تونید از فایل  backup ستونی که می خواهید را اصلاح کنید.

مشکل پیش رو اینه که نمی تونیم مستقیم از بک آپ کل دیتابیس یک سطر از table را برگرداند. خوب اما راه حل:

۱- بر گرداندن بک آپ روی یک دیتا بیس با اسم متفرقه

mysql -u root -p

>create database backup;

mysql -u root -p backup < site-backup.sql

۲- جایگزین کردن ستون از روی ستون دیتابیس backup

mysql -u root -p

> update maindb.tablename, backupdb.tablename set maindb.tablename.corrupt_column = backupdb.tablename.corrupt_column where maindb.tablename.id = backupdb.tablename.id;;

با دستور آخر ستون corrupt_column از جدول tablename از دیتابیس backupdb بر روی ستون corrupt_column از جدول tablename از جدول maindb به صورت سطر به سطر با شرط اینکه سطر ها دارای id یکسان باشند کپی می شود.

پیدا کردن اسکریپت های cpu بر php

امروز یه مشکل برخوردم. وب سایت به روزرسانی شده بود و یکی از اسکریپت های به روز رسانی شده دردسر درست کرده بود. هر از گاهی php میزان مصرف cpu اش میرسید به ۱۰۰ درصد، ولی نمی دونستیم کدوم اسکریپته. لازم بود که سیستم را یه مدت کوتاه بزارم زیر مانیتور تا هر موقع درخواستی بیش از ۵۰ درصد cpu را مصرف کرد، لاگ بگیره.

برای همین نیاز به ابزاری برای لاگ کردن درخواست های php و میزان مصرف cpu شون داشتیم. شاید بپرسید خوب یه top باز کن ببین!

یکی اینکه هر از گاهی این اتفاق می افتاد و تا می اومد برم بررسی کنم مصرف cpu عادی می شد و نمی تونستم بفهمم مشکل کجاست.

سوال: به چه شکل درخواست های cpu بر php یک وب سایت را پیدا کنم؟

جواب: نیاز به ابزاری آماده نیست، با استفاده از ابزارهای موجود bash و چند تا دستور کنار هم می تونید به شکل زیر به نتیجه مورد نظرتون برسید:

while true; do ps faxuewwww -we | grep php | grep –color “^www-data” | tr -s ‘ ‘ | cut -f 1,3,10- -d ” “| while read user cpu proc; do if [ “${cpu%.*}” -ge “50” ]; then echo “$cpu $proc” >> /tmp/php.log; fi ;  done; sleep 2 ; done

بزارید این دستور یه مدت کار کنه و بعد فایل tmp/php.log/ را بررسی کنید. دقت کنید که فرض بر این شده که وب سرور شما داره با کاربر www-data اجرا شده است.

به روز رسانی یک بسته با apt

سوال: چه شکلی بدون به روزرسانی کل سیستم، فقط بسته مورد نظر خودمون را به روزرسانی کنیم؟

جواب: خیلی ساده کافیه دوباره دستور نصب اون بسته را اجرا کنیم.

apt-get update && apt-get install <package_name>

بسته bind-chroot

مدتی بود قرار بود که روند chroot کردن bind ار اسکریپتی اش کنم که هر دفته نخوام دونه دونه کارها را دستی انجام بدم ، تازه یک چیزی هم اون وسط ها جا بمونه.

اومدم از صفر بنویسم دیدم CentOS این کار را کرده برای همین بسته CentOS را برای Debian Jessie تغییر دادم و الان آماده است. این مطلب را بخونید تا با bind-chroot بهتر آشنا بشید 😉

معرفی Oakvnc

بعد از مدتها بالاخر وقت کردم آمادش کردم. خیلی وقت بود که احساس می کردم نیاز به یک سرویس remote desktop دارم. مشکلم با سرویس vnc موجود سخت بودن استفاده ازشون بود. بالاخره یک package آماده کردم که استفاده از vncserver را ساده می کند. یک فایل کانفیگ و یک سری اسکریپت که می تونه موقع بالا آمدن سیستم اجازه دسترسی بهم بده.

توضیحات بیشتر را می تونید از اینجا مطالعه کنید. و بسته قابل نصب برروی دبیان و اوبونتو را هم می توانید از اینجا دریافت کنید.

تازه ها در Jessie و LVM

چند وقتی سرم شلوغ بود نشد مطلبی بنویسم. یهو سر ریز شد. سه تا مطلب نوشتم 🙂 البته یکیش آرشیویه که گم شده بود.

۱- تازه ها در Jessie – مروری بر تغییرات

۲- Logical Volume Management

۳- LVM Snapshots

ابزارهای دم دستی مدیر سیستم

توی انجمن Linux-admins  یک پست راه اندازی کردم برای جمع آوری ابزارهای مورد نیاز یک مدیر برای بررسی و عیب یابی سیستم که بهتر است از ابتدا بر روی سیستم نصب باشند.

ممنون می شم دوستان که در این لینک همکاری کنند

اینجا باید راحت باشی !