Lãnh sự - Cài đặt
Đối với mục đích trình diễn, chúng tôi sẽ sử dụng đại lý lãnh sự ở chế độ nhà phát triển bằng chế độ -dev. Chỉ đối với thiết lập máy cục bộ, chúng tôi sẽ thực hiện một thiết lập lãnh sự hệ thống duy nhất.Please do not use this single node consul cluster in your production. Như Hashicorp đã đề cập đến nó trong trường hợp một cụm lãnh sự nút duy nhất,the data loss is inevitable.
Cài đặt Lãnh sự
Consul có thể được cài đặt thông qua trang Tải xuống tại www.consul.io/downloads.html
Bạn có thể giải nén gói nhị phân trong phần Tải xuống của máy.
$ cd Downloads
$ chmod +x consul
$ sudo mv consul /usr/bin/
Bây giờ chúng ta hãy bắt đầu sử dụng lãnh sự bằng cách sử dụng -dev flag.
$ consul agent -dev -data-dir=/tmp/consul
Kết quả sẽ được hiển thị trong ảnh chụp màn hình sau.
Bây giờ bạn có thể kiểm tra các thành viên lãnh sự của mình bằng lệnh sau.
$ consul members
Kết quả sẽ được hiển thị trong ảnh chụp màn hình sau.
Nếu bạn muốn tham gia các nút khác vào nút này -
$ consul join <Node 2> <Node 3>
Ngoài ra, bạn có thể chạy lệnh sau trên Node 2 & 3:
$ consul join <Node 1>
Sử dụng dòng lệnh
Dòng lệnh lãnh sự bao gồm một số tùy chọn khác nhau, một số tùy chọn thường được sử dụng nhất như sau:
agent - điều hành một đại lý Lãnh sự.
configtest - để xác thực tệp cấu hình.
event - để bắt đầu một sự kiện mới.
exec - để thực hiện một lệnh trên các nút Lãnh sự.
force-leave - buộc một thành viên của cụm rời khỏi cụm.
info - nó cung cấp cho chúng tôi thông tin gỡ lỗi cho các nhà khai thác.
join - để làm cho một đại lý Lãnh sự tham gia cụm.
keygen - để tạo khóa mã hóa mới.
keyring - để quản lý các khóa mã hóa lớp tin đồn.
kv - để tương tác với kho khóa-giá trị.
leave - rời khỏi cụm Lãnh sự và tắt nó mà không cần cưỡng chế.
lock - để thực hiện lệnh nhấn giữ một khóa.
maint - để điều khiển nút hoặc chế độ bảo trì dịch vụ.
members - nó liệt kê các thành viên của một cụm Lãnh sự.
monitor - nó truyền nhật ký từ một đại lý Lãnh sự.
operator - nó cung cấp cho chúng tôi một nhóm các công cụ cho các nhà điều hành Lãnh sự.
reload - nó kích hoạt tác nhân tải lại các tệp cấu hình.
rtt - nó ước tính thời gian vòng quanh mạng giữa các nút.
snapshot - nó lưu, khôi phục và kiểm tra ảnh chụp nhanh của trạng thái máy chủ Lãnh sự.
version - để in phiên bản Lãnh sự hiện tại.
watch - Để xem những thay đổi trong Lãnh sự.
Mẫu lãnh sự
Mẫu lãnh sự cung cấp cho chúng ta một daemon truy vấn phiên bản Lãnh sự và cập nhật bất kỳ số lượng mẫu cụ thể nào trên hệ thống tệp. Mẫu lãnh sự có thể tùy chọn chạy các lệnh tùy ý khi quá trình cập nhật hoàn tất. Tùy chọn này giúp chúng tôi thiết lập cụm lãnh sự mà không cần tự làm mọi thứ theo cách thủ công.
Mẫu lãnh sự sẽ được thành lập tại /tmp/<name-of-file>.conf.tmpfl. Ngôn ngữ mà mẫu được viết theoHashicorp Configuration Language (HCL).
Bạn có thể tải xuống mẫu lãnh sự từ trang này .
Hãy thử bằng cách sử dụng lệnh sau:
$ ./consul-template -h
Kết quả sẽ được hiển thị trong ảnh chụp màn hình sau.
Nếu bạn muốn di chuyển tệp nhị phân này sang một không gian nổi bật hơn, để nó luôn có sẵn cho người dùng. Bạn có thể nhập các lệnh sau:
$ chmod +x consul-template
$ sudo mv consul-template /usr/share/bin/
For demo purposes, we are going to use a sample configuration of nginx to be used as our service. You can try out more demos at https://github.com/hashicorp/consul-template/tree/master/examples or better write down your own template.
$ vim /tmp/nginx.conf.ctmpl
The output would be as shown in the following screenshot.
The config file may look like −
{{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}}
}
Now using the consul template binary file, please run the following commands −
$ consul-template \
-template = "/tmp/nginx.conf.ctmpl:/etc/nginx/conf.d/default.conf"
With the previous command the process has started. You can later open up another terminal and view the nginx.conf file being completely rendered using the following command.
$ cat /etc/nginx/conf.d/default.conf
The output would be as shown in the following screenshot.