Consul adalah solusi mesh layanan yang menawarkan bidang kontrol berfitur lengkap, termasuk fungsionalitas segmentasi, konfigurasi, dan penemuan layanan. Fitur-fitur ini dapat digunakan secara individual sesuai kebutuhan, atau dapat digunakan bersama-sama untuk membuat mesh layanan lengkap. Consul beroperasi melalui bidang data dan mendukung proxy dan model integrasi asli. Konsul dikirimkan dengan proxy built-in sederhana yang memastikan semuanya berfungsi dengan baik. Consul juga mendukung integrasi proxy pihak ketiga, seperti Envoy.
Fitur utama Konsul meliputi:
- Penemuan Layanan
- Pemeriksaan Kesehatan
- Toko KV
- Komunikasi Layanan Aman
- Kemampuan Multi-Pusat Data
Dalam tutorial ini, kami akan menunjukkan cara menginstal server Konsul di Ubuntu 20.04.
Prasyarat
- VPS Ubuntu 20.04 baru di Platform Cloud Atlantic.Net
- Kata sandi root dikonfigurasi di server Anda
Langkah 1 – Buat Server Cloud Atlantic.Net
Pertama, masuk ke Server Cloud Atlantic.Net Anda. Buat server baru, pilih Ubuntu 20.04 sebagai sistem operasi dengan setidaknya 2GB RAM. Hubungkan ke Server Cloud Anda melalui SSH dan masuk menggunakan kredensial yang disorot di bagian atas halaman.
Setelah Anda masuk ke server Ubuntu 20.04 Anda, jalankan perintah berikut untuk memperbarui sistem dasar Anda dengan paket terbaru yang tersedia.
apt-get update -y
Langkah 2 – Instal Server Konsul
Pertama, instal paket yang diperlukan dengan perintah berikut:
apt-get install unzip gnupg2 curl wget -y
Selanjutnya, unduh versi terbaru dari Consul dengan perintah berikut:
wget https://releases.hashicorp.com/consul/1.8.4/consul_1.8.4_linux_amd64.zip
Setelah unduhan selesai, unzip file yang diunduh dengan perintah berikut:
unzip consul_1.8.4_linux_amd64.zip
Selanjutnya, pindahkan biner konsul ke direktori /usr/local/bin dengan perintah berikut:
mv consul /usr/local/bin/
Selanjutnya, verifikasi versi Consul menggunakan perintah berikut:
consul --version
Anda akan mendapatkan output berikut:
Consul v1.8.4 Revision 12b16df32 Protocol 2 spoken by default, understands 2 to 3 (agent will automatically use protocol >2 when speaking to compatible agents)
Langkah 3 – Buat File Layanan Konsul
Pertama, Anda perlu membuat pengguna dan grup terpisah untuk Konsul. Anda dapat membuatnya dengan perintah berikut:
groupadd --system consul useradd -s /sbin/nologin --system -g consul consul
Selanjutnya, buat direktori yang diperlukan dengan perintah berikut:
mkdir -p /var/lib/consul mkdir /etc/consul.d
Selanjutnya, ubah kepemilikan dan izin direktori tersebut:
chown -R consul:consul /var/lib/consul chmod -R 775 /var/lib/consul chown -R consul:consul /etc/consul.d
Selanjutnya, buat file layanan Consul systemd dengan perintah berikut:
nano /etc/systemd/system/consul.service
Tambahkan baris berikut:
[Unit] Description=Consul Service Discovery Agent After=network-online.target Wants=network-online.target [Service] Type=simple User=consul Group=consul ExecStart=/usr/local/bin/consul agent -server -ui \ -advertise=your-server-ip \ -bind=your-server-ip \ -data-dir=/var/lib/consul \ -node=consul-01 \ -config-dir=/etc/consul.d ExecReload=/bin/kill -HUP $MAINPID KillSignal=SIGINT TimeoutStopSec=5 Restart=on-failure SyslogIdentifier=consul [Install] WantedBy=multi-user.target
Simpan dan tutup file setelah Anda selesai.
Catatan :Berikan ip server, jalur direktori data, dan direktori konfigurasi yang Anda buat sebelumnya.
Selanjutnya, muat ulang daemon systemd dengan perintah berikut:
systemctl daemon-reload
Langkah 4 – Konfigurasi Server Konsul
Pertama, Anda perlu membuat kunci dengan panjang dan penyandian yang diperlukan. Anda dapat membuatnya dengan perintah berikut:
consul keygen
Anda akan mendapatkan output berikut:
TJ8iw/XJ+0/BSUMGuLFWkeT23LmGnfhmF/qWgA25wZU=
Selanjutnya, Anda perlu membuat file konfigurasi Json untuk Consul. Anda dapat membuatnya dengan perintah berikut:
nano /etc/consul.d/config.json
Berikan IP server, nama host, dan kunci Konsul Anda seperti yang ditunjukkan di bawah ini:
{ "bootstrap": true, "server": true, "log_level": "DEBUG", "enable_syslog": true, "datacenter": "server1", "addresses" : { "http": "0.0.0.0" }, "bind_addr": "your-server-ip", "node_name": "ubuntu2004", "data_dir": "/var/lib/consul", "acl_datacenter": "server1", "acl_default_policy": "allow", "encrypt": "TJ8iw/XJ+0/BSUMGuLFWkeT23LmGnfhmF/qWgA25wZU=" }
Simpan dan tutup file setelah Anda selesai.
Selanjutnya, mulai layanan Konsul dan aktifkan untuk memulai saat reboot sistem dengan perintah berikut:
systemctl start consul systemctl enable consul
Selanjutnya, verifikasi status Konsul dengan perintah berikut:
systemctl status consul
Anda akan mendapatkan output berikut:
● consul.service - Consul Service Discovery Agent Loaded: loaded (/etc/systemd/system/consul.service; disabled; vendor preset: enabled) Active: active (running) since Thu 2020-10-01 10:35:52 UTC; 4min 11s ago Main PID: 5511 (consul) Tasks: 9 (limit: 2353) Memory: 17.4M CGroup: /system.slice/consul.service └─5511 /usr/local/bin/consul agent -server -ui -advertise=your-server-ip -bind=your-server-ip -data-dir=/var/lib/consul -node=con>
Pada titik ini, server Konsul dimulai dan mendengarkan pada port 8500. Anda dapat memeriksanya dengan perintah berikut:
ss -plunt | grep 8500
Anda akan mendapatkan output berikut:
tcp LISTEN 0 4096 *:8500 *:* users:(("consul",pid=5511,fd=17))
Langkah 5 – Konfigurasi Nginx sebagai Reverse Proxy
Selanjutnya, ada baiknya untuk menginstal dan mengkonfigurasi Nginx sebagai proxy terbalik untuk mengakses Konsul pada port 80.
Pertama, instal server Nginx dengan perintah berikut:
apt-get install nginx -y
Setelah terinstal, hapus file konfigurasi virtual host default Nginx:
rm -rf /etc/nginx/sites-enabled/default
Selanjutnya, buat file konfigurasi virtual host Consul dengan perintah berikut:
nano /etc/nginx/sites-available/consul.conf
Tambahkan baris berikut:
server { listen 80 ; server_name your-server-ip; root /var/lib/consul; location / { proxy_pass http://127.0.0.1:8500; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $http_host; } }
Simpan dan tutup file, lalu aktifkan virtual host dengan perintah berikut:
ln -s /etc/nginx/sites-available/consul.conf /etc/nginx/sites-enabled/
Selanjutnya, periksa Nginx apakah ada kesalahan sintaks dengan perintah berikut:
nginx -t
Anda akan mendapatkan output berikut:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Selanjutnya, restart layanan Nginx dengan perintah berikut:
systemctl restart nginx
Jika Anda mendapatkan kesalahan, maka Anda perlu mengedit file konfigurasi server default Nginx dan mengatur server_names_hash_bucket_size:
nano /etc/nginx/nginx.conf
Tambahkan baris berikut di bawah http { :
server_names_hash_bucket_size 64;
Simpan dan tutup file, lalu mulai ulang layanan Nginx untuk menerapkan perubahan:
systemctl restart nginx
Langkah 6 – Akses Dasbor Konsul
Selanjutnya, buka browser web Anda dan akses antarmuka web Konsul menggunakan URL http://your-server-ip/ui . Anda akan melihat dasbor Konsul di halaman berikut:
Klik Node untuk membuat daftar node aktif di server Anda seperti yang ditunjukkan di bawah ini:
Kesimpulan
Selamat! Anda telah berhasil menginstal server Konsul di Ubuntu 20.04. Anda sekarang dapat menambahkan lebih banyak node klien ke server Consul dan mulai mengelolanya dari dasbor Consul. Untuk informasi lebih lanjut, Anda dapat mengunjungi dokumentasi Konsul. Mulailah dengan Konsul di VPS Hosting dari Atlantic.Net!