กงสุล - ติดตั้ง

เพื่อวัตถุประสงค์ในการสาธิตเราจะใช้ตัวแทนกงสุลในโหมดผู้พัฒนาโดยใช้โหมด -dev สำหรับการตั้งค่าเครื่องภายในเราจะทำการตั้งค่ากงสุลระบบเดียวPlease do not use this single node consul cluster in your production. ดังที่ Hashicorp กล่าวไว้แล้วในกรณีสถานการณ์ของคลัสเตอร์กงสุลโหนดเดียวthe data loss is inevitable.

ติดตั้งกงสุล

สามารถติดตั้งกงสุลผ่านหน้าดาวน์โหลดที่www.consul.io/downloads.html

คุณสามารถแยกแพ็กเกจไบนารีในส่วนดาวน์โหลดของเครื่องของคุณ

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

ตอนนี้ให้เราเริ่มใช้กงสุลโดยใช้ -dev flag.

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

ผลลัพธ์จะเป็นดังที่แสดงในภาพหน้าจอต่อไปนี้

ตอนนี้คุณสามารถตรวจสอบสมาชิกกงสุลของคุณได้โดยใช้คำสั่งต่อไปนี้

$ consul members

ผลลัพธ์จะเป็นดังที่แสดงในภาพหน้าจอต่อไปนี้

หากคุณต้องการเข้าร่วมโหนดอื่นกับโหนดนี้ -

$ consul join <Node 2> <Node 3>

หรือคุณสามารถรันคำสั่งต่อไปนี้บนโหนด 2 และ 3 -

$ consul join <Node 1>

การใช้ Command Line

สายการบังคับบัญชาของกงสุลประกอบด้วยตัวเลือกที่แตกต่างกันหลายตัวเลือกที่ใช้บ่อยที่สุดมีดังนี้ -

  • agent - ซึ่งทำงานเป็นตัวแทนกงสุล

  • configtest - เพื่อตรวจสอบไฟล์กำหนดค่า

  • event - เพื่อเริ่มกิจกรรมใหม่

  • exec - เพื่อดำเนินการคำสั่งบนโหนดกงสุล

  • force-leave - บังคับให้สมาชิกของคลัสเตอร์ออกจากคลัสเตอร์

  • info - ให้ข้อมูลการดีบักสำหรับตัวดำเนินการ

  • join - เพื่อให้ตัวแทนกงสุลเข้าร่วมคลัสเตอร์

  • keygen - เพื่อสร้างคีย์เข้ารหัสใหม่

  • keyring - เพื่อจัดการคีย์การเข้ารหัสชั้นซุบซิบ

  • kv - เพื่อโต้ตอบกับที่เก็บคีย์ - ค่า

  • leave - ให้ออกจากคลัสเตอร์กงสุลและปิดโดยไม่มีการบังคับ

  • lock - เพื่อดำเนินการคำสั่งเพื่อกดล็อค

  • maint - เพื่อควบคุมโหนดหรือโหมดการบำรุงรักษาบริการ

  • members - แสดงรายชื่อสมาชิกของคลัสเตอร์กงสุล

  • monitor - สตรีมบันทึกจากตัวแทนกงสุล

  • operator - จัดเตรียมกลุ่มเครื่องมือสำหรับเจ้าหน้าที่กงสุล

  • reload - ทริกเกอร์เอเจนต์ให้โหลดไฟล์คอนฟิกูเรชันซ้ำ

  • rtt - ประมาณการเวลาเดินทางไปกลับของเครือข่ายระหว่างโหนด

  • snapshot - บันทึกกู้คืนและตรวจสอบภาพรวมของสถานะเซิร์ฟเวอร์กงสุล

  • version - เพื่อพิมพ์กงสุลฉบับปัจจุบัน

  • watch - ระวังการเปลี่ยนแปลงในกงสุล

แม่แบบกงสุล

แม่แบบกงสุลจัดเตรียมดีมอนให้เราที่ค้นหาอินสแตนซ์กงสุลและอัพเดตเทมเพลตที่ระบุจำนวนเท่าใดก็ได้บนระบบไฟล์ แม่แบบกงสุลสามารถเลือกเรียกใช้คำสั่งตามอำเภอใจได้เมื่อกระบวนการอัปเดตเสร็จสิ้น ตัวเลือกนี้ช่วยให้เราตั้งค่าคลัสเตอร์กงสุลได้โดยไม่ต้องดำเนินการทุกอย่างด้วยตนเอง

แม่แบบกงสุลจะถูกสร้างขึ้นที่ /tmp/<name-of-file>.conf.tmpfl. ภาษาที่ใช้เขียนเทมเพลตตามHashicorp Configuration Language (HCL).

คุณสามารถดาวน์โหลดแม่แบบกงสุลได้จากหน้านี้

ลองใช้งานโดยใช้คำสั่งต่อไปนี้ -

$ ./consul-template -h

ผลลัพธ์จะเป็นดังที่แสดงในภาพหน้าจอต่อไปนี้

หากคุณต้องการย้ายไบนารีนี้ไปยังพื้นที่ที่โดดเด่นมากขึ้นเพื่อให้ผู้ใช้สามารถใช้งานได้ทุกครั้ง คุณสามารถพิมพ์คำสั่งต่อไปนี้ -

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

เพื่อวัตถุประสงค์ในการสาธิตเราจะใช้การกำหนดค่าตัวอย่างของ nginxเพื่อใช้เป็นบริการของเรา คุณสามารถทดลองใช้การสาธิตเพิ่มเติมได้ที่https://github.com/hashicorp/consul-template/tree/master/examples หรือเขียนเทมเพลตของคุณเองดีกว่า

$ vim /tmp/nginx.conf.ctmpl

ผลลัพธ์จะเป็นดังที่แสดงในภาพหน้าจอต่อไปนี้

ไฟล์กำหนดค่าอาจมีลักษณะดังนี้ -

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

ขณะนี้ใช้ไฟล์ไบนารีแม่แบบกงสุลโปรดเรียกใช้คำสั่งต่อไปนี้ -

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

ด้วยคำสั่งก่อนหน้ากระบวนการได้เริ่มต้นขึ้น คุณสามารถเปิดเทอร์มินัลอื่นได้ในภายหลังและดูไฟล์ nginx.conf ที่แสดงผลอย่างสมบูรณ์โดยใช้คำสั่งต่อไปนี้

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

ผลลัพธ์จะเป็นดังที่แสดงในภาพหน้าจอต่อไปนี้