Cara Memasang dan Mengkonfigurasi Buildbot pada CentOS 7

Buildbot adalah sumber terbuka, berbasis Python, alat integrasi berkesinambungan untuk mengotomatiskan pembuatan, pengujian, dan penyebaran perangkat lunak. Buildbot terdiri dari satu atau lebih master Buildbot dan sejumlah pekerja. Buildbot master atau Buildmaster memiliki perintah utama dari sistem. Bertanggung jawab untuk mengelola lingkungan binaan, pekerja dan membuat semua keputusan tentang mengirimkan pekerjaan kepada pekerja. Buildmaster mendeteksi perubahan dalam repositori kode dan mengirimkan perintah atau pekerjaan kepada pekerja untuk dieksekusi. Pekerja menjalankan pekerjaan dan mengembalikan hasilnya ke Buildmaster. Buildmaster kemudian memberi tahu pengembang melalui beberapa saluran yang didukung. Dalam tutorial ini, kita akan menginstal Buildbot master dan pekerja di CentOS 7. Kami juga akan mengkonfigurasi otentikasi dan Nginx sebagai proxy terbalik yang aman.

Prasyarat

  • Contoh server Vultr CentOS 7 dengan setidaknya 1GB RAM.
  • Seorang pengguna sudo .
  • Nama domain terdaftar menunjuk ke arah server.

Untuk tutorial ini, kita akan menggunakan 192.168.1.1sebagai alamat IP publik dan ci.example.comsebagai nama domain yang menunjuk ke instance Vultr. Pastikan untuk mengganti semua kemunculan contoh nama domain dan alamat IP dengan yang sebenarnya.

Perbarui sistem basis Anda menggunakan panduan Cara Memperbarui CentOS 7 . Setelah sistem Anda diperbarui, lanjutkan untuk menginstal PostgreSQL.

Instal Ketergantungan Python

Instal Pip, yang merupakan manajer paket untuk Python.

sudo yum -y install epel-release
sudo yum -y install python-pip gcc python-devel git
sudo pip install --upgrade pip

Instal PostgreSQL

Buildbot mendukung berbagai jenis server basis data seperti MySQL, PostgreSQL, dan SQLite. Dalam tutorial ini, kita akan menggunakan PostgreSQL untuk meng-host server database Buildbot.

PostgreSQL adalah sistem basis data objek-relasional, yang dikenal karena stabilitas dan kecepatannya. yumRepositori default berisi PostgreSQL versi lama, jadi tambahkan repositori PostgreSQL.

sudo yum -y install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-1.noarch.rpm

Instal server database PostgreSQL.

sudo yum -y install postgresql10-server postgresql10-contrib postgresql10 

Inisialisasi basis data.

sudo /usr/pgsql-10/bin/postgresql-10-setup initdb

Mulai server PostgreSQL dan aktifkan untuk memulai secara otomatis saat boot.

sudo systemctl start postgresql-10
sudo systemctl enable postgresql-10

Ubah kata sandi untuk pengguna PostgreSQL default.

sudo passwd postgres

Masuk sebagai pengguna PostgreSQL.

sudo su - postgres

Buat pengguna PostgreSQL baru untuk Buildbot.

createuser bb_user

Anda dapat menggunakan nama pengguna apa saja sebagai ganti bb_user, jika Anda mau. PostgreSQL menyediakan psqlshell untuk menjalankan query pada database. Beralih ke shell PostgreSQL.

psql

Tetapkan kata sandi untuk pengguna yang baru dibuat.

ALTER USER bb_user WITH ENCRYPTED password 'DBPassword';

Ganti DBPassworddengan kata sandi aman.

Buat database baru untuk instalasi Buildbot.

CREATE DATABASE buildbot OWNER bb_user;

Keluar dari psqlshell.

\q

Beralih ke sudopengguna.

exit

Edit pg_hba.conffile untuk mengaktifkan otentikasi berbasis MD5.

sudo nano /var/lib/pgsql/10/data/pg_hba.conf

Temukan baris berikut dan ubah nilainya peerdan ident, di METHODkolom, ke trustdan md5, masing-masing.

