CentOS 7de Tavşan Kümesini Kümeleme
RabbitMQ, AMQP, STOMP ve diğer iletişim teknolojilerini destekleyen açık kaynaklı bir mesaj aracısıdır. Kurumsal uygulamalarda yaygın olarak kullanılan bir
Buildbot, yazılım oluşturma, test etme ve dağıtımı otomatikleştirmek için açık kaynaklı, Python tabanlı, sürekli bir entegrasyon aracıdır. Buildbot, bir veya daha fazla Buildbot yöneticisi ve bir dizi işçiden oluşur. Buildbot master veya Buildmaster, sistemin merkezi komutuna sahiptir. Yapım ortamının ve çalışanların yönetiminden sorumludur ve işçilere iş gönderme ile ilgili tüm kararları verir. Buildmaster, kod deposundaki değişiklikleri algılar ve komutları veya işleri çalışanların çalıştırması için gönderir. İşçiler işleri yürütür ve sonucu Buildmaster'a geri gönderir. Daha sonra Buildmaster, geliştiricileri birden fazla desteklenen kanal aracılığıyla bilgilendirir. Bu derste, Centbot 7'ye Buildbot master ve çalışanını kuracağız. Ayrıca kimlik doğrulama ve Nginx'i güvenli bir ters proxy olarak da yapılandıracağız.
Bu eğitimde, 192.168.1.1
genel IP adresi ve ci.example.com
Vultr örneğine işaret eden alan adı olarak kullanacağız. Lütfen örnek alan adının ve IP adresinin tüm tekrarlarını gerçek adla değiştirdiğinizden emin olun.
CentOS 7'yi Güncelleme kılavuzunu kullanarak temel sisteminizi güncelleyin . Sisteminiz güncellendikten sonra PostgreSQL'i kurmaya devam edin.
Python için paket yöneticisi olan Pip'i kurun.
sudo yum -y install epel-release
sudo yum -y install python-pip gcc python-devel git
sudo pip install --upgrade pip
Buildbot, MySQL, PostgreSQL ve SQLite gibi birden çok veritabanı sunucusunu destekler. Bu öğreticide, Buildbot veritabanı sunucusunu barındırmak için PostgreSQL kullanacağız.
PostgreSQL, kararlılığı ve hızı ile bilinen bir nesne-ilişkisel veritabanı sistemidir. Varsayılan yum
depo PostgreSQL'in eski bir sürümünü içerir, bu nedenle PostgreSQL deposunu ekleyin.
sudo yum -y install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-1.noarch.rpm
PostgreSQL veritabanı sunucusunu kurun.
sudo yum -y install postgresql10-server postgresql10-contrib postgresql10
Veritabanını başlatın.
sudo /usr/pgsql-10/bin/postgresql-10-setup initdb
PostgreSQL sunucusunu başlatın ve önyükleme zamanında otomatik olarak başlamasını sağlayın.
sudo systemctl start postgresql-10
sudo systemctl enable postgresql-10
Varsayılan PostgreSQL kullanıcısının parolasını değiştirin.
sudo passwd postgres
PostgreSQL kullanıcısı olarak oturum açın.
sudo su - postgres
Buildbot için yeni bir PostgreSQL kullanıcısı oluşturun.
createuser bb_user
İsterseniz, herhangi bir kullanıcı adı kullanabilirsiniz bb_user
. PostgreSQL psql
, veritabanında sorgu çalıştırmak için kabuk sağlar . PostgreSQL kabuğuna geçin.
psql
Yeni oluşturulan kullanıcı için bir şifre belirleyin.
ALTER USER bb_user WITH ENCRYPTED password 'DBPassword';
DBPassword
Güvenli bir parola ile değiştirin .
Buildbot yüklemesi için yeni bir veritabanı oluşturun.
CREATE DATABASE buildbot OWNER bb_user;
Kabuktan çıkın psql
.
\q
sudo
Kullanıcıya geçin .
exit
pg_hba.conf
MD5 tabanlı kimlik doğrulamayı etkinleştirmek için dosyayı düzenleyin.
sudo nano /var/lib/pgsql/10/data/pg_hba.conf
Aşağıdaki satırları bulun ve değerleri değiştirmek peer
ve ident
içinde METHOD
kolonuna trust
ve md5
sırasıyla.
# 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
Güncellendikten sonra, yapılandırma aşağıdaki metne benzer.
# 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
Dosyayı kaydedin ve editörden çıkın. Python için PostgreSQL veritabanı adaptörünü kurun.
sudo pip install psycopg2
Değişikliklerin etkili olabilmesi için PostgreSQL'i yeniden başlatın.
sudo systemctl restart postgresql-10
Pip kullanarak Buildbot'u kurun.
sudo pip install 'buildbot[bundle]' pyopenssl service_identity
Yukarıdaki komut ile birlikte BuildBot'ın kuracak buildbot-www
, buildbot-worker
ve birçok web gibi eklentileri buildbot-waterfall-view
.
Buildbot'un başarıyla yüklendiğinden emin olmak için Buildbot sürümünü kontrol ederek doğrulayabilirsiniz.
buildbot --version
Çıktı aşağıdaki metne benzemelidir.
[user@vultr ~]$ buildbot --version
Buildbot version: 0.9.15.post1
Twisted version: 17.9.0
Bağlantı noktasına izin vermek için güvenlik duvarı kurallarınızı değiştirin 8010
. Buildbot bu bağlantı noktasını web isteklerini dinlemek için kullanır.
sudo firewall-cmd --zone=public --add-port=8010/tcp --permanent
sudo firewall-cmd --reload
Buildbot ana ve çalışan işlemlerini çalıştırmak için ayrıcalıksız yeni bir kullanıcı oluşturun. Buildbot ana hizmetlerinin root
kullanıcı olarak çalıştırılması önerilmez .
sudo adduser buildbot
sudo passwd buildbot
Yeni oluşturulan buildbot
kullanıcı olarak oturum açın.
sudo su - buildbot
Buildbot master'ı /home/buildbot/master
dizinde kurun . Bu dizin her derlemenin yapılandırma, durum ve günlük dosyalarını içerecektir.
buildbot create-master --db 'postgresql://bb_user:DBPassword@localhost/buildbot' ~/master
Yukarıdaki komutta veritabanı kullanıcısının kimlik bilgilerini değiştirdiğinizden emin olun.
Not: PostgreSQL yerine SQLite veritabanı kullanmak istiyorsanız, --db 'postgresql://bb_user:DBpassword@localhost/buildbot'
seçeneği atlamanız yeterlidir . SQLite veritabanı aynı dizinde oluşturulur.
Yukarıdaki komut ~/master
, Buildmaster dosyalarını saklamak için bir dizin oluşturur . Ayrıca verileri PostgreSQL veritabanına yazacaktır. Aşağıdaki çıktıyı alacaksınız.
[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
Örnek yapılandırma dosyasını canlı bir yapılandırma dosyasına kopyalayın.
cp ~/master/master.cfg.sample ~/master/master.cfg
Yapılandırma dosyasını düzenleyin.
nano ~/master/master.cfg
Aşağıdaki satırları bulun.
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",
}
Yukarıdaki yapılandırma örnek bir çalışan için bir girişe sahiptir. Üzerinde çalışacağımız işçi için örnek girişi değiştireceğiz localhost
. Değişim example-worker
için uygun olan herhangi bir isme localhost
işçinin ve değişim pass
diğer bazı şifre. İşçi adını ve parolasını not edin, çünkü daha sonra eğitimde bunu gerektireceğiz. İnşaatçılar listesindeki işçinin adını değiştirin. Uygulamanın adını ve proje URL'sini ihtiyaçlarınıza göre değiştirin.
Buildbot URL'sini localhost
yerine gerçek alan adınız veya genel IP adresiniz olarak değiştirin. Ayrıca, yapılandırma dosyasındaki veritabanı bilgilerinin gerçek veritabanı kimlik bilgilerinizle eşleştiğini doğrulayın.
Dosyanın sonuna ekleyin c['buildbotNetUsageData'] = None
. Bu parametre, yazılım sürümü bilgilerini ve eklenti kullanım ayrıntılarını geliştiricilere göndermeyi devre dışı bırakır. Bununla birlikte, kullanım bilgilerinin gönderilmesini etkinleştirmek için seçeneği olarak değiştirin Full
.
Yapılandırma aşağıdaki metin gibi görünmelidir.
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
Dosyayı kaydedin ve editörden çıkın. Yapılandırma dosyasında hata olup olmadığını kontrol edin.
buildbot checkconfig ~/master
Yapılandırma dosyasında hata yoksa, aşağıdaki çıktıyı göreceksiniz.
[buildbot@vultr ~]$ buildbot checkconfig ~/master
Config file is good!
Artık her şey doğru yapılandırıldığına göre, Buildbot master'ı başlatabilirsiniz.
buildbot start ~/master
Aşağıdaki çıktıyı göreceksiniz.
[buildbot@vultr ~]$ buildbot start ~/master
Following twistd.log until startup finished..
The buildmaster appears to have (re)started correctly.
Buildbot yöneticisi doğru bir şekilde başladığına göre, web kullanıcı arayüzüne adresinden erişilebilir http://192.168.1.1:8010
. Aşağıdaki Buildbot arayüzünü görmelisiniz.
Çalışan yapılandırmasını zaten değiştirdiğimizden, ~/master/master.cfg
yeni bir çalışan oluşturmaya devam edebiliriz.
buildbot-worker create-worker ~/worker localhost localhost-worker Password123
~/master/master.cfg
Dosyada belirtilenle aynı işçi adını ve parolayı kullandığınızdan emin olun . Çalışan adı veya parolasında bir uyumsuzluk varsa, çalışan Buildbot yöneticisine bağlanamaz. Başarılı yürütme sonrasında aşağıdaki çıktıyı göreceksiniz.
[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
İşçiyle ilgili bilgiler /info
dizinde saklanır . Geliştirici hakkındaki yönetim bilgilerini düzenleyin.
nano ~/worker/info/admin
Örnek adı gerçek adınız ve e-postanızla değiştirin.
Your Name <[email protected]>
Şimdi, ana bilgisayar hakkında bilgi içeren dosyayı açın.
nano ~/worker/info/host
Örnek talimatı, anasistem hakkındaki gerçek bilgilerle değiştirin.
Localhost, CentOS 7
Çalışan yönetici ve ana bilgisayar bilgileri yalnızca kullanıcılara sistem hakkında bilgi vermek için kullanılır. Sistem hakkında Buildbot sürümü ve Twisted sürümü gibi ek bilgiler de ekleyebilirsiniz.
İşçiyi başlatın.
buildbot-worker start ~/worker
Çıktı aşağıdaki metin gibi görünecektir.
[buildbot@vultr ~]$ buildbot-worker start ~/worker
Following twistd.log until startup finished..
The buildbot-worker appears to have (re)started correctly.
İşçinin kayıtlı olup olmadığını kontrol etmek için Buildbot'un web arayüzüne gidin Builds >> Workers
ve soldaki gezinme bölmesinden gidin . İşçinin hazır ve inşa etmeye hazır olduğunu görmelisiniz.
Örnek bir yapı çalıştırmak için Buildbot çalışanının başarılı bir şekilde çalışıp çalışmadığını kontrol etmek için adresine gidin Builds >> Builders
. Tıklayın runtests
oluşturucu arayüzünü açıp tıklayın oluşturucu adı Force
Bir yapıyı zorlamak için düğmeye. Adınızı girin Start Build
ve oluşturma işlemini başlatmak için düğmeyi tıklayın. Buildbot ortamını kontrol etmek için bir örnek oluşturma testi olduğundan, birkaç saniye içinde tamamlanacaktır. Bir başarı mesajı ve derleme sonucu alırsınız.
Buildbot yöneticisi ve çalışanı yukarıdaki komutları kullanarak kolayca başlatılabilse de, Buildbot hizmetlerini çalıştırmak ve yönetmek için Systemd birimlerinin kullanılması önerilir. Bu, sistem yeniden başlatıldığında ve arızalarında otomatik olarak başlatılmalarını sağlayacaktır.
Not: geçin sudo
ya çalıştırarak tekrar kullanıcı exit
veya su <username>
. Artık tüm komutların sudo
kullanıcı tarafından yürütülmesi gerekiyor .
Çalışan Buildbot çalışanını ve ana hizmeti durdurun.
sudo su buildbot -c "buildbot stop /home/buildbot/master"
sudo su buildbot -c "buildbot-worker stop ~/worker"
Buildbot yöneticisi için yeni bir Systemd birim dosyası oluşturun.
sudo nano /etc/systemd/system/buildbot.service
Dosyayı doldurun.
[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 master'ı başlatın ve önyükleme zamanında otomatik olarak başlamasını sağlayın.
sudo systemctl start buildbot
sudo systemctl enable buildbot
Buildbot çalışanı için yeni bir Systemd birim dosyası oluşturun.
sudo nano /etc/systemd/system/buildbot-worker.service
Dosyayı doldurun.
[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 çalışanını başlatın ve önyükleme zamanında otomatik olarak başlamasını sağlayın.
sudo systemctl start buildbot-worker
sudo systemctl enable buildbot-worker
Hizmetlerin durumunu kontrol edebilirsiniz.
sudo systemctl status buildbot buildbot-worker
Hizmetler sorunsuz çalışıyorsa, bunu çıktıda göreceksiniz.
[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.
Varsayılan olarak, kimlik doğrulama Buildbot web arayüzünde etkin değildir. İnternet'e bakan siteler için, yalnızca yetkili kullanıcıların yönetim görevlerini yerine getirebilmesi için kimlik doğrulamasının ayarlanması önemle tavsiye edilir. Kimlik doğrulamasını ayarlamak için Buildbot ana yapılandırma dosyasını yeniden açın.
sudo su buildbot -c "nano /home/buildbot/master/master.cfg"
Aşağıdaki satırları dosyanın sonuna ekleyin.
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'})
Her iki tekrarını admin_user
da kullanmak istediğiniz gerçek kullanıcı adıyla ve AdminPassword
güçlü bir parola ile değiştirin.
Yapılandırma dosyasındaki hataları kontrol edin.
sudo su buildbot -c "buildbot checkconfig /home/buildbot/master"
Değişikliklerin etkili olabilmesi için Buildbot ana hizmetini yeniden başlatın.
sudo systemctl restart buildbot
Anonim kullanıcıların yalnızca yapı sunucusu ile ilgili temel bilgileri görebildiğini görmek için web arayüzüne tekrar göz atın. Şimdi, master.cfg
dosyada ayarlanan kimlik bilgilerini kullanarak oturum açın ve diğer tüm yönetim işlevlerinin yalnızca oturum açmış yönetici kullanıcı tarafından kullanılabildiğini göreceksiniz.
Varsayılan olarak, Buildbot 8010
güvenli olmayan bağlantılarda bağlantı noktasını dinler . HTTPS
Tarayıcıdan sunucuya aktarım sırasında verilerin güvenli olduğundan emin olmak için web arayüzünün güvenli hale getirilmesi önerilir. Eğiticinin bu bölümünde Nginx'i ücretsiz SSL sertifikalarını şifreleyeceğiz. Nginx web sunucusu, gelen istekleri Buildbot'un HTTP uç noktasına iletmek için ters proxy olarak çalışacaktır.
Nginx'i yükleyin.
sudo yum -y install nginx
Nginx'i başlatın ve önyükleme zamanında otomatik olarak başlamasını sağlayın.
sudo systemctl start nginx
sudo systemctl enable nginx
Let's Encrypt CA'nın istemci uygulaması olan Certbot'u yükleyin.
sudo yum -y install certbot
Eğer sertifika isteyebilir önce, bağlantı noktalarını izin gerekecek 80
ve 443
ya standart HTTP
ve HTTPS
güvenlik duvarı üzerinden hizmet. Ayrıca, 8010
güvenli olmayan bağlantıları dinleyen bağlantı noktasını kaldırın .
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
Not: Let's Encrypt CA'dan sertifika almak için, sertifikaların oluşturulacağı etki alanı sunucuya yönlendirilmelidir. Değilse, etki alanının DNS kayıtlarında gerekli değişiklikleri yapın ve sertifika isteğini yeniden yapmadan önce DNS'nin yayılmasını bekleyin. Certbot, sertifikaları vermeden önce etki alanı yetkilisini denetler.
SSL sertifikaları oluşturun.
sudo certbot certonly --webroot -w /usr/share/nginx/html -d ci.example.com
Oluşturulan sertifikaların /etc/letsencrypt/live/ci.example.com/
dizinde depolanması muhtemeldir . SSL sertifikası olarak fullchain.pem
ve özel anahtar olarak depolanacaktır privkey.pem
.
Sertifikaların şifrelenmesini 90 gün içinde sona erdirelim, bu nedenle Cron işlerini kullanarak sertifikaların otomatik olarak yenilenmesi önerilir.
root
Kullanıcı için cron iş dosyasını açın .
sudo crontab -e
Dosyanın sonuna aşağıdaki satırı ekleyin.
30 5 * * * /usr/bin/certbot renew --quiet
Yukarıdaki cron işi her gün 05: 30'da çalışacaktır. Sertifikanın süresinin dolması gerekiyorsa, sertifikaları otomatik olarak yeniler.
Şimdi, default_server
satırı çıkarmak için Nginx varsayılan yapılandırma dosyasını değiştirin .
sudo sed -i 's/default_server//g' /etc/nginx/nginx.conf
Buildbot web arayüzü için yeni bir yapılandırma dosyası oluşturun.
sudo nano /etc/nginx/conf.d/buildbot.conf
Dosyayı doldurun.
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;
}
}
Yeni yapılandırma dosyasındaki hataları kontrol edin.
sudo nginx -t
Aşağıdaki çıktıyı görürseniz yapılandırma hatasızdır.
[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
Bir tür hata aldıysanız, SSL sertifikalarının yolunu iki kez kontrol ettiğinizden emin olun. Yapılandırma değişikliğini uygulamak için Nginx web sunucusunu yeniden başlatın.
sudo systemctl restart nginx
Buildmaster yapılandırma dosyasını açın.
sudo su buildbot -c "nano /home/buildbot/master/master.cfg"
Aşağıdaki satırı bulun.
c['buildbotURL'] = "http://192.168.1.1:8010/"
URL'yi, kullandığınız alan adına göre değiştirin.
c['buildbotURL'] = "https://ci.example.com/"
Buildbot ana hizmetini yeniden başlatın.
sudo systemctl restart buildbot
Artık Buildbot kontrol paneline adresinden erişebilirsiniz https://ci.example.com
. Buildbot bağlantılarının artık SSL ile güvenli olduğunu göreceksiniz.
Yönetici kimlik bilgilerini kullanarak oturum açın ve uygulamanızı oluşturmaya başlamak için ilk kanalınızı ekleyin.
RabbitMQ, AMQP, STOMP ve diğer iletişim teknolojilerini destekleyen açık kaynaklı bir mesaj aracısıdır. Kurumsal uygulamalarda yaygın olarak kullanılan bir
Farklı Bir Sistem mi Kullanıyorsunuz? Pagekit PHP ile yazılmış açık kaynaklı bir CMSdir. Pagekit kaynak kodu GitHubda herkese açık olarak barındırılıyor. Bu kılavuz size
Çok Güvenli FTP arka plan programı, ya da sadece vsFTPd, özelleştirme yeteneği olan hafif bir yazılım parçasıdır. Bu derste bir müttefikimiz olacak
Belirli durumlarda, Sistem Yöneticisinin bir kullanıcı hesabı oluşturması ve yalnızca kendi dosyalarını sFTP yoluyla yönetmek için erişimini kısıtlaması gerekebilir, ancak b
Bu makalede, ModSecurity tarafından korunan bir LEMP yığını oluşturmayı açıklayacağım. ModSecurity faydalı bir açık kaynaklı web uygulaması güvenlik duvarıdır.
Giriş LAMP, Linux, Apache, MySQL ve PHPnin kısaltmasıdır. Bu yazılım yığını, kurulum için en popüler açık kaynaklı çözümdür.
Farklı Bir Sistem mi Kullanıyorsunuz? Chamilo, çevrimiçi eğitim ve takım işbirliği için yaygın olarak kullanılan ücretsiz ve açık kaynaklı bir öğrenme yönetim sistemidir (LMS).
Eskiden OpenERP olarak bilinen Odoo, iyi bilinen bir açık kaynaklı ERP iş platformudur. Her büyüklükteki işletme, bol miktarda lis sayesinde Odoodan yararlanabilir
Icinga2 güçlü bir izleme sistemidir ve bir ana istemci modelinde kullanıldığında, NRPE tabanlı izleme kontrollerine olan ihtiyacın yerini alabilir. Master-Clien
Farklı Bir Sistem mi Kullanıyorsunuz? Couch CMS, web tasarımcılarının tasarlamalarını sağlayan basit ve esnek, ücretsiz ve açık kaynaklı bir İçerik Yönetim Sistemidir (CMS)
Farklı Bir Sistem mi Kullanıyorsunuz? Netdata, gerçek zamanlı sistem ölçümleri izleme alanında yükselen bir yıldızdır. Aynı türdeki diğer araçlarla karşılaştırıldığında, Netdata:
Farklı Bir Sistem mi Kullanıyorsunuz? ERP veya Kurumsal Kaynak Planlaması, temel iş süreçlerini yönetmek için kullanılan bir kurumsal uygulama paketidir. ERPNext ücretsizdir
Başka bir Vultr eğitimine hoş geldiniz. Burada, bir SAMP sunucusunun nasıl kurulacağını ve çalıştırılacağını öğreneceksiniz. Bu kılavuz CentOS 6 için yazılmıştır. Önkoşullar
Genel Bakış Bu makale, bir Kubernetes kümesini hemen kurup kubeadm ile çalıştırmanıza yardımcı olmak içindir. Bu kılavuz iki sunucuyu
Farklı Bir Sistem mi Kullanıyorsunuz? Giriş Sails.js, Ruby on Railse benzer şekilde Node.js için bir MVC çerçevesidir. Modern uygulamalar geliştirmek için yapar
Bu eğitimde, CentOS 6 Sistemine Half Life 2 oyun sunucusu kurma süreci ele alınacaktır. 1. Adım: Önkoşulları kurma
PrestaShop popüler bir açık kaynaklı e-ticaret çözümüdür. Kendi çevrimiçi mağazanızı ücretsiz oluşturmak için kullanabilirsiniz. Bu eğitimde, size
Farklı Bir Sistem mi Kullanıyorsunuz? MODX Revolution hızlı, esnek, ölçeklenebilir, ücretsiz ve açık kaynaklı, kurumsal düzeyde bir İçerik Yönetim Sistemi (CMS)
Giriş Linux sistemleri, süreçleri ve disk alanını izlemeye yardımcı olan varsayılan olarak top, df ve du gibi izleme araçlarıyla birlikte gelir. Çoğu zaman, onlar ar
Farklı Bir Sistem mi Kullanıyorsunuz? Kolab Groupware, ücretsiz ve açık kaynaklı bir web tabanlı grup yazılımı uygulamasıdır. Özellikleri e-posta iletişiminden, olaylardan oluşur
26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm
Birçoğunuz Switch'in Mart 2017'de çıkacağını ve yeni özelliklerini biliyorsunuz. Bilmeyenler için, 'Switch'i 'olmazsa olmaz bir gadget' yapan özelliklerin bir listesini hazırladık.
Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.
Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.
Yapay Zekanın küçük ölçekli şirketler arasında nasıl popüler hale geldiğini ve onları büyütme ve rakiplerine üstünlük sağlama olasılıklarını nasıl artırdığını öğrenmek için bunu okuyun.
CAPTCHA, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek mi?
Bilim hızla gelişip birçok çabamızı üstlendikçe, kendimizi açıklanamaz bir Tekilliğe maruz bırakmanın riskleri de artıyor. Okuyun, tekillik bizim için ne anlama gelebilir.
Teletıp, uzaktan sağlık hizmetleri ve gelecek nesiller üzerindeki etkisi nedir? Pandemi durumunda iyi bir yer mi değil mi? Bir görünüm bulmak için blogu okuyun!
Bilgisayar korsanlarının çok para kazandığını duymuş olabilirsiniz, ancak bu kadar parayı nasıl kazandıklarını hiç merak ettiniz mi? Hadi tartışalım.
Son zamanlarda Apple, sorunları gidermek için macOS Catalina 10.15.4'ü ek bir güncelleme yayınladı, ancak güncelleme, mac makinelerinde tuğla oluşmasına neden olan daha fazla soruna neden oluyor gibi görünüyor. Daha fazla bilgi edinmek için bu makaleyi okuyun