前言:
ansible作为一款灵活、高效、功能丰富的自动化部署工具在企业运维管理中备受推崇。本文演示使用ansible部署小型web框架,实现高可用、负载均衡的目标。
目标环境拓扑:
环境介绍:
前端代理层由两台nginx实现,并安装keepalived实现地址滑动达成高可用。
web层由两套Apache+PHP+WordPress 构建应用环境。数据层由一台mariadb组成,篇幅限制这里并没有做数据库主从复制、读写分离(实际环境数据库一定要实现这两项功能)。
IP一览:
192.168.158.7 ansible 管理客户端
192.168.158.17 VS1 nginx+keepalived
192.168.158.27 VS2 nginx+keepalived
192.168.158.37 RS2 apache+php-fpm+wordpress
192.168.158.47 RS2 apache+php-fpm+wordpress
192.168.158.47 mariadb-server
一、环境准备
1.管理端安装ansible,配置ssh秘钥使主机间实现基于秘钥的认证
ssh-keygen
ssh-copy-id 192.168.158.7
scp -r .ssh 192.168.158.17:/root/
scp -r .ssh 192.168.158.27:/root/
scp -r .ssh 192.168.158.37:/root/
scp -r .ssh 192.168.158.47:/root/
scp -r .ssh 192.168.158.57:/root/
2.编辑ansible的hosts文件,定义所有的主机
vim /etc/ansible/hosts

3.为所有主机同步时间
ansible all -a ‘ntpdate 172.20.0.1’

4.创建ansible相关角色的目录
mkdir -pv /etc/ansible/roles/{mysql,web,nginx}/{files,tasks,templates,vars,handlers,meta}
二、配置web的playbook:
1.创建tasks文件

2.创建handlers

3.添加要复制过去的配置文件
放在/etc/ansible/roles/web/files/下 ① WordPress目录 ② httpd.conf ③fastcgi.conf④www.conf#从别的地方考过来
tar xvf wordpress-4.9.4-zh_CN.tar.gz -C /etc/ansible/roles/web/files/
cp /etc/httpd/conf/http.conf /etc/ansible/roles/web/files/
4.修改WordPress连接数据库的配置文件


5.添加web主剧本

6.测试,没问题的话就下一步
ansible-playbook -C /etc/ansible/web.yml

三、配置代理层
1.添加task任务

2.添加handlers

3.准备template文件 ①keepalived.conf.j2 ②nginx.conf.j2
4.修改keepalived模板文件



5.修改nginx模板文件


6.添加nginx主剧本

7.测试,没问题的话就下一步
ansible-playbook -C /etc/ansible/nginx.yml

四、配置mariadb
1.配置mariadb的任务清单

2.设置files文件
vim roles/mysql/files/mysql.sql
CREATE DATABASE wpdb;
GRANT ALL ON wpdb.* TO ‘wpuser’@’192.168.158.%’ IDENTIFIED BY ‘centos’;
3.添加mysql主剧本

4.测试,没问题的话就下一步
ansible-playbook -C /etc/ansible/mysql.yml
五、执行ansible
cd /etc/ansible
ansible-playbook web.yml
ansible-playbook nginx.yml
ansible-playbook mysql.yml
访问页面http://192.168.158.88/wordpress
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/102732

