Cara Memasang dan Mengkonfigurasi Concourse CI di CentOS 7

pengantar

Continuous Integration adalah praktik pengembangan perangkat lunak DevOps yang memungkinkan pengembang untuk sering menggabungkan kode yang diubah ke dalam repositori bersama beberapa kali sehari. Setelah setiap penggabungan, build otomatis dan pengujian dilakukan untuk mendeteksi masalah dalam kode. Ini memungkinkan pengembang untuk menemukan dan menyelesaikan kesalahan dengan cepat untuk meningkatkan kualitas perangkat lunak dan menyediakan pengiriman perangkat lunak secara terus menerus. Beralih ke sana kemari dari Concourse sangat mudah karena menyimpan semua konfigurasinya dalam file deklaratif yang dapat diperiksa ke dalam kontrol versi. Ini juga menyediakan antarmuka pengguna web yang menampilkan informasi bangunan secara interaktif.

Komponen Concourse.
  • ATC adalah komponen utama dari Concourse. Ini bertanggung jawab untuk menjalankan Web UI dan API. Ini juga menangani semua penjadwalan pipa.
  • TSA adalah server SSH yang dibuat khusus. Ini bertanggung jawab untuk mendaftarkan seorang pekerja dengan aman ke ATC.
  • Pekerja selanjutnya menjalankan dua layanan yang berbeda:
    1. Taman adalah runtime wadah dan antarmuka untuk mengatur wadah dari jarak jauh pada pekerja.
    2. Baggageclaim adalah server manajemen cache dan artefak.
  • Fly adalah antarmuka baris perintah yang digunakan untuk berinteraksi dengan ATC untuk mengkonfigurasi Pipa Concourse.

Prasyarat

Pastikan untuk mengganti semua kemunculan 192.0.2.1dan ci.example.comdengan alamat IP publik Vultr Anda yang sebenarnya dan nama domain yang sebenarnya.

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

Instal dan Konfigurasi Basis Data PostgreSQL

PostgreSQL adalah sistem database relasional objek. Concourse menyimpan data salurannya ke dalam database PostgreSQL. Tambahkan repositori PostgreSQL.

sudo rpm -Uvh https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm

Instal server database PostgreSQL.

sudo yum -y install postgresql96-server postgresql96-contrib

Inisialisasi basis data.

sudo /usr/pgsql-9.6/bin/postgresql96-setup initdb

initdbmembuat cluster database PostgreSQL baru, yang merupakan kumpulan dari database yang dikelola oleh satu server contoh. Edit pg_hba.conffile untuk mengaktifkan otentikasi berbasis MD5.

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

Temukan baris berikut dan ubah nilainya peerdan identdi METHODkolom menjadi 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 ini.

# 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

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

sudo systemctl start postgresql-9.6
sudo systemctl enable postgresql-9.6

Ubah kata sandi untuk pengguna PostgreSQL default.

sudo passwd postgres

Masuk sebagai pengguna PostgreSQL:

sudo su - postgres

Buat pengguna PostgreSQL baru untuk Concourse CI.

createuser concourse

Catatan : Pengguna PostgreSQL default dapat digunakan untuk otentikasi database, tetapi disarankan untuk menggunakan pengguna khusus untuk otentikasi database Concourse dalam pengaturan produksi.

PostgreSQL menyediakan shell untuk menjalankan query pada database. Beralih ke shell PostgreSQL dengan menjalankan:

psql

Tetapkan kata sandi untuk pengguna basis data Concourse yang baru dibuat.

ALTER USER concourse WITH ENCRYPTED password 'DBPassword';

Penting : Ganti DBPassworddengan kata sandi yang kuat. Catat kata sandi karena akan diperlukan nanti dalam tutorial.

Buat database baru untuk Concourse.

CREATE DATABASE concourse OWNER concourse;

Keluar dari psqlshell.

\q

Beralih ke pengguna sudo dari pengguna postgres saat ini.

exit

Unduh dan Instal Concourse CI

Unduh versi terbaru dari Concourse yang dapat dieksekusi dan simpan di dalamnya /usr/binsehingga dapat dieksekusi secara langsung. Versi terbaru dari binari Concourse dan Fly dapat ditemukan di halaman unduhan Concourse . Rilis baru sangat sering. Ganti tautan di bawah ini dengan tautan baru untuk versi terbaru.

sudo wget https://github.com/concourse/concourse/releases/download/v3.4.1/concourse_linux_amd64 -O /usr/bin/concourse

Demikian pula, unduh versi terbaru dari fly executable dan simpan di /usr/bin.

