نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8
هنگام راه اندازی سرور جدید لینوکس ، به روزرسانی سیستم های هسته و سایر بسته ها تا آخرین نسخه پایدار یک روش توصیه شده است. در این مقاله
Buildbot یک ابزار ادغام پیوسته و مبتنی بر پایتون برای خودکارسازی ساختن نرم افزار ، آزمایش و استقرار است. Buildbot متشکل از یک یا چند استاد Buildbot و تعدادی کارگر است. Master Buildbot یا Buildmaster فرمان مرکزی سیستم را دارد. این مسئول مدیریت محیط ساخت و ساز ، کارگران است و کلیه تصمیمات در مورد ارسال شغل به کارگران را می گیرد. Buildmaster تغییرات موجود در مخزن کد را تشخیص داده و دستورات یا کارها را برای اجرای کار به کارگران ارسال می کند. کارگران کارها را انجام داده و نتیجه را به Buildmaster برمی گردانند. سپس Buildmaster از طریق چندین کانال پشتیبانی از توسعه دهندگان خبر می دهد. در این آموزش ، استاد و کارگر Buildbot را بر روی CentOS 7 نصب خواهیم کرد. همچنین احراز هویت و Nginx را به عنوان یک پروکسی معکوس ایمن پیکربندی خواهیم کرد.
برای این آموزش ، ما به 192.168.1.1
عنوان آدرس IP عمومی و ci.example.com
به عنوان نام دامنه به سمت نمونه Vultr اشاره خواهیم کرد. لطفاً اطمینان حاصل کنید که تمام وقایع نام دامنه و آدرس IP را با نمونه واقعی جایگزین کنید.
سیستم پایه خود را با استفاده از راهنمای نحوه به روزرسانی CentOS 7 به روز کنید . پس از به روزرسانی سیستم ، نصب PostgreSQL را ادامه دهید.
Pip را نصب کنید که یک مدیر بسته برای Python است.
sudo yum -y install epel-release
sudo yum -y install python-pip gcc python-devel git
sudo pip install --upgrade pip
Buildbot از انواع مختلفی از سرورهای پایگاه داده مانند MySQL ، PostgreSQL و SQLite پشتیبانی می کند. در این آموزش از PostgreSQL برای میزبانی سرور پایگاه داده Buildbot استفاده خواهیم کرد.
PostgreSQL یک سیستم پایگاه داده رابطه ای است که به دلیل پایداری و سرعت آن شناخته شده است. yum
مخزن پیش فرض شامل نسخه قدیمی PostgreSQL است ، بنابراین مخزن PostgreSQL را اضافه کنید.
sudo yum -y install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-1.noarch.rpm
سرور پایگاه داده PostgreSQL را نصب کنید.
sudo yum -y install postgresql10-server postgresql10-contrib postgresql10
اولویت بندی پایگاه داده.
sudo /usr/pgsql-10/bin/postgresql-10-setup initdb
سرور PostgreSQL را راه اندازی کنید و آن را فعال کنید تا به طور خودکار در زمان بوت شروع شود.
sudo systemctl start postgresql-10
sudo systemctl enable postgresql-10
گذرواژه را برای کاربر پیش فرض PostgreSQL تغییر دهید.
sudo passwd postgres
به عنوان کاربر PostgreSQL وارد شوید.
sudo su - postgres
یک کاربر جدید PostgreSQL برای Buildbot ایجاد کنید.
createuser bb_user
در صورت تمایل می توانید از هر نام کاربری استفاده bb_user
کنید. PostgreSQL psql
پوسته را برای اجرای نمایش داده ها در پایگاه داده فراهم می کند . به پوسته PostgreSQL بروید.
psql
رمزعبور را برای کاربر تازه ایجاد شده تنظیم کنید.
ALTER USER bb_user WITH ENCRYPTED password 'DBPassword';
DBPassword
با یک رمز عبور ایمن جایگزین کنید .
برای نصب Buildbot یک دیتابیس جدید ایجاد کنید.
CREATE DATABASE buildbot OWNER bb_user;
از psql
پوسته خارج شوید.
\q
به sudo
کاربر تغییر دهید.
exit
pg_hba.conf
برای فعال کردن احراز هویت مبتنی بر MD5 ، پرونده را ویرایش کنید.
sudo nano /var/lib/pgsql/10/data/pg_hba.conf
یافتن خطوط زیر و تغییر ارزش peer
ها و ident
در METHOD
ستون، به trust
و md5
، به ترتیب.
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 ident
# IPv6 local connections:
host all all ::1/128 ident
پس از به روزرسانی ، پیکربندی مانند متن زیر خواهد بود.
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
پرونده را ذخیره کرده و از ویرایشگر خارج شوید. آداپتور پایگاه داده PostgreSQL را برای Python نصب کنید.
sudo pip install psycopg2
PostgreSQL را مجدداً راه اندازی کنید تا تغییرات مؤثر واقع شوند.
sudo systemctl restart postgresql-10
Buildbot را با استفاده از Pip نصب کنید.
sudo pip install 'buildbot[bundle]' pyopenssl service_identity
دستور فوق Buildbot همراه با نصب buildbot-www
، buildbot-worker
و چندین وب پلاگین ها مانند buildbot-waterfall-view
.
برای اطمینان از نصب موفقیت آمیز Buildbot ، می توانید با بررسی نسخه Buildbot تأیید کنید.
buildbot --version
خروجی باید شبیه متن زیر باشد.
[user@vultr ~]$ buildbot --version
Buildbot version: 0.9.15.post1
Twisted version: 17.9.0
قوانین فایروال خود را اصلاح ک��ید تا پورت مجاز شود 8010
. Buildbot از این پورت برای گوش دادن به درخواست های وب استفاده می کند.
sudo firewall-cmd --zone=public --add-port=8010/tcp --permanent
sudo firewall-cmd --reload
برای اجرای فرایندهای کارشناسی ارشد و کارگر Buildbot ، یک کاربر جدید غیر شخصی ایجاد کنید. اجرای خدمات اصلی Buildbot به عنوان root
کاربر توصیه نمی شود .
sudo adduser buildbot
sudo passwd buildbot
به عنوان buildbot
کاربر تازه ایجاد شده وارد شوید
sudo su - buildbot
استاد Buildbot را در /home/buildbot/master
دایرکتوری تنظیم کنید . این فهرست شامل پیکربندی ، وضعیت و پرونده های ثبت شده در هر ساخت می باشد.
buildbot create-master --db 'postgresql://bb_user:DBPassword@localhost/buildbot' ~/master
حتماً در دستور فوق ، اعتبار کاربر پایگاه داده را جایگزین کنید.
توجه: اگر می خواهید به جای PostgreSQL از بانک اطلاعاتی SQLite استفاده کنید ، --db 'postgresql://bb_user:DBpassword@localhost/buildbot'
گزینه را به راحتی حذف کنید. بانک اطلاعاتی SQLite در همان دایرکتوری ایجاد می شود.
دستور فوق ~/master
برای ذخیره پرونده های Buildmaster دایرکتوری ایجاد می کند . همچنین داده ها را در پایگاه داده PostgreSQL می نویسد. خروجی زیر را دریافت خواهید کرد.
[buildbot@vultr ~]$ buildbot create-master --db 'postgresql://bb_user:DBPassword@localhost/buildbot' ~/master
mkdir /home/buildbot/master
creating /home/buildbot/master/master.cfg.sample
creating database (postgresql://bb_user:DBPassword@localhost/buildbot)
buildmaster configured in /home/buildbot/master
پرونده پیکربندی نمونه را در یک فایل پیکربندی زنده کپی کنید.
cp ~/master/master.cfg.sample ~/master/master.cfg
پرونده پیکربندی را ویرایش کنید.
nano ~/master/master.cfg
سطرهای زیر را پیدا کنید.
c['workers'] = [worker.Worker("example-worker", "pass")]
...
c['builders'].append(
util.BuilderConfig(name="runtests",
workernames=["example-worker"],
factory=factory))
...
c['title'] = "Hello World CI"
c['titleURL'] = "https://buildbot.github.io/hello-world/"
...
c['buildbotURL'] = "http://localhost:8010/"
...
c['db'] = {
'db_url' : "postgresql://bb_user:DBpassword@localhost/buildbot",
}
پیکربندی فوق دارای ورودی برای یک کارگر نمونه است. ما ورودی نمونه را برای کارگر مورد نظر خود اصلاح خواهیم کرد localhost
. تغییر نام example-worker
به هر نام مناسب برای localhost
کارگر و pass
گذرواژه را به رمز دیگری تغییر دهید . همانطور که بعداً در آموزش به آن احتیاج خواهیم داشت ، نام و رمز کارگر را یادداشت کنید. نام کارگر را در لیست سازندگان تغییر دهید. با توجه به نیاز خود نام برنامه و URL پروژه را تغییر دهید.
URL Buildbot را localhost
به نام دامنه واقعی یا آدرس IP عمومی خود تغییر دهید. همچنین ، تأیید کنید که اطلاعات دیتابیس در پرونده پیکربندی با اعتبار واقعی پایگاه داده شما مطابقت دارد.
در پایان پرونده ، اضافه کنید c['buildbotNetUsageData'] = None
. این پارامتر ارسال اطلاعات نسخه نرم افزار و جزئیات استفاده از افزونه را به توسعه دهندگان غیرفعال می کند. با این حال ، برای فعال کردن ارسال اطلاعات استفاده ، گزینه را تغییر دهید Full
.
پیکربندی باید مانند متن زیر باشد.
c['workers'] = [worker.Worker("localhost-worker", "Password123")]
...
c['builders'].append(
util.BuilderConfig(name="runtests",
workernames=["localhost-worker"],
factory=factory))
...
c['title'] = "My Application CI"
c['titleURL'] = "https://example.com/my-app"
...
c['buildbotURL'] = "http://192.168.1.1:8010/"
...
c['db'] = {
'db_url' : "postgresql://bb_user:DBpassword@localhost/buildbot",
}
...
c['buildbotNetUsageData'] = None
پرونده را ذخیره کرده و از ویرایشگر خارج شوید. فایل پیکربندی را برای خطاها بررسی کنید.
buildbot checkconfig ~/master
اگر پرونده پیکربندی خطایی نداشته باشد ، خروجی زیر را مشاهده خواهید کرد.
[buildbot@vultr ~]$ buildbot checkconfig ~/master
Config file is good!
اکنون که همه چیز به درستی پیکربندی شده است ، می توانید استاد Buildbot را شروع کنید.
buildbot start ~/master
خروجی زیر را مشاهده خواهید کرد.
[buildbot@vultr ~]$ buildbot start ~/master
Following twistd.log until startup finished..
The buildmaster appears to have (re)started correctly.
اکنون که استاد Buildbot به درستی شروع شده است ، رابط کاربری وب در دسترس است http://192.168.1.1:8010
. باید رابط Buildbot زیر را ببینید.
از آنجا که قبلاً پیکربندی کارگر را تغییر داده ~/master/master.cfg
ایم ، می توانیم کارگر جدیدی را ایجاد کنیم.
buildbot-worker create-worker ~/worker localhost localhost-worker Password123
اطمینان حاصل کنید که از همان نام کاربری و رمزعبور همانطور که در ~/master/master.cfg
پرونده ذکر شده است استفاده می کنید. در صورت عدم تطابق نام کارگر یا رمز عبور ، کارگر قادر به اتصال به استاد Buildbot نخواهد بود. خروجی زیر را بعد از اجرای موفق مشاهده خواهید کرد.
[buildbot@vultr ~]$ buildbot-worker create-worker ~/worker localhost example-worker pass
mkdir /home/buildbot/worker
mkdir /home/buildbot/worker/info
Creating info/admin, you need to edit it appropriately.
Creating info/host, you need to edit it appropriately.
Not creating info/access_uri - add it if you wish
Please edit the files in /home/buildbot/worker/info appropriately.
worker configured in /home/buildbot/worker
اطلاعات مربوط به کارگر در /info
دایرکتوری ذخیره می شود . اطلاعات اداری مربوط به توسعه دهنده را ویرایش کنید.
nano ~/worker/info/admin
نام مثال را با نام و ایمیل واقعی خود جایگزین کنید.
Your Name <[email protected]>
اکنون پرونده حاوی اطلاعات مربوط به میزبان را باز کنید.
nano ~/worker/info/host
دستورالعمل مثال را با اطلاعات واقعی در مورد سیستم میزبان جایگزین کنید.
Localhost, CentOS 7
اطلاعات سرپرست و میزبان کارگر فقط برای گفتن کاربران در مورد سیستم استفاده می شود. همچنین می توانید اطلاعات دیگری در مورد سیستم مانند نسخه Buildbot و نسخه Twisted اضافه کنید.
کارگر را شروع کنید.
buildbot-worker start ~/worker
خروجی شبیه متن زیر خواهد بود.
[buildbot@vultr ~]$ buildbot-worker start ~/worker
Following twistd.log until startup finished..
The buildbot-worker appears to have (re)started correctly.
برای بررسی اینکه آیا کارگر ثبت نام کرده است ، به رابط وب Buildbot بروید و Builds >> Workers
از ناوبری سمت چپ حرکت کنید. باید دید که کارگر آماده و آماده ساخت است.
برای اجرای نمونه ساخت ، برای بررسی اینکه کارگر Buildbot با موفقیت در حال اجرا است ، به مسیر حرکت کنید Builds >> Builders
. بر روی runtests
نام سازنده کلیک کنید تا رابط کاربری سازنده باز شود و بر روی Force
دکمه کلیک کنید تا اجباری ایجاد شود. نام خود را تهیه کرده و بر روی Start Build
دکمه کلیک کنید تا ساخت شروع شود. از آنجایی که این یک آزمایش ساخت نمونه برای بررسی محیط Buildbot است ، طی چند ثانیه به پایان می رسد. شما یک پیام موفقیت آمیز و نتیجه ساخت خواهید گرفت.
اگرچه می توان استاد و کارگر Buildbot را با استفاده از دستورات فوق به راحتی شروع کرد ، اما برای اجرای و مدیریت خدمات Buildbot از واحدهای Systemd استفاده می شود. با این کار اطمینان حاصل می شود که آنها به طور خودکار در راه اندازی مجدد سیستم و خرابی ها شروع می شوند.
توجه: تغییر به sudo
کاربران دیگر توسط در حال اجرا یا exit
یا su <username>
. از این پس تمام دستورات باید توسط sudo
کاربر اجرا شود .
سرویس در حال اجرا و کارشناسی ارشد Buildbot را متوقف کنید.
sudo su buildbot -c "buildbot stop /home/buildbot/master"
sudo su buildbot -c "buildbot-worker stop ~/worker"
یک فایل واحد Systemd جدید برای استاد Buildbot ایجاد کنید.
sudo nano /etc/systemd/system/buildbot.service
پرونده را جمع کنید.
[Unit]
Description=BuildBot master service
After=network.target
[Service]
Type=forking
User=buildbot
Group=buildbot
WorkingDirectory=/home/buildbot/master
ExecStart=/usr/bin/buildbot start
ExecStop=/usr/bin/buildbot stop
ExecReload=/usr/bin/buildbot restart
[Install]
WantedBy=multi-user.target
استاد Buildbot را شروع کنید و آن را فعال کنید تا به طور خودکار در زمان بوت شروع شود.
sudo systemctl start buildbot
sudo systemctl enable buildbot
یک فایل واحد Systemd جدید برای کارگر Buildbot ایجاد کنید.
sudo nano /etc/systemd/system/buildbot-worker.service
پرونده را جمع کنید.
[Unit]
Description=BuildBot worker service
After=network.target
[Service]
Type=forking
User=buildbot
Group=buildbot
WorkingDirectory=/home/buildbot/worker
ExecStart=/usr/bin/buildbot-worker start
ExecStop=/usr/bin/buildbot-worker stop
ExecReload=/usr/bin/buildbot-worker restart
[Install]
WantedBy=multi-user.target
کارگر Buildbot را شروع کنید و آن را فعال کنید تا به طور خودکار در زمان بوت شروع شود.
sudo systemctl start buildbot-worker
sudo systemctl enable buildbot-worker
می توانید وضعیت خدمات را بررسی کنید.
sudo systemctl status buildbot buildbot-worker
اگر خدمات به طور روان اجرا شوند ، در خروجی آن را مشاهده خواهید کرد.
[user@vultr ~]$ sudo systemctl status buildbot buildbot-worker
● buildbot.service - BuildBot master service
...
Active: active (running) since Fri 2018-01-12 16:00:59 UTC; 1min 25s ago
...
Jan 12 16:00:59 vultr.guest systemd[1]: Started BuildBot master service.
● buildbot-worker.service - BuildBot worker service
...
Active: active (running) since Fri 2018-01-12 16:02:00 UTC; 24s ago
...
Jan 12 16:02:00 vultr.guest systemd[1]: Started BuildBot worker service.
به طور پیش فرض ، احراز هویت در رابط وب Buildbot فعال نمی شود. برای سایت های رو به اینترنت ، تنظیم هویت به شدت توصیه می شود تا فقط کاربران مجاز بتوانند توانایی انجام کارهای اداری را داشته باشند. برای تنظیم اعتبار ، فایل پیکربندی استاد Buildbot را مجدداً باز کنید.
sudo su buildbot -c "nano /home/buildbot/master/master.cfg"
خط های زیر را به انتهای پرونده اضافه کنید.
c['www']['authz'] = util.Authz(
allowRules = [
util.AnyEndpointMatcher(role="admins")
],
roleMatchers = [
util.RolesFromUsername(roles=['admins'], usernames=['admin_user'])
]
)
c['www']['auth'] = util.UserPasswordAuth({'admin_user': 'AdminPassword'})
هر دو مورد را admin_user
با نام کاربری واقعی که می خواهید استفاده کنید و AdminPassword
با یک رمزعبور قوی جایگزین کنید .
خطاهای موجود در پرونده پیکربندی را بررسی کنید.
sudo su buildbot -c "buildbot checkconfig /home/buildbot/master"
سرویس اصلی Buildbot را مجدداً راه اندازی کنید تا این تغییرات موثر واقع شوند.
sudo systemctl restart buildbot
دوباره رابط وب را مرور کنید تا ببینید کاربران ناشناس فقط می توانند جزئیات اصلی در مورد سرور ساخت را مشاهده کنند. اکنون با استفاده از اعتبارنامه های تعیین شده در master.cfg
پرونده وارد شوید و خواهید دید که تمام عملکردهای اداری دیگر فقط در اختیار کاربر سرپرست وارد شده است.
به طور پیش فرض ، Buildbot 8010
در اتصال به اتصالات نا امن به درگاه گوش می دهد . HTTPS
برای اطمینان از عدم امنیت داده ها هنگام انتقال از مرورگر به سرور ، امنیت رابط وب با استفاده از آن توصیه می شود. در این بخش از آموزش ، Nginx را با Letts Encrypt free SSL گواهینامه ها نصب و ایمن خواهیم کرد. وب سرور Nginx به عنوان یک پروکسی معکوس برای ارسال درخواست های ورودی به نقطه پایانی HTTP Buildbot کار خواهد کرد.
Nginx را نصب کنید.
sudo yum -y install nginx
Nginx را شروع کنید و آن را فعال کنید تا به طور خودکار در زمان بوت شروع شود.
sudo systemctl start nginx
sudo systemctl enable nginx
Certbot را نصب کنید ، که برنامه مشتری برای Let Encrypt CA است.
sudo yum -y install certbot
قبل از اینکه شما می توانید گواهینامه های درخواست، شما نیاز به اجازه پورت 80
و 443
یا استاندارد HTTP
و HTTPS
خدمات از طریق فایروال. همچنین پورت را 8010
که به اتصالات نا امن گوش می دهد ، حذف کنید .
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --zone=public --remove-port=8010/tcp --permanent
sudo firewall-cmd --reload
توجه: برای به دست آوردن گواهینامه ها از Let Encrypt CA ، دامنه تولید شده برای صدور گواهینامه ها باید به سمت سرور هدایت شود. در این صورت ، تغییرات لازم را در سوابق DNS دامنه ایجاد کرده و منتظر انتشار DNS قبل از درخواست مجوز مجدد باشید. Certbot قبل از ارائه گواهینامه ها ، دامنه را بررسی می کند.
صدور گواهینامه SSL را ایجاد کنید.
sudo certbot certonly --webroot -w /usr/share/nginx/html -d ci.example.com
گواهینامه های تولید شده احتمالاً در /etc/letsencrypt/live/ci.example.com/
دایرکتوری ذخیره می شوند . گواهینامه SSL ذخیره می شود fullchain.pem
و کلید خصوصی نیز به عنوان ذخیره می شود privkey.pem
.
بیایید مجوزهای رمزگذاری در مدت 90 روز منقضی شوند ، از این رو توصیه می شود با استفاده از مشاغل Cron ، تمدید خودکار گواهینامه ها را تنظیم کنید.
پرونده کار cron را برای root
کاربر باز کنید.
sudo crontab -e
در انتهای پرونده خط زیر را اضافه کنید.
30 5 * * * /usr/bin/certbot renew --quiet
کار cron فوق هر روز در 5:30 دقیقه صبح انجام می شود. اگر گواهی برای انقضا موقت باشد ، به طور خودکار آنها را تمدید می کند.
اکنون پرونده پیکربندی پیش فرض Nginx را تغییر دهید تا default_server
خط خارج شود .
sudo sed -i 's/default_server//g' /etc/nginx/nginx.conf
یک فایل پیکربندی جدید برای رابط وب Buildbot ایجاد کنید.
sudo nano /etc/nginx/conf.d/buildbot.conf
پرونده را جمع کنید.
upstream buildbot {
server 127.0.0.1:8010;
}
server {
listen 80 default_server;
server_name ci.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2 default_server;
server_name ci.example.com;
root html;
index index.html index.htm;
ssl on;
ssl_certificate /etc/letsencrypt/live/ci.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/ci.example.com/privkey.pem;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1440m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;";
access_log /var/log/nginx/buildbot.access.log;
proxy_set_header HOST $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-Host $host;
location / {
proxy_pass http://buildbot;
}
location /sse/ {
proxy_buffering off;
proxy_pass http://buildbot/sse/;
}
location /ws {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://buildbot/ws;
proxy_read_timeout 6000s;
}
}
خطاهای موجود در پرونده پیکربندی جدید را بررسی کنید.
sudo nginx -t
اگر خروجی زیر را مشاهده کنید ، پیکربندی بدون خطا است.
[user@vultr ~]$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
اگر نوعی خطا دریافت کرده اید ، حتماً مسیر گواهی های SSL را دو برابر کنید. برای اجرای تغییر در تنظیمات ، سرور وب Nginx را مجدداً راه اندازی کنید.
sudo systemctl restart nginx
پرونده پیکربندی Buildmaster را باز کنید.
sudo su buildbot -c "nano /home/buildbot/master/master.cfg"
خط زیر را پیدا کنید.
c['buildbotURL'] = "http://192.168.1.1:8010/"
URL را مطابق با نام دامنه مورد استفاده خود تغییر دهید.
c['buildbotURL'] = "https://ci.example.com/"
سرویس کارشناسی ارشد Buildbot را مجدداً راه اندازی کنید.
sudo systemctl restart buildbot
اکنون می توانید به داشبورد Buildbot در دسترسی پیدا کنید https://ci.example.com
. خواهید دید که اتصال به Buildbot اکنون با SSL ایمن شده است.
با استفاده از اعتبارنامه سرپرست وارد شوید و اولین خط لوله خود را برای شروع ساختن برنامه خود اضافه کنید.
هنگام راه اندازی سرور جدید لینوکس ، به روزرسانی سیستم های هسته و سایر بسته ها تا آخرین نسخه پایدار یک روش توصیه شده است. در این مقاله
مقدمه RethinkDB یک پایگاه داده NoSQL است که داده ها را به عنوان اسناد JSON ذخیره می کند. این یک زبان پرس و جو بسیار بصری است و از ویژگی های آن معمولا در دسترس است
Vtiger CRM یک نرم افزار محبوب مدیریت ارتباط با مشتری است که می تواند به بنگاهها در رشد فروش ، ارائه خدمات به مشتری و افزایش سود کمک کند. من
با استفاده از یک سیستم متفاوت؟ Couch CMS یک سیستم مدیریت محتوای منبع ساده و انعطاف پذیر ، آزاد و منبع باز (CMS) است که به طراحان وب اجازه می دهد تا طراحی کنند.
با استفاده از یک سیستم متفاوت؟ SonarQube یک ابزار منبع باز برای توسعه سیستم با کیفیت است. در جاوا نوشته شده است و چندین پایگاه داده را پشتیبانی می کند. فراهم می کند
با استفاده از یک سیستم متفاوت؟ Netdata یک ستاره در حال افزایش در زمینه نظارت بر معیارهای سیستم در زمان واقعی است. در مقایسه با سایر ابزارهای مشابه ، Netdata:
HTTP / 2 جدیدترین نسخه پروتکل HTTP است که از SPDY مستقر است. توسعه آن توسط Google آغاز شده است و HTTP / 2 تا حد زیادی بر اساس پایگاه کد است
با استفاده از یک سیستم متفاوت؟ در این آموزش ، Ill در مورد نحوه راه اندازی یک سرور Starbound در CentOS 7 توضیح می دهد. پیش نیازها: شما باید این بازی را روی خود داشته باشید
به یکی دیگر از آموزش های Vultr خوش آمدید. در اینجا ، نحوه نصب و اجرای سرور SAMP را یاد خواهید گرفت. این راهنما برای CentOS 6 نوشته شده است. پیش نیازهای مورد نیاز شما
با استفاده از یک سیستم متفاوت؟ Elgg یک موتور شبکه ای منبع باز است که امکان ایجاد محیط های اجتماعی از جمله شبکه های اجتماعی دانشگاه را فراهم می کند
RStudio Server نسخه وب RStudio است که مجموعه ای از ابزارهایی است که برای تسهیل کار برنامه نویسی با استفاده از زبان برنامه نویسی R طراحی شده است. در سه
Bolt یک CMS منبع باز است که به زبان PHP نوشته شده است. کد منبع Bolts در GitHub میزبانی شده است. این راهنما نحوه نصب Bolt CMS را در CentOS 7 Vult تازه نشان می دهد
Elasticsearch یک موتور جستجوی کامل و متن تحلیلی متن کامل است. به لطف تطبیق پذیری ، مقیاس پذیری و سهولت استفاده ، Elasticsearch گسترده تر است
بررسی اجمالی این مقاله به شما کمک می کند تا در هر زمان خوشه ای از Kubernetes را جمع کنید و با kubeadm در حال اجرا باشید. در این راهنما از دو سرور استفاده می شود
با استفاده از یک سیستم متفاوت؟ مقدمه Sails.js یک چارچوب MVC ��رای Node.js است ، شبیه به Ruby on Rails. این امر برای ایجاد برنامه های مدرن ver
Vultrs عملکرد IP فضای شما را امکان پذیر می سازد تا آزادی بی سابقه ای در اختصاص منابع IP شخصی شما به سرورهای cloud Vultr داشته باشید. ما کلی
مقدمه در این آموزش ، PufferPanel را در Vultr VPS ما نصب کنید. PufferPanel یک پانل کنترل با منبع آزاد و بصورت رایگان برای مدیریت شما است
معرفی سیستم های لینوکس به طور پیش فرض مانند top ، df و du با ابزارهای نظارتی ارسال می شوند که به نظارت بر فرایندها و فضای دیسک کمک می کنند. با این حال ، اغلب اوقات ، آنها به صورت طاقت فرسا هستند
با استفاده از یک سیستم متفاوت؟ LibreNMS یک سیستم نظارت بر شبکه منبع باز کاملاً برجسته است. از SNMP برای به دست آوردن داده ها از دستگاه های مختلف استفاده می کند. یک نوع
با استفاده از یک سیستم متفاوت؟ Gitea یک منبع کنترل جایگزین متن باز و خود میزبان است که توسط Git ساخته شده است. Gitea در Golang نوشته شده و هست
LiteCart یک بستر سبد خرید آزاد و منبع باز است که به زبان های PHP ، jQuery و HTML 5 نوشته شده است. این نرم افزار ساده ، سبک و با کاربرد آسان است.
با استفاده از یک سیستم متفاوت؟ Anchor CMS یک سیستم مدیریت محتوا (CMS) بسیار ساده و بسیار سبک ، بسیار آزاد و آزاد است.
NFS یک سیستم فایل مبتنی بر شبکه است که به رایانه ها اجازه می دهد تا از طریق شبکه رایانه ای به فایلها دسترسی پیدا کنند. این راهنما توضیح می دهد که چگونه می توانید پوشه ها را روی NF قرار دهید
هنگام راه اندازی سرور جدید لینوکس ، به روزرسانی سیستم های هسته و سایر بسته ها تا آخرین نسخه پایدار یک روش توصیه شده است. در این مقاله
با استفاده از یک سیستم متفاوت؟ Matomo (سابقا پیویک) یک بستر تحلیلی منبع باز است ، یک جایگزین باز برای Google Analytics. منبع Matomo میزبان o
TeamTalk یک سیستم کنفرانس است که به کاربران امکان می دهد مکالمات صوتی / تصویری با کیفیت بالا ، چت متنی ، انتقال فایل ها و صفحه های به اشتراک بگذارند. من
Vultr یک ویژگی را فراهم می کند که به شما امکان می دهد با ایجاد یک نمونه جدید ، کلیدهای SSH را از قبل نصب کنید. این اجازه می دهد تا به کاربر root دسترسی داشته باشید ، با این حال ، th
با استفاده از یک سیستم متفاوت؟ NodeBB یک نرم افزار انجمن مبتنی بر Node.js است. از سوکت های وب برای تعامل فوری و اعلامیه های زمان واقعی استفاده می کند. NodeB
ZNC یک پیشرانه پیشرفته شبکه IRC است که تمام وقت بهم متصل می شود تا مشتری IRC بتواند بدون از دست دادن جلسه گپ قطع یا وصل شود.
رنجر یک مدیر فایل مبتنی بر خط فرمان است که دارای کلیدهای اتصال VI است. این برنامه یک رابط لعنتی مینیمالیستی و زیبا با نمای سلسله مراتب فهرست ارائه می دهد