Konsul - Instalasi

Untuk tujuan demonstrasi, kami akan menggunakan agen konsul dalam mode pengembang menggunakan mode -dev. Hanya untuk penyetelan mesin lokal, kami akan melakukan penyiapan konsul sistem tunggal.Please do not use this single node consul cluster in your production. Seperti yang telah disebutkan Hashicorp dalam skenario kasus cluster konsul node tunggal,the data loss is inevitable.

Memasang Konsul

Konsul dapat diinstal melalui halaman Unduhan di www.consul.io/downloads.html

Anda dapat mengekstrak paket biner di bagian Unduhan mesin Anda.

$ cd Downloads
$ chmod +x consul
$ sudo mv consul /usr/bin/

Sekarang mari kita mulai menggunakan konsul menggunakan -dev flag.

$ consul agent -dev -data-dir=/tmp/consul

Outputnya akan seperti yang ditunjukkan pada tangkapan layar berikut.

Sekarang Anda dapat memeriksa anggota konsul Anda menggunakan perintah berikut.

$ consul members

Outputnya akan seperti yang ditunjukkan pada tangkapan layar berikut.

Jika Anda ingin menggabungkan node lain ke node ini -

$ consul join <Node 2> <Node 3>

Sebagai alternatif, Anda dapat menjalankan perintah berikut di Node 2 & 3 -

$ consul join <Node 1>

Menggunakan Command Line

Baris perintah konsul terdiri dari beberapa opsi berbeda, beberapa yang paling umum digunakan adalah sebagai berikut -

  • agent - yang menjalankan agen Konsul.

  • configtest - untuk memvalidasi file konfigurasi.

  • event - untuk memulai acara baru.

  • exec - untuk menjalankan perintah pada node Konsul.

  • force-leave - memaksa anggota cluster meninggalkan cluster.

  • info - ini memberi kita informasi debugging untuk operator.

  • join - untuk membuat agen Konsul bergabung dengan cluster.

  • keygen - untuk menghasilkan kunci enkripsi baru.

  • keyring - untuk mengelola kunci enkripsi lapisan gosip.

  • kv - untuk berinteraksi dengan penyimpanan nilai kunci.

  • leave - untuk meninggalkan cluster Konsul dan mematikannya tanpa paksaan.

  • lock - untuk menjalankan perintah untuk menahan kunci.

  • maint - untuk mengontrol node atau mode pemeliharaan layanan.

  • members - Ini mencantumkan anggota cluster Konsul.

  • monitor - itu mengalirkan log dari agen Konsul.

  • operator - Ini memberi kami sekelompok alat untuk operator Konsul.

  • reload - memicu agen untuk memuat ulang file konfigurasi.

  • rtt - Memperkirakan waktu perjalanan jaringan antar node.

  • snapshot - itu menyimpan, memulihkan dan memeriksa snapshot dari status server Konsul.

  • version - untuk mencetak versi Konsul saat ini.

  • watch - Waspada terhadap perubahan di Konsul.

Template Konsul

Consul-template memberi kita daemon yang menanyakan instance Consul dan memperbarui sejumlah template tertentu pada sistem file. Consul-template secara opsional dapat menjalankan perintah arbitrer saat proses pembaruan selesai. Opsi ini membantu kami mengatur cluster konsul tanpa melakukan semuanya secara manual.

Template konsul akan dibentuk di /tmp/<name-of-file>.conf.tmpfl. Bahasa yang sesuai dengan template ditulisHashicorp Configuration Language (HCL).

Anda dapat mendownload template-konsul dari halaman ini .

Cobalah dengan menggunakan perintah berikut -

$ ./consul-template -h

Outputnya akan seperti yang ditunjukkan pada tangkapan layar berikut.

Jika Anda ingin memindahkan biner ini ke ruang yang lebih menonjol, sehingga selalu tersedia untuk pengguna. Anda dapat mengetikkan perintah berikut -

$ chmod +x consul-template
$ sudo mv consul-template /usr/share/bin/

Untuk tujuan demo, kami akan menggunakan contoh konfigurasi nginxuntuk digunakan sebagai layanan kami. Anda dapat mencoba lebih banyak demo dihttps://github.com/hashicorp/consul-template/tree/master/examples atau lebih baik tulis template Anda sendiri.

$ vim /tmp/nginx.conf.ctmpl

Outputnya akan seperti yang ditunjukkan pada tangkapan layar berikut.

File konfigurasi mungkin terlihat seperti -

{{range services}} {{$name := .Name}} {{$service := service .Name}}

upstream {{$name}} {
   zone upstream-{{$name}} 64k;
   {{range $service}}server {{.Address}}:{{.Port}} max_fails = 3 fail_timeout = 60
   weight = 1;
   {{else}}server 127.0.0.1:65535; # force a 502{{end}}
} {{end}}

server {
   listen 80 default_server;
   location / {
      root /usr/share/nginx/html/;
      index index.html;
   }
   location /stub_status {
      stub_status;
   }
   {{range services}} {{$name := .Name}}
   location /{{$name}} {
      proxy_pass http://{{$name}};
   }
   {{end}}
}

Sekarang menggunakan file biner template konsul, jalankan perintah berikut -

$ consul-template \
 -template = "/tmp/nginx.conf.ctmpl:/etc/nginx/conf.d/default.conf"

Dengan perintah sebelumnya, proses telah dimulai. Anda nanti dapat membuka terminal lain dan melihat file nginx.conf sepenuhnya dirender menggunakan perintah berikut.

$ cat /etc/nginx/conf.d/default.conf

Outputnya akan seperti yang ditunjukkan pada tangkapan layar berikut.