sudo wget https://github.com/concourse/concourse/releases/download/v3.4.1/fly_linux_amd64 -O /usr/bin/fly

Fly adalah antarmuka baris perintah untuk terhubung ke API ATC Concourse CI. Fly tersedia untuk berbagai platform seperti Linux, Windows dan MacOS.

Tetapkan izin eksekusi untuk binari yang diunduh concoursedan fly.

sudo chmod +x /usr/bin/concourse /usr/bin/fly

Periksa apakah Concourse dan Fly bekerja dengan benar dengan memeriksa versinya.

concourse -version
fly -version

Hasilkan dan Atur Kunci RSA

Pasangan kunci RSA menyediakan cara untuk mengenkripsi komunikasi antara komponen Concourse.

Agar Concourse berfungsi, setidaknya tiga pasang kunci harus dibuat. Untuk mengenkripsi data sesi, buat a session_signing_key. Kunci ini juga akan digunakan oleh TSA untuk menandatangani permintaan yang dibuatnya kepada ATC. Untuk mengamankan server TSA SSH, buat a tsa_host_key. Akhirnya, hasilkan worker_keyuntuk setiap pekerja.

Buat direktori baru untuk menyimpan kunci dan konfigurasi yang terkait dengan Concourse CI.

sudo mkdir /opt/concourse

Buat kunci yang diperlukan.

sudo ssh-keygen -t rsa -q -N '' -f /opt/concourse/session_signing_key
sudo ssh-keygen -t rsa -q -N '' -f /opt/concourse/tsa_host_key
sudo ssh-keygen -t rsa -q -N '' -f /opt/concourse/worker_key

Otorisasi kunci publik pekerja dengan menyalin kontennya ke authorized_worker_keysfile:

sudo cp /opt/concourse/worker_key.pub /opt/concourse/authorized_worker_keys

Memulai Concourse

Concourse menyediakan dua komponen terpisah yang perlu dimulai, web dan pekerja. Mulai web Concourse.

sudo concourse web \
  --basic-auth-username admin \
  --basic-auth-password StrongPass \
  --session-signing-key /opt/concourse/session_signing_key \
  --tsa-host-key /opt/concourse/tsa_host_key \
  --tsa-authorized-keys /opt/concourse/authorized_worker_keys \
  --postgres-user=concourse \
  --postgres-password=DBPassword \
  --postgres-database=concourse \
  --external-url http://192.0.2.1:8080

Ubah nama pengguna dan kata sandi basic-authjika diinginkan. Pastikan path ke file kunci sudah benar dan pastikan bahwa nilai yang benar untuk nama pengguna dan kata sandi dalam konfigurasi database PostgreSQL disediakan.

Catatan : ATC akan mendengarkan port default 8080dan TSA akan mendengarkan port 2222. Jika otentikasi tidak diinginkan, berikan --no-really-i-dont-want-any-authopsi setelah menghapus opsi auth dasar.

Setelah server web dimulai, output berikut harus ditampilkan.

{"timestamp":"1503657859.661247969","source":"tsa","message":"tsa.listening","log_level":1,"data":{}}
{"timestamp":"1503657859.666907549","source":"atc","message":"atc.listening","log_level":1,"data":{"debug":"127.0.0.1:8079","http":"0.0.0.0:8080"}}

Hentikan server untuk saat ini, karena beberapa hal lagi masih harus diatur.

Mulai Pekerja Concourse CI.

sudo concourse worker \
  --work-dir /opt/concourse/worker \
  --tsa-host 127.0.0.1 \
  --tsa-public-key /opt/concourse/tsa_host_key.pub \
  --tsa-worker-private-key /opt/concourse/worker_key

Perintah di atas akan mengasumsikan bahwa TSA berjalan di localhost dan mendengarkan port default 2222.

Meskipun web Concourse dan pekerja dapat dimulai dengan mudah menggunakan perintah di atas, disarankan untuk menggunakan Systemd untuk mengelola server.

Konfigurasikan Lingkungan dan Layanan Systemd

Menggunakan layanan Systemd untuk mengelola aplikasi memastikan bahwa aplikasi secara otomatis dimulai pada kegagalan dan saat boot. Server Concourse tidak mengambil data dari file konfigurasi apa pun, tetapi dapat mengakses data dari variabel lingkungan. Alih-alih mengatur variabel lingkungan global, buat file baru untuk menyimpan variabel lingkungan dan kemudian meneruskan variabel ke Concourse CI menggunakan layanan Systemd.

Buat file lingkungan baru untuk web Concourse.

sudo nano /opt/concourse/web.env

Mengisi file.

