1. 程式人生 > >ansible自動化部署50-100臺規模企業級架構

ansible自動化部署50-100臺規模企業級架構

ansible自動化

1、項目規劃:搭建50-100臺規模的集群實戰設計方案

2、利用多臺服務器進行cobbler無人值守裝機

3、管理機(yum,rpm,ntp,pptp,jumpserver,ssh key,ansible,saltstack)

4、搭建backup(rsync 這個集群定時備份)

5、共享存儲nfs01(nfs服務、實時同步(sersync+rsync)

6、獨立的MySQL數據庫服務

7、LNMP web服務(nginx+php,用戶文件掛到存儲,文本數據放到DB,優化)

8、NGINX 反向代理負載均衡(nginx)

9、利用keepalive實現負載均衡集群高可用

10、搭建yum倉庫,定制rpm軟件包,提供整個集群中所需軟件

11、利用zabbix進行全網監控


這裏是在虛擬機上進行試驗,受限制沒辦法開那麽多機器,但是思路和具體的方法就是這樣

至於多少臺服務器,那只是一個數字!

- hosts: daya

tasks:

- name: yum client

script: /server/scripts/yum_client.sh 這個腳本就具體內容如下:

- name: hosts copy

copy: src=/etc/hosts dest=/etc/hosts force=yes

[root@m01 ansible-playbook]# cat /server/scripts/yum_client.sh 修改所有機器yum源指向管理機

#!/bin/bash

#by daya at 2018


mkdir /yum_bak

cd /etc/yum.repos.d/

mv *.repo /yum_bak

cat >/etc/yum.repos.d/local.repo<<EOF

[local]

name=Server

baseurl=http://10.0.0.61

enabled=1

gpgcheck=0

EOF

yum clean all

##################web集群###############

- hosts: 172.16.1.17

tasks:

- name: nginx

yum: name=nginx,php state=installed

- name: conf

copy: src=/server/scripts/nginx.conf dest=/application/nginx/conf/ force=yes

- name: key

copy: src=/tmp/key dest=/application/nginx/conf/ mode=push force=yes

###################mysql數據庫#################

- hosts: 172.16.1.51

tasks:

- name: install

yum: name=mariadb-server state=installed

- name: start

service: name=mariadb state=restarted

##################nfs共享存儲#################

- hosts: 172.16.1.31

tasks:

- name: install software

yum: name=nfs-utils,rpcbind state=installed

- name: put profile

copy: src=/tmp/exports dest=/etc/exports

- name: mkdir /data/

file: dest=/data/ state=directory owner=nfsnobody group=nfsnobody

- name: mkdir /data/

file: dest=/data/www state=directory owner=nfsnobody group=nfsnobody

- name: mkdir /data/

file: dest=/data/bbs state=directory owner=nfsnobody group=nfsnobody

- name: mkdir /data/

file: dest=/data/blog state=directory owner=nfsnobody group=nfsnobody

- name: start server

service: name=rpcbind state=restarted

- name: service nfs

service: name=nfs state=restarted

- name: www

copy: src=/server/tools/html/ dest=/data/

###################web集群######################

- hosts: 172.16.1.17

tasks:

- name: yum

yum: name=rpcbind,nfs-utils state=installed

- name: mount

mount: src=172.16.1.31:/data/www path=/application/nginx/html/www fstype=nfs state=mounted

- name: mount

mount: src=172.16.1.31:/data/bbs path=/application/nginx/html/bbs fstype=nfs state=mounted

- name: mount

mount: src=172.16.1.31:/data/blog path=/application/nginx/html/blog fstype=nfs state=mounted

- name: start nginx

shell: /application/nginx/sbin/nginx

- name: start php

shell: /application/php/sbin/php-fpm

#################unzip www.bbs.blog站點目錄###########

- hosts: 172.16.1.31

tasks:

- name: unzip

unarchive: src=/data/www.tar.gz dest=/data/www/ copy=no

- name: unzip

unarchive: src=/data/bbs.tar.gz dest=/data/bbs/ copy=no

- name: unzip

unarchive: src=/data/blog.tar.gz dest=/data/blog/ copy=no

#################lb負載均衡集群#######################

- hosts: 172.16.1.5

tasks:

- name: yum

yum: name=nginx,keepalived state=installed

- name: conf

copy: src=/tmp/nginx.conf dest=/application/nginx/conf/

- name: key

copy: src=/tmp/key dest=/application/nginx/conf/

- name: start nginx

shell: /application/nginx/sbin/nginx

#################keepalived.con高可用配置文件#####f########

- hosts: 172.16.1.5

tasks:

- name: conf

copy: src=/tmp/keepalived.conf dest=/etc/keepalived/ force=yes

- hosts: 172.16.1.6

tasks:

- name: conf

copy: src=/server/scripts/keepalived.conf dest=/etc/keepalived/ force=yes

- hosts: 172.16.1.5

tasks:

- name: jiankong.sh

copy: src=/server/scripts/jiankong.sh dest=/server/scripts/ force=yes mode=0755

- name: start

service: name=keepalived state=started

##################backup備份服務器##################

- hosts: 172.16.1.41

tasks:

- name: install rsync

yum: name=rsync state=installed

- name: useradd rsync

user: name=rsync shell=/sbin/nologin

- name: mkdir /backup

file: dest=/backup/ state=directory owner=rsync group=rsync

- name: touch passswd

copy: content=rsync_backup:123456 dest=/etc/rsync.passwd mode=0600

- name: copy profile

copy: src=/server/scripts/rsyncd.conf dest=/etc/rsyncd.conf

- name: start rsync

command: rsync --daemon

##################install sersyncd實時同步軟件###########

- hosts: 172.16.1.31

tasks:

- name: install rsync

yum: name=rsync,sersyncd state=installed

- name: copy profile

copy: src=/server/scripts/rsyncd.conf dest=/etc/rsyncd.conf

- name: touch passswd

copy: content=123456 dest=/etc/rsync.passwd mode=0600

- name: start rsync

command: rsync --daemon


ansible自動化部署50-100臺規模企業級架構