整体目录如下:
study@study:~/文档/ansible-examples$ tree Splash_Load_balancing_cluster
Splash_Load_balancing_cluster
├── group_vars
│ └── all
├── roles
│ ├── common
│ │ ├── files
│ │ │ ├── CentOS-Base.repo
│ │ │ ├── docker-ce.repo
│ │ │ ├── epel.repo
│ │ │ ├── ntp.conf
│ │ │ └── RPM-GPG-KEY-EPEL-7
│ │ ├── tasks
│ │ │ └── main.yml
│ │ └── templates
│ ├── docker
│ │ ├── handlers
│ │ │ └── main.yml
│ │ ├── tasks
│ │ │ └── main.yml
│ │ └── templates
│ │ └── daemon.json.j2
│ ├── haproxy
│ │ ├── handlers
│ │ │ └── main.yml
│ │ ├── tasks
│ │ │ └── main.yml
│ │ └── templates
│ │ └── haproxy.cfg.j2
│ └── splash
│ ├── files
│ │ ├── filters
│ │ │ └── default.txt
│ │ ├── js-profiles
│ │ ├── lua_modules
│ │ └── proxy-profiles
│ │ └── proxy.ini
│ └── tasks
│ └── main.yml
├── site.retry
└── site.yml
Group_vars: 里面定义全局使用的变量
Roles: 存放所有的规则目录
Roles/common :所有服务器初始化配置部署
Roles/common/filters :需要使用的文件或者文件夹
Roles/common/task:部署任务(main.yml为入口必须要有)
Roles/common/templates :配置模板(jinja2模板语法 用于可变更的配置文件,可获取定义在Group_vars中的变量)
Roles/Docker :Docker的安装配置
Roles/HAproxy : HAproxy的负载均衡配置
Roles/Splash : Splash的镜像拉取配置部署以及启动
site.yml : 启动入口
使用方法:
在你的Inventory文件定义好主机分组:
必须包括HaProxy、和Docker两个分组如下:
主控端新建SSH秘钥并发布到你你需要配置的所有主机!!!!(一定要注意如果本机当前工作用户在远程主机不存在额时候,需要指定remote_user这个参数):
好了开始执行:
效果就像这样:
静静等着跑完 就可以愉快的使用啦 ! 需要增加节点的话直接把IP加载Docker分组下 重新执行一遍就可以了!
需要注意如果SSH非默认的22端口还需要指定你的端口号!怎么指定 看看文档去
以上完毕!!!