CONCOURSE_SESSION_SIGNING_KEY=/opt/concourse/session_signing_key
CONCOURSE_TSA_HOST_KEY=/opt/concourse/tsa_host_key
CONCOURSE_TSA_AUTHORIZED_KEYS=/opt/concourse/authorized_worker_keys

CONCOURSE_POSTGRES_USER=concourse
CONCOURSE_POSTGRES_PASSWORD=DBPassword
CONCOURSE_POSTGRES_DATABASE=concourse

CONCOURSE_BASIC_AUTH_USERNAME=admin
CONCOURSE_BASIC_AUTH_PASSWORD=StrongPass
CONCOURSE_EXTERNAL_URL=http://192.0.2.1:8080

Ubah nama pengguna dan kata sandi BASIC_AUTHjika diinginkan. Pastikan path ke file kunci sudah benar dan pastikan bahwa nilai yang benar untuk nama pengguna dan kata sandi dalam konfigurasi database PostgreSQL disediakan.

Demikian pula, buat file lingkungan untuk pekerja.

sudo nano /opt/concourse/worker.env

Mengisi file.

CONCOURSE_WORK_DIR=/opt/concourse/worker
CONCOURSE_TSA_WORKER_PRIVATE_KEY=/opt/concourse/worker_key
CONCOURSE_TSA_PUBLIC_KEY=/opt/concourse/tsa_host_key.pub
CONCOURSE_TSA_HOST=127.0.0.1

Karena file lingkungan berisi nama pengguna dan kata sandi, ubah izinnya sehingga tidak dapat diakses oleh pengguna lain.

