作者:厉害了 | 来源:互联网 | 2023-01-27 15:34
1.到http:rpmfind.net下载以下4个包:golang-1.6.2-1.fc24.ppc64le.rpmgolang-bin-1.6.2-1.fc24.ppc64le.
1. 到http://rpmfind.net/下载以下4个包:
golang-1.6.2-1.fc24.ppc64le.rpm
golang-bin-1.6.2-1.fc24.ppc64le.rpm
golang-src-1.6.2-1.fc24.noarch.rpm
go-srpm-macros-2-3.fc23.noarch.rpm
2. yum -y install golang*.rpm
3. 设置GOPATH变量为 $HOME,即:
export GOPATH=$HOME
4. 安装gb
go get github.com/constabulary/gb/...
5. 下载 confd-0.11.0的tar.gz包
cd confd-0.11.0
./build && ./install
6. cat > /usr/lib/systemd/system/confd.service <[Unit]
Description=Confd
After=haproxy.service
[Service]
ExecStart=/usr/bin/confd
Restart=always
[Install]
WantedBy=basic.target
EOF
7. 创建一个配置和模版目录
mkdir -p /etc/confd/{conf.d,templates}
8. 创建confd的主配置(全局配置)文件,此文件用于设置与etcd服务器相关的一些设置,配置如下:
cat > /etc/confd/confd.toml <confdir = "/etc/confd"#指定confd的主配置目录
interval = 20 #指定间隔多长时间与etcd同步更新
backend = "etcd"#指定后端的键值存储服务器的类型,如:etcd、consul、zookeeper
nodes = [#指定列出后端的节点,可以有多个
"http://172.16.0.204:4001" #此地址为etcd服务器的地址
]
prefix = "/" #键的前缀是什么
scheme = "http"#指定后端的scheme,如:http、https
verbose = true
EOF
9. 在/etc/confd/conf.d 里面生成指定应用的配置文件,此处为haproxy.toml,配置如下:
cat > /etc/confd/confd.toml <[template]
src = "haproxy.cfg.tmpl"#定义配置文件的模板名称,此文件存放于/etc/confd/templates
dest = "/etc/haproxy/haproxy.cfg"#要被同步的haproxy的配置文件路径
keys = [
"/backend"#指定后端存放键值的目录
]
reload_cmd = "/usr/bin/systemctl reload haproxy"#更新同步完配置文件后,重新加载haproxy服务
EOF
10. 生成haproxy.cfg.tmpl模板文件
.
.
(略)
.
.
frontend http-in
bind *:8080
acl homepage path_reg ^/$
acl status path_beg /haproxyadmin
redirect location /hds/ if homepage
use_backend status if status
default_backend app
backend status
stats enable
stats hide-version
stats uri /haproxyadmin?stats
stats realm Haproxy\ Statistics
stats auth admin:admin
stats admin if TRUE
backend app
balance source
option httpclose
option forwardfor
{{range gets "/backend/*"}}#range表示循环,gets表示获取键值对
server {{base .Key}} {{.Value}} check maxconn 1000#base .Key 类似于Linux命令basename;.Value表示键所对应的值。
{{end}}
11. systemctl enable /etc/systemd/system/confd.service
systemctl start /etc/systemd/system/confd.service
注:后端etcd服务器配置如下:
curl http://172.16.0.204:4001/v2/keys/backend/app1 -XPUT -d value='172.16.1.45:8080'
curl http://172.16.0.204:4001/v2/keys/backend/app2 -XPUT -d value='172.16.0.204:8080'
本文出自 “一切皆有可能” 博客,请务必保留此出处http://noican.blog.51cto.com/4081966/1773834