芝麻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 磁 ...
随机推荐
- require和require_once的区别
require 的使用方法如 require("./inc.php"); .通常放在 PHP 程式的最前面,PHP 程式在执行前,就会先读入 require 所指定引入的档案,使它 ...
- 文件锁FileLock
1.文件锁的定义 FileLock是文件锁,进程锁,用于进程间并发,控制不同程序(JVM)对同一文件的并发访问. FileLock是java 1.4 版本后出现的一个类,它可以通过对一个可写文件(w) ...
- 夏令营讲课内容整理 Day 6 Part 1.
Day6讲了三个大部分的内容. 1.STL 2.初等数论 3.倍增 Part1主要与STL有关. 1.概述 STL的英文全名叫Standard Template Library,翻译成中文就叫标准 ...
- 简单实现ASP.Net MVC网页播放音乐
<div> @*音乐*@ <audio id="warning-sound" loop="loop" src="/Areas/Map ...
- ubuntu下smb的配置
PS: 转自Ubuntu中文论坛 -------------------------------------------------------------------------------- ...
- Leetcode刷题C#版之 Length of Last Word
题目: Given a string s consists of upper/lower-case alphabets and empty space characters ' ', return t ...
- Qt滑动条设计与实现
没有找到Qt的滑动条控件,所以自己写了一个,能够实现亮度调节.音量调节等功能. 效果如下图: 主要设计思路: 有些调节功能如对比度是有负值的,所以需要能对滑动条的数值范围进行设置,不局限于0~100 ...
- Linux双网卡搭建NAT服务器之网络应用
一:拓扑.网络结构介绍 Eth1 外网卡的IP 地址, GW和DNS 按照提供商提供配置.配置如下: IP:114.242.25.18 NETMASK:255.255.255.0 GW:114.242 ...
- js到底new了点啥
在最开始学习js的时候,我看书上写着,创建一个数组,一个对象通常使用new,如下: var arr=new Array(),//arr=[] obj=new Object();//obj={} 到了后 ...
- Java中Excel表格的上传与下载
详见:http://blog.csdn.net/lzh657083979/article/details/73252585