芝麻HTTP:批量部署Splash負載集羣

安裝Ansible:

看官方文檔去:http://www.ansible.com.cn/index.htmlhtml

好像這個主控端不支持Windows? 你們虛擬機裝個Ubuntu吧。python

閒話少扯直接上乾貨:

總體目錄以下:linux

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: 裏面定義全局使用的變量docker

Roles: 存放全部的規則目錄json

Roles/common :全部服務器初始化配置部署服務器

Roles/common/filters :須要使用的文件或者文件夾併發

Roles/common/task:部署任務(main.yml爲入口必需要有)app

Roles/common/templates :配置模板(jinja2模板語法 用於可變動的配置文件,可獲取定義在Group_vars中的變量)負載均衡

Roles/Docker :Docker的安裝配置lua

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分組下 從新執行一遍就能夠了!

相關文章
相關標籤/搜索