芝麻HTTP:批量部署Splash负载集群
安装Ansible:
看官方文档去:http://www.ansible.com.cn/index.html
好像这个主控端不支持Windows? 大家虚拟机装个Ubuntu吧。
闲话少扯直接上干货:
整体目录如下:
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- │ │ ├── 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两个分组如下:
study@study:~/文档/ansible-examples$ cat /etc/ansible/inventory/splash [docker] 1.1.1.1 [haproxy] 10.253.20.25 [splash_ports]
主控端新建SSH秘钥并发布到你你需要配置的所有主机!!!!(一定要注意如果本机当前工作用户在远程主机不存在额时候,需要指定remote_user这个参数):
study@study:~/文档/ansible-examples$ cat /etc/ansible/ansible.cfg [defaults] inventory= /etc/ansible/inventory/ remote_user=root
好了开始执行:
study@study:~/文档/ansible-examples/Splash_Load_balancing_cluster$ ansible-playbook site.yml
效果就像这样:
PLAY [all] ********************************************************************************************************************************************************************************** TASK [Gathering Facts] ********************************************************************************************************************************************************************** ok: [10.1.4.101] ok: [10.1.4.100] TASK [common : Copy the CentOS repository definition] *************************************************************************************************************************************** ok: [10.1.4.100] ok: [10.1.4.101] TASK [common : Copy the Docker repository definition] *************************************************************************************************************************************** ok: [10.1.4.100] ok: [10.1.4.101] TASK [common : Create the repository for EPEL] ********************************************************************************************************************************************** ok: [10.1.4.100] ok: [10.1.4.101] TASK [common : Create the GPG key for EPEL] ************************************************************************************************************************************************* ok: [10.1.4.100] ok: [10.1.4.101] TASK [common : Firewalld service stop] ****************************************************************************************************************************************************** ok: [10.1.4.100] ok: [10.1.4.101] TASK [common : Chronyd service stop] ******************************************************************************************************************************************************** ok: [10.1.4.100] ok: [10.1.4.101] TASK [common : Install Ansible Base package] ************************************************************************************************************************************************ ok: [10.1.4.100] => (item=['libselinux-python', 'libsemanage-python', 'ntp']) ok: [10.1.4.101] => (item=['libselinux-python', 'libsemanage-python', 'ntp']) TASK [common : Configure SELinux to disable] ************************************************************************************************************************************************ [WARNING]: SELinux state change will take effect next reboot ok: [10.1.4.100] ok: [10.1.4.101] TASK [common : Change TimeZone] ************************************************************************************************************************************************************* ok: [10.1.4.100] ok: [10.1.4.101] TASK [common : Copy NTP conf] *************************************************************************************************************************************************************** ok: [10.1.4.100] ok: [10.1.4.101] TASK [common : NTP Start] ******************************************************************************************************************************************************************* ok: [10.1.4.100] ok: [10.1.4.101] PLAY [docker] ******************************************************************************************************************************************************************************* TASK [Gathering Facts] ********************************************************************************************************************************************************************** ok: [10.1.4.101] TASK [docker : Install Docker package] ****************************************************************************************************************************************************** ok: [10.1.4.101] => (item=['yum-utils', 'device-mapper-persistent-data', 'lvm2', 'docker-ce']) TASK [docker : Start Docker] **************************************************************************************************************************************************************** ok: [10.1.4.101] TASK [docker : Create Docker Speed Configuration file] ************************************************************************************************************************************** ok: [10.1.4.101] TASK [docker : Restart Docker] ************************************************************************************************************************************************************** changed: [10.1.4.101] TASK [splash : pull splash] ***************************************************************************************************************************************************************** changed: [10.1.4.101] TASK [splash : Copy Splash module] ********************************************************************************************************************************************************** ok: [10.1.4.101] => (item=filters) ok: [10.1.4.101] => (item=js-profiles) ok: [10.1.4.101] => (item=lua_modules) ok: [10.1.4.101] => (item=proxy-profiles)
静静等着跑完 就可以愉快的使用啦 ! 需要增加节点的话直接把IP加载Docker分组下 重新执行一遍就可以了!
芝麻HTTP:批量部署Splash负载集群的更多相关文章
- 小白学爬虫-批量部署Splash负载集群
整体目录如下: study@study:~/文档/ansible-examples$ tree Splash_Load_balancing_cluster Splash_Load_balancing_ ...
- 本文介绍如何使用 Docker Swarm 来部署 Nebula Graph 集群,并部署客户端负载均衡和高可用
本文作者系:视野金服工程师 | 吴海胜 首发于 Nebula Graph 论坛:https://discuss.nebula-graph.com.cn/t/topic/1388 一.前言 本文介绍如何 ...
- kubernetes kubeadm部署高可用集群
k8s kubeadm部署高可用集群 kubeadm是官方推出的部署工具,旨在降低kubernetes使用门槛与提高集群部署的便捷性. 同时越来越多的官方文档,围绕kubernetes容器化部署为环境 ...
- 使用Docker构建持续集成与自动部署的Docker集群
为什么使用Docker " 从我个人使用的角度讲的话 部署来的更方便 只要构建过一次环境 推送到镜像仓库 迁移起来也是分分钟的事情 虚拟化让集群的管理和控制部署都更方便 hub.docke ...
- 多机部署redis5.0集群环境
redis5.0集群部署 一.集群介绍 Redis 集群是一个可以在多个 Redis 节点之间进行数据共享的设施(installation). Redis 集群不支持那些需要同时处理多个键的 Redi ...
- 使用Minikube部署本地Kubernetes集群(二十八)
前言 使用Minikube部署本地k8s集群相对比较简单,非常推荐将其用于本地k8s开发环境,唯一麻烦点的仅仅是网络问题. 在本篇教程中,我们使用了国内的镜像来完成本地k8s集群的搭建.如果搭建过程中 ...
- Kubernetes 学习笔记(二):本地部署一个 kubernetes 集群
前言 前面用到过的 minikube 只是一个单节点的 k8s 集群,这对于学习而言是不够的.我们需要有一个多节点集群,才能用到各种调度/监控功能.而且单节点只能是一个加引号的"集群&quo ...
- Apache 2.4.12 64位+Tomcat-8.0.32-windows-x64负载集群方案
上次搞了Apache 2.2的集群方案,但是现在自己的机器和客户的服务器一般都是64位的,而且tomcat已经到8了.重新做Apache 2.4.12 64位+Tomcat-8.0.32-window ...
- 部署rabbitMQ镜像集群实战测试
部署rabbitMQ镜像集群 版本信息 rabbit MQ: 3.8.5 Erlang: 官方建议最低21.3 推荐22.x 这里用的是23 环境准备 主机规划 主机 节点 172.16.14.3 磁 ...
随机推荐
- python监控接口请求
#!/usr/bin/env python #coding=utf8 import time,os,sched,urllib,httplib import smtplib import string ...
- [置换群&Polya计数]【学习笔记】
昨天看了一下午<组合数学>最后一章然后晚上去看别人的blog发现怎么都不一样,我一定是学了假的polya 其实是一样的,只不过<组合数学>没有太多的牵扯群论.于是又从群论角度学 ...
- C++数据个数未知情况下的输入方法
我们经常需要输入一串数,而数据个数未知.这时候就不能以数据个数作为输入是否结束的判断标准了. 这种情况下,我们可以用以下两种方法输入数据. 方法一:判断回车键(用getchar()=='\n'即可判断 ...
- Docker安装Jenkins
1.下载镜像 docker pull jenkins 2.生成一个容器 docker run -d --name myjenkins -p 8081:8080 -p 50000:50000 --vo ...
- Filezilla Server日志文件
Filezilla Server版本:0.9.41. Filezilla Server日志文件在软件安装目录下Logs目录下. 但Filezilla Server默认不开始日志记录,如何开启filez ...
- 【实用】需要收藏备用的JQuery代码片段
1 元素屏幕居中 jQuery.fn.center = function () { this.css("position","absolute"); this. ...
- Java经典编程题50道之三
打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身.例如:153是一个"水仙花数",因为153=1的三次 ...
- docker数据库
拉取镜像 # docker pull mysql: 创建docker数据库容器 # docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASS ...
- B2B2C商品模块数据库设计
kentzhu: 在电子商务里,一般会提到这样几个词:商品.单品.SPU.SKU 简单理解一下,SPU是标准化产品单元,区分品种:SKU是库存量单位,区分单品:商品特指与商家有关的商品,可对应多个SK ...
- Jquery就是这么简单
什么是Jquery? Jquey就是一款跨主流浏览器的JavaScript库,简化JavaScript对HTML操作 就是封装了JavaScript,能够简化我们写代码的一个JavaScript库 为 ...