目录
- [root@database ~]# mysql
-
- mysql> use wordpress;
-
- mysql> select * from wp_posts\G
/usr/share/nginx/html/wp-content/uploads/
是固定位置,其后的2023/01
是年和月目录。每个月上传的图片,都会保存到相应的月份目录。- [root@web1 html]# ls /usr/share/nginx/html/wp-content/uploads/2023/01/
-
- snow.jpg
虚拟机ip与名称:nfs 192.168.88.31
- [root@pubserver project01]# vim inventory
-
- [webservers]
-
- web1 ansible_host=192.168.88.11
-
- web2 ansible_host=192.168.88.12
-
- web3 ansible_host=192.168.88.13
-
-
- [dbs]
-
- database ansible_host=192.168.88.21
-
-
- [storages]
-
- nfs ansible_host=192.168.88.31
-
-
-
- [all:vars]
-
- ansible_ssh_user=root
-
- ansible_ssh_pass=a
- # 1. 配置yum
-
- [root@pubserver project01]# ansible-playbook 01-upload-repo.yml
-
-
- # 2. 配置nfs服务
-
- [root@pubserver project01]# vim 08-config-nfs.yml
-
- ---
-
- - name: config nfs
-
- hosts: nfs
-
- tasks:
-
- - name: install nfs # 安装nfs
-
- yum:
-
- name: nfs-utils
-
- state: present
-
-
- - name: mkdir /nfs_root # 创建共享目录
-
- file:
-
- path: /nfs_root
-
- state: directory
-
- mode: "0755"
-
-
- - name: nfs share # 修改配置文件
-
- lineinfile:
-
- path: /etc/exports
-
- line: '/nfs_root 192.168.88.0/24(rw)'
-
-
- - name: start service # 循环启动服务
-
- service:
-
- name: "{{item}}"
-
- state: started
-
- enabled: yes
-
- loop:
-
- - rpcbind # nfs服务依赖rpcbind服务
-
- - nfs-server
-
-
- [root@pubserver project01]# ansible-playbook 08-config-nfs.yml
-
-
- # 3. 查看共享输出
-
- [root@nfs ~]# showmount -e
-
- Export list for nfs:
-
- /nfs_root 192.168.88.0/24
- # 1. 重新下载web1的html目录
-
- [root@pubserver project01]# cp 06-fetch-web1.yml 09-fetch-web1.yml
-
- ---
-
- - name: copy web
-
- hosts: web1
-
- tasks:
-
- - name: compress html # 压缩html目录到/root下
-
- archive:
-
- path: /usr/share/nginx/html
-
- dest: /root/html2.tar.gz
-
- format: gz
-
-
- - name: download html
-
- fetch:
-
- src: /root/html2.tar.gz # 下载压缩文件
-
- dest: files/
-
- flat: yes
-
-
- [root@pubserver project01]# ansible-playbook 09-fetch-web1.yml
-
-
- # 2. 释放压缩包到nfs服务器
-
- [root@pubserver project01]# cp 07-deploy-web23.yml 10-deploy-nfs.yml
-
- [root@pubserver project01]# vim 10-deploy-nfs.yml
-
- ---
-
- - name: deploy nfs
-
- hosts: nfs
-
- tasks:
-
- - name: unarchive to web # 将控制端压缩文件解压到指定位置
-
- unarchive:
-
- src: files/html2.tar.gz
-
- dest: /nfs_root/
-
-
- [root@pubserver project01]# ansible-playbook 10-deploy-nfs.yml
-
-
- # 3. 清除web服务器的html目录
-
- [root@pubserver project01]# vim 11-rm-html.yml
-
- ---
-
- - name: rm html
-
- hosts: webservers
-
- tasks:
-
- - name: rm html
-
- file:
-
- path: /usr/share/nginx/html
-
- state: absent
-
-
-
- - name: create html
-
- file:
-
- path: /usr/share/nginx/html
-
- state: directory
-
- owner: apache
-
- group: apache
-
- mode: "0755"
-
-
- [root@pubserver project01]# ansible-playbook 11-rm-html.yml
-
-
- # 4. 挂载nfs到web服务器
-
- [root@pubserver project01]# vim 12-mount-nfs.yml
-
- ---
-
- - name: mount nfs
-
- hosts: webservers
-
- tasks:
-
- - name: install nfs
-
- yum:
-
- name: nfs-utils
-
- state: present
-
-
-
- - name: mount nfs
-
- mount:
-
- path: /usr/share/nginx/html
-
- src: 192.168.88.31:/nfs_root/html
-
- fstype: nfs
-
- state: mounted
-
-
- [root@pubserver project01]# ansible-playbook 12-mount-nfs.yml
虚拟机ip与名称:haproxy1 192.168.88.5 haproxy2 192.168.88.6
- [root@pubserver project01]# vim inventory
-
- [webservers]
-
- web1 ansible_host=192.168.88.11
-
- web2 ansible_host=192.168.88.12
-
- web3 ansible_host=192.168.88.13
-
-
- [dbs]
-
- database ansible_host=192.168.88.21
-
-
- [storages]
-
- nfs ansible_host=192.168.88.31
-
-
- [lb]
-
- haproxy1 ansible_host=192.168.88.5
-
- haproxy2 ansible_host=192.168.88.6
-
-
- [all:vars]
-
- ansible_ssh_user=root
-
- ansible_ssh_pass=a
- # 1. 配置yum
-
- [root@pubserver project01]# ansible-playbook 01-upload-repo.yml
-
-
- # 2. 配置调度服务器
-
- [root@pubserver project01]# vim 13-install-lb.yml
-
- ---
-
- - name: install lb
-
- hosts: lb
-
- tasks:
-
- - name: install pkg
-
- yum:
-
- name: haproxy,keepalived
-
- state: present
-
-
- [root@pubserver project01]# ansible-playbook 13-install-lb.yml
-
-
- # 3. 修改配置文件并启动服务
-
- [root@pubserver project01]# vim 14-config-lb.yml
-
- ---
-
- - name: config haproxy
-
- hosts: lb
-
- tasks:
-
- - name: rm lines
-
- shell: sed -i '64,$d' /etc/haproxy/haproxy.cfg
-
-
- - name: add lines
-
- blockinfile:
-
- path: /etc/haproxy/haproxy.cfg
-
- block: |
-
- listen wordpress
-
- bind 0.0.0.0:80
-
- balance roundrobin
-
- server web1 192.168.88.11:80 check inter 2000 rise 2 fall 5
-
- server web2 192.168.88.12:80 check inter 2000 rise 2 fall 5
-
- server web3 192.168.88.13:80 check inter 2000 rise 2 fall 5
-
-
- listen mon
-
- bind 0.0.0.0:1080
-
- stats refresh 30s
-
- stats uri /mon
-
- stats auth admin:admin
-
-
- - name: start service
-
- service:
-
- name: haproxy
-
- state: started
-
- enabled: yes
-
-
- [root@pubserver project01]# ansible-playbook 14-config-lb.yml
-
-
- # 4. haproxy1配置keepalived,实现高可用集群
-
- [root@haproxy1 ~]# vim /etc/keepalived/keepalived.conf
-
- ...略...
-
- 12 router_id haproxy1 # 为本机取一个唯一的id
-
- 13 vrrp_iptables # 自动开启iptables放行规则
-
- ...略...
-
- 20 vrrp_instance VI_1 {
-
- 21 state MASTER # 主服务器状态是MASTER
-
- 22 interface eth0
-
- 23 virtual_router_id 51
-
- 24 priority 100
-
- 25 advert_int 1
-
- 26 authentication {
-
- 27 auth_type PASS
-
- 28 auth_pass 1111
-
- 29 }
-
- 30 virtual_ipaddress {
-
- 31 192.168.88.80 # vip地址
-
- 32 }
-
- 33 }
-
- # 以下全部删除
-
-
- # 5. haproxy2配置keepalived
-
- [root@haproxy1 ~]# scp /etc/keepalived/keepalived.conf 192.168.88.6:/etc/keepalived/
-
- [root@haproxy2 ~]# vim /etc/keepalived/keepalived.conf
-
- ...略...
-
- 12 router_id haproxy2 # 为本机取一个唯一的id
-
- 13 vrrp_iptables # 自动开启iptables放行规则
-
- ...略...
-
- 20 vrrp_instance VI_1 {
-
- 21 state BACKUP # 备份服务器状态是BACKUP
-
- 22 interface eth0
-
- 23 virtual_router_id 51
-
- 24 priority 80 # 备份服务器优先级低于主服务器
-
- 25 advert_int 1
-
- 26 authentication {
-
- 27 auth_type PASS
-
- 28 auth_pass 1111
-
- 29 }
-
- 30 virtual_ipaddress {
-
- 31 192.168.88.80
-
- 32 }
-
- 33 }
-
-
-
- # 6. 启动服务
-
- [root@haproxy1 ~]# systemctl enable keepalived.service --now
-
- [root@haproxy2 ~]# systemctl enable keepalived.service --now
-
-
- # 7. 验证。haproxy1上出现VIP。客户端访问http://192.168.88.80即可
-
- [root@haproxy1 ~]# ip a s | grep 192
-
- inet 192.168.88.5/24 brd 192.168.88.255 scope global noprefixroute eth0
-
- inet 192.168.88.80/32 scope global eth0
[root@myhost ~]# echo "192.168.88.80 www.danei.com" >> /etc/hosts
C:\windows\System32\drivers\etc\hosts
添加名称解析192.168.88.11
。通过以下方式修复它:- # 在nfs服务器上修改配置文件
-
- [root@nfs ~]# vim /nfs_root/html/wp-config.php
-
- # define('DB_NAME', 'wordpress')它的上方添加以下两行:
-
- define('WP_SITEURL', 'http://www.danei.com');
-
- define('WP_HOME', 'http://www.danei.com');