# 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

Setelah diperbarui, konfigurasi akan terlihat seperti teks berikut.

# 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

Simpan file dan keluar dari editor. Instal adaptor database PostgreSQL untuk Python.

sudo pip install psycopg2

Mulai ulang PostgreSQL agar perubahan dapat diterapkan.

sudo systemctl restart postgresql-10

Instal Buildbot

Instal Buildbot menggunakan Pip.

sudo pip install 'buildbot[bundle]' pyopenssl service_identity

Perintah di atas akan menginstal Buildbot bersama dengan buildbot-www, buildbot-worker, dan beberapa web plugin seperti buildbot-waterfall-view.

Untuk memastikan bahwa Buildbot telah berhasil diinstal, Anda dapat memverifikasi dengan memeriksa versi Buildbot.

buildbot --version

Outputnya harus menyerupai teks berikut.

[user@vultr ~]$ buildbot --version
Buildbot version: 0.9.15.post1
Twisted version: 17.9.0

Ubah aturan firewall Anda untuk mengizinkan port 8010. Buildbot menggunakan port ini untuk mendengarkan permintaan web.

sudo firewall-cmd --zone=public --add-port=8010/tcp --permanent
sudo firewall-cmd --reload

Konfigurasikan Buildbot Master

Buat pengguna yang tidak memiliki hak baru untuk menjalankan proses master dan pekerja Buildbot. Tidak disarankan untuk menjalankan layanan master Buildbot sebagai rootpengguna.

sudo adduser buildbot
sudo passwd buildbot

Masuk sebagai pengguna yang baru dibuat buildbot.

sudo su - buildbot

Siapkan master Buildbot di /home/buildbot/masterdirektori. Direktori ini akan berisi konfigurasi, status, dan file log dari setiap build.

buildbot create-master --db 'postgresql://bb_user:DBPassword@localhost/buildbot' ~/master

Pastikan untuk mengganti kredensial pengguna basis data pada perintah di atas.

Catatan: Jika Anda ingin menggunakan database SQLite alih-alih PostgreSQL, cukup hapus --db 'postgresql://bb_user:DBpassword@localhost/buildbot'opsi. Basis data SQLite akan dibuat di direktori yang sama.

Perintah di atas akan membuat ~/masterdirektori untuk menyimpan file Buildmaster. Itu juga akan menulis data ke dalam database PostgreSQL. Anda akan mendapatkan output berikut.

[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

Salin file konfigurasi sampel ke file konfigurasi langsung.

cp ~/master/master.cfg.sample ~/master/master.cfg

Edit file konfigurasi.

nano ~/master/master.cfg

Temukan baris berikut.

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",
}

Konfigurasi di atas memiliki entri untuk pekerja sampel. Kami akan memodifikasi entri sampel untuk pekerja yang akan kami jalankan localhost. Ubah example-workerke nama yang sesuai untuk localhostpekerja dan ubah passke kata sandi lain. Catat nama pekerja dan kata sandi karena kami akan membutuhkannya nanti dalam tutorial. Ubah nama pekerja dalam daftar pembangun. Ubah nama aplikasi dan URL proyek sesuai dengan kebutuhan Anda.

Ubah URL Buildbot dari localhostmenjadi nama domain Anda yang sebenarnya atau alamat IP publik. Juga, verifikasi bahwa informasi database dalam file konfigurasi cocok dengan kredensial database Anda yang sebenarnya.

Di akhir file, tambahkan c['buildbotNetUsageData'] = None. Parameter ini akan menonaktifkan pengiriman informasi versi perangkat lunak dan rincian penggunaan plugin ke pengembang. Namun, untuk mengaktifkan pengiriman informasi penggunaan, ubah opsi menjadi Full.

Konfigurasi akan terlihat seperti teks berikut.

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

Simpan file dan keluar dari editor. Periksa file konfigurasi untuk kesalahan.

buildbot checkconfig ~/master

Jika file konfigurasi tidak memiliki kesalahan, Anda akan melihat output berikut.

[buildbot@vultr ~]$ buildbot checkconfig ~/master
Config file is good!

