consul quickstart

## ACL
/app/consul/consul agent -data-dir=/app/data/consul -config-file=/app/data/consul/agent.hcl -server -ui -bootstrap-expect=1 -client=0.0.0.0 -bind=0.0.0.0 -advertise=192.168.2.20

## 
# cat /app/data/consul/agent.hcl 
acl = {
  enabled = true
  default_policy = "deny"
  enable_token_persistence = true
}

## 
consul acl bootstrap
AccessorID:       fc69ac7e-3608-45d2-fe9c-e366ca20f332
SecretID:         0524995f-fff9-d9aa-8ee3-501e8c167e3a
Description:      Bootstrap Token (Global Management)
Local:            false
Create Time:      2021-07-10 17:10:02.908181025 +0800 CST
Policies:
   00000000-0000-0000-0000-000000000001 - global-management


consul acl policy create -name "acl-replication" -description "Token capable of replicating ACL policies" -rules 'acl = "read"'

$ consul acl token list

  Create a new ACL policy:

$ consul acl policy create -name "new-policy" \
                                 -description "This is an example policy" \
                                 -datacenter "dc1" \
                                 -datacenter "dc2" \
                                 -rules @rules.hcl

  Set the default agent token:

$ consul acl set-agent-token default 0bc6bc46-f25e-4262-b2d9-ffbe1d96be6f




# single node
/app/consul/consul agent -server -data-dir=/app/consul/data  -ui -client=0.0.0.0 -bootstrap-expect 1 


# show members:

consul members

# show nodes:

curl 127.0.0.1:8500/v1/catalog/nodes


# web-ui
open http://x.x.x.x:8500/ui/


# register 2 srv
curl -X PUT -d '{"Datacenter": "dc1", "Node": "mysql-1", "Address": "mysql-1.node.consul","Service": {"Service": "mysql", "tags": ["master","v1"], "Port": 3306}}' http://127.0.0.1:8500/v1/catalog/register

curl -X PUT -d '{"Datacenter": "dc1", "Node": "mysql-2", "Address": "mysql-2.node.consul","Service": {"Service": "mysql", "tags": ["master","v1"], "Port": 3306}}' http://127.0.0.1:8500/v1/catalog/register

# register node_exporter
curl -X PUT -d '{"Datacenter": "dc1", "Node": "1.2.3.4", "Address": "1.2.3.4","Service": {"Service": "node_exporter", "Port": 9100,"ServiceID": "node_exporter","ServiceName": "node_exporter","ServiceTags": ["dc1","exporter"]}}' http://127.0.0.1:8500/v1/catalog/register

# regist nginx_vts
curl -X PUT -d '{"Datacenter": "dc1","Node": "1.2.3.4", "Address": "1.2.3.4","Service": {"Service": "nginx_vts","ServiceID": "nginx_vts","ServiceName": "nginx_vts","ServiceTags": ["dc1","exporter"], "Port": 2000}}' http://127.0.0.1:8500/v1/catalog/register

# nslookup
dig @127.0.0.1 -p 8600 mysql.service.consul SRV
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> @127.0.0.1 -p 8600 mysql.service.consul SRV
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34276
;; flags: qr aa rd; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 9
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;mysql.service.consul.      IN  SRV

;; ANSWER SECTION:
mysql.service.consul.   0   IN  SRV 1 1 3306 mysql-2.node.dc1.consul.
mysql.service.consul.   0   IN  SRV 1 1 3306 mysql-1.node.dc1.consul.

;; ADDITIONAL SECTION:
mysql-2.node.dc1.consul. 0  IN  CNAME   mysql-2.node.consul.
mysql-2.node.consul.    0   IN  CNAME   mysql-2.node.consul.
mysql-2.node.consul.    0   IN  CNAME   mysql-2.node.consul.
mysql-2.node.consul.    0   IN  CNAME   mysql-2.node.consul.
mysql-1.node.dc1.consul. 0  IN  CNAME   mysql-1.node.consul.
mysql-1.node.consul.    0   IN  CNAME   mysql-1.node.consul.
mysql-1.node.consul.    0   IN  CNAME   mysql-1.node.consul.
mysql-1.node.consul.    0   IN  CNAME   mysql-1.node.consul.

;; Query time: 1 msec
;; SERVER: 127.0.0.1#8600(127.0.0.1)
;; WHEN: Wed Oct 09 23:10:12 CST 2019
;; MSG SIZE  rcvd: 268



# cat  /etc/systemd/system/consul.service
[Unit]
After=network.target remote-fs.target nss-lookup.target

[Service]
LimitNOFILE=1048576
Restart=on-failure
RestartSec=20
PIDFile=/var/run/consul.pid
ExecStartPre=/bin/mkdir -p /app/data/consul
ExecStart=/app/consul/bin/consul agent -server -data-dir=/app/data/consul -ui -client=0.0.0.0 -bootstrap-expect 1

ExecReload=/bin/kill -s HUP $MAINPID
KillMode=process
KillSignal=SIGQUIT
TimeoutStopSec=5
PrivateTmp=true


[Install]
WantedBy=multi-user.target

你可能感兴趣的:(consul quickstart)