กงสุล - ติดตั้ง
เพื่อวัตถุประสงค์ในการสาธิตเราจะใช้ตัวแทนกงสุลในโหมดผู้พัฒนาโดยใช้โหมด -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
ผลลัพธ์จะเป็นดังที่แสดงในภาพหน้าจอต่อไปนี้