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 <<EOF [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 <<EOF 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 <<EOF [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
ppc64le centos7 安装confd 并结合etcd实现haproxy的高可用
原文地址:http://noican.blog.51cto.com/4081966/1773834