sudo chmod 600 /opt/concourse/*.env

Sekarang buat pengguna baru untuk Concourse untuk menjalankan lingkungan web. Ini akan memastikan bahwa server web berjalan di lingkungan yang terisolasi.

sudo adduser --system concourse

Berikan kepemilikan pengguna concourse atas direktori file Concourse CI.

sudo chown -R concourse:concourse /opt/concourse

Buat file layanan systemd baru untuk layanan web Concourse.

sudo nano /etc/systemd/system/concourse-web.service

Mengisi file.

[Unit]
Description=Concourse CI web server
After=postgresql-9.6.service

[Service]
Type=simple
User=concourse
Group=concourse
Restart=on-failure
EnvironmentFile=/opt/concourse/web.env
ExecStart=/usr/bin/concourse web
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=concourse_web

[Install]
WantedBy=multi-user.target

Simpan dan tutup file. Buat file layanan baru untuk layanan pekerja Concourse.

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

Mengisi file.

[Unit]
Description=Concourse CI worker process
After=concourse-web.service

[Service]
Type=simple
User=root
Group=root
Restart=on-failure
EnvironmentFile=/opt/concourse/worker.env
ExecStart=/usr/bin/concourse worker
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=concourse_worker

[Install]
WantedBy=multi-user.target

Layanan web dan pekerja sekarang dapat dimulai secara langsung dengan menjalankan:

sudo systemctl start concourse-web concourse-worker

Untuk mengaktifkan proses pekerja dan web untuk mulai secara otomatis saat boot, jalankan:

sudo systemctl enable concourse-worker concourse-web

Untuk memeriksa status layanan, jalankan:

sudo systemctl status concourse-worker concourse-web

Jika layanan belum dimulai, atau dalam FAILEDkondisi, hapus cache dari /tmpdirektori.

sudo rm -rf /tmp/*

Mulai ulang layanan.

sudo systemctl restart concourse-worker concourse-web

Perhatikan bahwa saat ini layanan sudah mulai dengan benar. Output setelah memverifikasi status layanan harus sama.

[user@vultr ~]$ sudo systemctl status concourse-worker concourse-web
● concourse-worker.service - Concourse CI worker process
   Loaded: loaded (/etc/systemd/system/concourse-worker.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2017-08-26 07:27:37 UTC; 55s ago
 Main PID: 3037 (concourse)
   CGroup: /system.slice/concourse-worker.service
           └─3037 /usr/bin/concourse worker

Aug 26 07:27:42 vultr.guest concourse_worker[3037]: {"timestamp":"1503732462.934722900","source":"tsa","message":"t...""}}
Aug 26 07:27:42 vultr.guest concourse_worker[3037]: {"timestamp":"1503732462.941227913","source":"guardian","messag...0"}}
...

● concourse-web.service - Concourse CI web server
   Loaded: loaded (/etc/systemd/system/concourse-web.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2017-08-26 07:27:37 UTC; 55s ago
 Main PID: 3036 (concourse)
   CGroup: /system.slice/concourse-web.service
           └─3036 /usr/bin/concourse web

Aug 26 07:27:57 vultr.guest concourse_web[3036]: {"timestamp":"1503732477.925554752","source":"tsa","message":"tsa...ve"}}
Aug 26 07:28:02 vultr.guest concourse_web[3036]: {"timestamp":"1503732482.925430775","source":"tsa","message":"tsa...ve"}}
...
Hint: Some lines were ellipsized, use -l to show in full.

Sesuaikan firewall Anda untuk memungkinkan port 8080, yang menjalankan ATS dan port 2222, yang menjalankan TSA.

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

Menghubungkan ke Server

Setelah server dimulai, antarmuka web Concourse CI dapat diakses dengan masuk ke http://192.0.2.1:8080browser apa pun. Masuk menggunakan nama pengguna dan kata sandi yang disediakan dalam file lingkungan.

Untuk terhubung ke server menggunakan Fly, jalankan:

fly -t my-ci login -c http://192.0.2.1:8080

Perintah di atas digunakan untuk login awal ke server. -tdigunakan untuk memberikan nama target. ganti my-cidengan nama target yang diinginkan. Perintah di atas akan masuk ke tim default main. Ia akan menanyakan nama pengguna dan kata sandi yang disediakan dalam file lingkungan.

Outputnya akan terlihat seperti berikut.

[user@vultr ~]$ fly -t my-ci login -c http://192.0.2.1:8080
logging in to team 'main'

username: admin
password:

target saved

Login target akan disimpan selama sehari. Setelah itu, akan kedaluwarsa.

Untuk segera keluar.

fly -t my-ci logout

fly dapat digunakan untuk login ke server di luar jaringan, tetapi hanya jika server memiliki alamat IP publik dan dapat diakses dari luar jaringan. Biner Windows atau MacOS dapat diunduh dari situs unduhan atau dari UI web server.

Menyiapkan Nginx Reverse Proxy

Info masuk, dan informasi lain yang dikirim melalui web UI ke server Concourse tidak diamankan. Koneksi tidak terenkripsi. Proxy reverse Nginx dapat diatur dengan Let's Encrypt SSL gratis.

Instal server web Nginx dan Certbot, yang merupakan aplikasi klien untuk Let's Encrypt CA.

sudo yum -y install certbot-nginx nginx

Mulai dan aktifkan Nginx untuk mulai secara otomatis saat boot:

sudo systemctl start nginx
sudo systemctl enable nginx

Sebelum permintaan dapat dibuat untuk sertifikat, port 80 dan 443, atau layanan HTTP dan HTTPS standar, harus diaktifkan melalui firewall. Certbot akan memeriksa otoritas domain sebelum mengeluarkan sertifikat.

sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent

Port 8080 tidak perlu lagi diizinkan melalui firewall lagi karena Concourse sekarang akan dijalankan pada port HTTPS standar. Hapus entri firewall untuk mengizinkan port 8080.

sudo firewall-cmd --zone=public --remove-port=8080/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, jadi disarankan pembaruan otomatis karena sertifikat disiapkan menggunakan cronjobs. Cron adalah layanan sistem yang digunakan untuk menjalankan tugas-tugas berkala.

Buka file tugas cron.

sudo crontab -e

Tambahkan baris berikut di akhir file.

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

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

Buat host virtual baru.

sudo nano /etc/nginx/conf.d/concourse-ssl.conf

Mengisi file.

server {
    listen 80;
    server_name ci.example.com;
    return 301 https://$host$request_uri;
}
server {

    listen 443;
    server_name ci.example.com;

    ssl_certificate           /etc/letsencrypt/live/ci.example.com/fullchain.pem;
    ssl_certificate_key       /etc/letsencrypt/live/ci.example.com/privkey.pem;

    ssl on;
    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;

    access_log    /var/log/nginx/concourse.access.log;

    location / {

      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_pass          http://localhost:8080;
      proxy_read_timeout  90;

      proxy_redirect      http://localhost:8080 https://ci.example.com;
    }
  }

Catatan : Ganti ci.example.comdengan domain yang sebenarnya.

Edit file Lingkungan yang dibuat untuk Web concourse.

sudo nano /opt/concourse/web.env

Ubah nilai CONCOURSE_EXTERNAL_URLdan juga tambahkan dua baris lagi di akhir file.

CONCOURSE_EXTERNAL_URL=https://ci.example.com
CONCOURSE_BIND_IP=127.0.0.1
CONCOURSE_BIND_PORT=8080

Simpan file dan mulai ulang server Web Concourse, Worker dan Nginx:

sudo systemctl restart concourse-worker concourse-web nginx

Semua data yang dikirim ke dan dari browser sekarang diamankan dengan enkripsi SSL.



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