Sekarang semuanya sudah terkonfigurasi dengan benar, Anda dapat memulai master Buildbot.

buildbot start ~/master

Anda akan melihat output berikut.

[buildbot@vultr ~]$ buildbot start ~/master
Following twistd.log until startup finished..
The buildmaster appears to have (re)started correctly.

Sekarang setelah master Buildbot mulai dengan benar, antarmuka pengguna web dapat diakses di http://192.168.1.1:8010. Anda harus melihat antarmuka Buildbot berikut.

Cara Memasang dan Mengkonfigurasi Buildbot pada CentOS 7

Konfigurasikan Pekerja Buildbot

Karena kami telah memodifikasi konfigurasi pekerja di ~/master/master.cfg, kami dapat melanjutkan untuk membuat pekerja baru.

buildbot-worker create-worker ~/worker localhost localhost-worker Password123

Pastikan Anda menggunakan nama dan kata sandi pekerja yang sama persis seperti yang disebutkan dalam ~/master/master.cfgfile. Jika ada ketidakcocokan dalam nama pekerja atau kata sandi, pekerja itu tidak akan dapat terhubung ke master Buildbot. Anda akan melihat output berikut setelah eksekusi berhasil.

[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

Informasi tentang pekerja disimpan di /infodirektori. Edit informasi administrasi tentang pengembang.

nano ~/worker/info/admin

Ganti nama contoh dengan nama dan email Anda yang sebenarnya.

Your Name <[email protected]>

Sekarang, buka file yang berisi informasi tentang host.

nano ~/worker/info/host

Ganti instruksi contoh dengan informasi aktual tentang sistem host.

Localhost, CentOS 7

Admin pekerja dan informasi host hanya digunakan untuk memberi tahu pengguna tentang sistem. Anda juga dapat menambahkan informasi tambahan tentang sistem seperti versi Buildbot dan versi Twisted.

Mulai pekerja.

buildbot-worker start ~/worker

Outputnya akan terlihat seperti teks berikut.

[buildbot@vultr ~]$ buildbot-worker start ~/worker
Following twistd.log until startup finished..
The buildbot-worker appears to have (re)started correctly.

Untuk memeriksa apakah pekerja terdaftar, pergilah ke antarmuka web Buildbot dan navigasikan ke Builds >> Workersdari navigasi kiri. Anda harus melihat bahwa pekerja sudah bangun dan siap membangun.

Cara Memasang dan Mengkonfigurasi Buildbot pada CentOS 7

Untuk menjalankan sampel build, untuk memeriksa apakah pekerja Buildbot berjalan dengan sukses, navigasikan ke Builds >> Builders. Klik pada runtestsnama builder untuk membuka antarmuka builder dan klik Forcetombol untuk memaksa build. Masukkan nama Anda dan klik Start Buildtombol untuk memulai pembuatan. Karena ini adalah tes build sampel untuk memeriksa lingkungan Buildbot, itu akan selesai dalam beberapa detik. Anda akan mendapatkan pesan sukses dan hasil build.

Cara Memasang dan Mengkonfigurasi Buildbot pada CentOS 7

Menyiapkan Layanan Systemd

Meskipun master dan pekerja Buildbot dapat dengan mudah mulai menggunakan perintah di atas, disarankan untuk menggunakan unit Systemd untuk menjalankan dan mengelola layanan Buildbot. Ini akan memastikan bahwa mereka secara otomatis dimulai pada restart dan kegagalan sistem.

Catatan: Beralih ke sudopengguna lagi dengan menjalankan salah satu exitatau su <username>. Mulai sekarang semua perintah harus dijalankan oleh sudopengguna.

Hentikan pekerja Buildbot dan layanan master yang sedang berjalan.

sudo su buildbot -c "buildbot stop /home/buildbot/master" 
sudo su buildbot -c "buildbot-worker stop ~/worker"

Buat file unit Systemd baru untuk master Buildbot.

sudo nano /etc/systemd/system/buildbot.service

Mengisi file.

[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

Mulai master Buildbot dan aktifkan untuk mulai secara otomatis saat boot.

sudo systemctl start buildbot
sudo systemctl enable buildbot

Buat file unit Systemd baru untuk pekerja Buildbot.

sudo nano /etc/systemd/system/buildbot-worker.service

Mengisi file.

[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

Mulai pekerja Buildbot dan aktifkan untuk mulai secara otomatis saat boot.

sudo systemctl start buildbot-worker
sudo systemctl enable buildbot-worker

Anda dapat memeriksa status layanan.

sudo systemctl status buildbot buildbot-worker

Jika layanan berjalan dengan lancar, Anda akan melihatnya di output.

[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.

Mengaktifkan Otentikasi

Secara default, otentikasi tidak diaktifkan di antarmuka web Buildbot. Untuk situs yang menghadapi internet, sangat disarankan untuk mengatur otentikasi sehingga hanya pengguna yang berwenang yang dapat memiliki kemampuan untuk melakukan tugas administratif. Untuk mengatur otentikasi, buka kembali file konfigurasi master Buildbot.

sudo su buildbot -c "nano /home/buildbot/master/master.cfg"

Tambahkan baris berikut ke akhir file.

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'})

Ganti kedua kemunculan admin_userdengan nama pengguna sebenarnya yang ingin Anda gunakan dan AdminPassworddengan kata sandi yang kuat.

Periksa kesalahan dalam file konfigurasi.

sudo su buildbot -c "buildbot checkconfig /home/buildbot/master"

Mulai ulang layanan master Buildbot agar perubahan dapat diterapkan.

sudo systemctl restart buildbot

Jelajahi antarmuka web lagi untuk melihat bahwa pengguna anonim hanya dapat melihat detail dasar tentang server build. Sekarang, masuk menggunakan kredensial yang diatur dalam master.cfgfile dan Anda akan melihat bahwa semua fungsi administratif lainnya hanya tersedia untuk pengguna admin yang masuk.

Mengamankan Buildbot dengan Let's Encrypt SSL

Secara default, Buildbot mendengarkan port 8010pada koneksi yang tidak aman. Mengamankan antarmuka web dengan HTTPSdianjurkan untuk memastikan bahwa data aman selama transportasi dari browser ke server. Di bagian tutorial ini, kami akan menginstal dan mengamankan Nginx dengan Let's Encrypt sertifikat SSL gratis. Server web Nginx akan berfungsi sebagai proxy terbalik untuk meneruskan permintaan masuk ke titik akhir HTTP Buildbot.

Instal Nginx.

sudo yum -y install nginx

Mulai Nginx dan aktifkan untuk mulai secara otomatis saat boot.

sudo systemctl start nginx
sudo systemctl enable nginx

Instal Certbot, yang merupakan aplikasi klien untuk Let's Encrypt CA.

sudo yum -y install certbot

Sebelum Anda dapat meminta sertifikat, Anda harus mengizinkan port 80dan 443atau standar HTTPdan HTTPSlayanan melalui firewall. Juga, hapus port 8010, yang mendengarkan koneksi yang tidak aman.

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

Catatan: Untuk mendapatkan sertifikat dari Let's Encrypt CA, domain tempat sertifikat akan dibuat harus diarahkan ke server. Jika tidak, buat perubahan yang diperlukan pada catatan DNS domain dan tunggu hingga DNS menyebar sebelum membuat permintaan sertifikat lagi. Certbot memeriksa otoritas domain sebelum memberikan sertifikat.

Buat sertifikat SSL.

sudo certbot certonly --webroot -w /usr/share/nginx/html -d ci.example.com

Sertifikat yang dihasilkan cenderung disimpan di /etc/letsencrypt/live/ci.example.com/direktori. Sertifikat SSL akan disimpan sebagai fullchain.pemdan kunci pribadi akan disimpan sebagai privkey.pem.

Mari Enkripsi sertifikat kedaluwarsa dalam 90 hari, oleh karena itu disarankan untuk mengatur perpanjangan otomatis sertifikat menggunakan pekerjaan Cron.

Buka file tugas cron untuk rootpengguna.

sudo crontab -e

Tambahkan baris berikut di akhir file.

30 5 * * * /usr/bin/certbot renew --quiet

Pekerjaan cron di atas akan berjalan setiap hari pada pukul 5:30 pagi. Jika sertifikat jatuh tempo, sertifikat akan diperpanjang secara otomatis.

Sekarang, ubah file konfigurasi default Nginx untuk menghapusnya default_server.

sudo sed -i 's/default_server//g' /etc/nginx/nginx.conf

Buat file konfigurasi baru untuk antarmuka web Buildbot.

sudo nano /etc/nginx/conf.d/buildbot.conf

Mengisi file.

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;
    }
}

Periksa kesalahan dalam file konfigurasi baru.

sudo nginx -t

Jika Anda melihat output berikut, konfigurasinya bebas kesalahan.

[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

Jika Anda telah menerima beberapa jenis kesalahan, pastikan untuk memeriksa jalur untuk sertifikat SSL. Mulai ulang server web Nginx untuk mengimplementasikan perubahan konfigurasi.

sudo systemctl restart nginx

Buka file konfigurasi Buildmaster.

sudo su buildbot -c "nano /home/buildbot/master/master.cfg"

Temukan baris berikut.

c['buildbotURL'] = "http://192.168.1.1:8010/"

Ubah URL sesuai dengan nama domain yang Anda gunakan.

c['buildbotURL'] = "https://ci.example.com/"

Mulai ulang layanan master Buildbot.

sudo systemctl restart buildbot

Sekarang Anda dapat mengakses dasbor Buildbot di https://ci.example.com. Anda akan melihat bahwa koneksi ke Buildbot sekarang diamankan dengan SSL.

Cara Memasang dan Mengkonfigurasi Buildbot pada CentOS 7

Masuk menggunakan kredensial administrator dan tambahkan pipeline pertama Anda untuk mulai membangun aplikasi Anda.



Leave a Comment

Cara Memasang Graylog Server pada CentOS 7

Cara Memasang Graylog Server pada CentOS 7

Menggunakan Sistem yang Berbeda? Graylog server adalah perangkat lunak manajemen log sumber terbuka siap pakai perusahaan. Ia mengumpulkan log dari berbagai sumber dan menganalisis

Atur Akun Pengguna khusus SFTP di CentOS 7

Atur Akun Pengguna khusus SFTP di CentOS 7

Pada kesempatan tertentu, Administrator Sistem mungkin perlu membuat akun pengguna dan membatasi akses mereka untuk hanya mengelola file mereka sendiri melalui sFTP, tetapi tidak

Cara Memasang Chamilo 1.11.8 pada CentOS 7

Cara Memasang Chamilo 1.11.8 pada CentOS 7

Menggunakan Sistem yang Berbeda? Chamilo adalah sistem manajemen pembelajaran (LMS) gratis dan open source yang banyak digunakan untuk pendidikan online dan kolaborasi tim

Menginstal Komunitas Odoo 9 di CentOS 7

Menginstal Komunitas Odoo 9 di CentOS 7

Odoo, sebelumnya dikenal sebagai OpenERP, adalah platform bisnis ERP open source yang terkenal. Perusahaan dengan ukuran berapa pun dapat mengambil manfaat dari Odoo, berkat lisnya yang berlimpah

Cara Memasang CMS CMS 2.0 pada CentOS 7 LAMP VPS

Cara Memasang CMS CMS 2.0 pada CentOS 7 LAMP VPS

Menggunakan Sistem yang Berbeda? Couch CMS adalah Content Management System (CMS) sederhana dan fleksibel, gratis dan open source yang memungkinkan desainer web untuk mendesain

Cara Memasang NextCloud 9 pada CentOS 7

Cara Memasang NextCloud 9 pada CentOS 7

NextCloud, seperti namanya, adalah alternatif yang menjanjikan dari solusi hosting file sumber terbuka lainnya OwnCloud. Dalam artikel ini, saya akan menunjukkan kepada Anda ho

Menginstal Netdata di CentOS 7

Menginstal Netdata di CentOS 7

Menggunakan Sistem yang Berbeda? Netdata adalah bintang yang naik di bidang pemantauan metrik sistem waktu-nyata. Dibandingkan dengan alat lain dengan jenis yang sama, Netdata:

Cara Menginstal ERPNext Open Source ERP pada CentOS 7

Cara Menginstal ERPNext Open Source ERP pada CentOS 7

Menggunakan Sistem yang Berbeda? ERP atau Enterprise Resource Planning adalah rangkaian aplikasi perusahaan yang digunakan untuk mengelola proses bisnis inti. ERPNext adalah gratis

Menyiapkan SA-MP San Andreas Multiplayer Server pada CentOS 6

Menyiapkan SA-MP San Andreas Multiplayer Server pada CentOS 6

Selamat datang di tutorial Vultr lainnya. Di sini, Anda akan belajar cara menginstal dan menjalankan server SAMP. Panduan ini ditulis untuk CentOS 6. Prasyarat Anda akan tahu

Instal Elgg pada CentOS 7

Instal Elgg pada CentOS 7

Menggunakan Sistem yang Berbeda? Elgg adalah mesin jejaring sosial open source yang memungkinkan penciptaan lingkungan sosial seperti jejaring sosial kampus

Menginstal Bolt CMS pada CentOS 7

Menginstal Bolt CMS pada CentOS 7

Bolt adalah CMS open source yang ditulis dalam PHP. Kode sumber baut di-host di GitHub. Panduan ini akan menunjukkan kepada Anda cara menginstal Bolt CMS pada CentOS 7 Vult yang baru

Cara Memasang Bugzilla 5.0.x di CentOS 7

Cara Memasang Bugzilla 5.0.x di CentOS 7

Bugzilla adalah sistem pelacakan bug sumber bebas dan terbuka yang banyak digunakan oleh berbagai vendor untuk terus meningkatkan softwar mereka

Menyebarkan Kubernet Dengan Kubeadm di CentOS 7

Menyebarkan Kubernet Dengan Kubeadm di CentOS 7

Ikhtisar Artikel ini dimaksudkan untuk membantu Anda mendapatkan kluster Kubernet dan menjalankan dengan kubeadm dalam waktu singkat. Panduan ini akan menggunakan dua server, pada

Setup Sails.js untuk Pengembangan pada CentOS 7

Setup Sails.js untuk Pengembangan pada CentOS 7

Menggunakan Sistem yang Berbeda? Pendahuluan Sails.js adalah kerangka kerja MVC untuk Node.js, mirip dengan Ruby on Rails. Itu membuat untuk mengembangkan aplikasi modern ver

Menyiapkan Server Half Life 2 Pada CentOS 6

Menyiapkan Server Half Life 2 Pada CentOS 6

Tutorial ini akan membahas proses pemasangan server game Half Life 2 pada Sistem CentOS 6. Langkah 1: Menginstal prasyarat Untuk mengatur ou

Alat Pemantauan Yang Lebih Baik Untuk Ubuntu Dan CentOS

Alat Pemantauan Yang Lebih Baik Untuk Ubuntu Dan CentOS

Pendahuluan Sistem Linux dilengkapi dengan alat pemantauan secara default seperti top, df, dan du yang membantu memonitor proses dan ruang disk. Namun sering kali, mereka ar

Cara Memasang Kolab Groupware di CentOS 7

Cara Memasang Kolab Groupware di CentOS 7

Menggunakan Sistem yang Berbeda? Kolab Groupware adalah aplikasi groupware berbasis web gratis dan open source. Fitur-fiturnya terdiri dari komunikasi email, acara

Cara Memasang Koel di CentOS 7

Cara Memasang Koel di CentOS 7

Menggunakan Sistem yang Berbeda? Koel adalah aplikasi streaming audio pribadi sederhana berbasis web yang ditulis dalam Vue di sisi klien dan Laravel di sisi server. Koe

Cara Memasang GDB pada CentOS 6

Cara Memasang GDB pada CentOS 6

GDB adalah debugger untuk C, C ++, Objective-C, Pascal, Fortran, Go, D, OpenCL C, Ada, dan Modula-2. CentOS didasarkan pada RHEL (Red Hat Enterprise Linux). Salah satu th

Menginstal Akaunting di CentOS 7

Menginstal Akaunting di CentOS 7

Menggunakan Sistem yang Berbeda? Akaunting adalah perangkat lunak akuntansi sumber terbuka dan gratis yang dirancang untuk usaha kecil dan freelancer. Itu dibangun kecerdasan

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

6 Hal yang Sangat Menggila dari Nintendo Switch

6 Hal yang Sangat Menggila dari Nintendo Switch

Banyak dari Anda tahu Switch keluar pada Maret 2017 dan fitur-fitur barunya. Bagi yang belum tahu, kami sudah menyiapkan daftar fitur yang membuat 'Switch' menjadi 'gadget yang wajib dimiliki'.

Janji Teknologi Yang Masih Belum Ditepati

Janji Teknologi Yang Masih Belum Ditepati

Apakah Anda menunggu raksasa teknologi untuk memenuhi janji mereka? periksa apa yang belum terkirim.

Fungsionalitas Lapisan Arsitektur Referensi Big Data

Fungsionalitas Lapisan Arsitektur Referensi Big Data

Baca blog untuk mengetahui berbagai lapisan dalam Arsitektur Big Data dan fungsinya dengan cara yang paling sederhana.

Bagaimana AI Dapat Membawa Otomatisasi Proses ke Tingkat Selanjutnya?

Bagaimana AI Dapat Membawa Otomatisasi Proses ke Tingkat Selanjutnya?

Baca ini untuk mengetahui bagaimana Kecerdasan Buatan menjadi populer di antara perusahaan skala kecil dan bagaimana hal itu meningkatkan kemungkinan untuk membuat mereka tumbuh dan memberi keunggulan pada pesaing mereka.

CAPTCHA: Berapa Lama Itu Bisa Tetap Menjadi Teknik yang Layak Untuk Perbedaan Human-AI?

CAPTCHA: Berapa Lama Itu Bisa Tetap Menjadi Teknik yang Layak Untuk Perbedaan Human-AI?

CAPTCHA telah berkembang cukup sulit bagi pengguna untuk dipecahkan dalam beberapa tahun terakhir. Apakah itu akan tetap efektif dalam deteksi spam dan bot di masa mendatang?

Singularitas Teknologi: Masa Depan Peradaban Manusia yang Jauh?

Singularitas Teknologi: Masa Depan Peradaban Manusia yang Jauh?

Saat Sains Berkembang dengan kecepatan tinggi, mengambil alih banyak upaya kita, risiko menundukkan diri kita pada Singularitas yang tidak dapat dijelaskan juga meningkat. Baca, apa arti singularitas bagi kita.

Telemedicine Dan Perawatan Kesehatan Jarak Jauh: Masa Depan Ada Di Sini

Telemedicine Dan Perawatan Kesehatan Jarak Jauh: Masa Depan Ada Di Sini

Apa itu telemedicine, perawatan kesehatan jarak jauh dan dampaknya terhadap generasi mendatang? Apakah itu tempat yang bagus atau tidak dalam situasi pandemi? Baca blog untuk menemukan tampilan!

Pernahkah Anda Bertanya-tanya Bagaimana Hacker Menghasilkan Uang?

Pernahkah Anda Bertanya-tanya Bagaimana Hacker Menghasilkan Uang?

Anda mungkin pernah mendengar bahwa peretas menghasilkan banyak uang, tetapi pernahkah Anda bertanya-tanya bagaimana cara mereka mendapatkan uang sebanyak itu? mari berdiskusi.

Pembaruan Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Masalah Daripada Menyelesaikan

Pembaruan Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Masalah Daripada Menyelesaikan

Baru-baru ini Apple merilis macOS Catalina 10.15.4 pembaruan suplemen untuk memperbaiki masalah tetapi tampaknya pembaruan menyebabkan lebih banyak masalah yang mengarah ke bricking mesin mac. Baca artikel ini untuk mempelajari lebih lanjut