前言:
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.www58058.com/102732