2. 案例:页面部署(服务端拉取)
最后更新于:2022-04-02 07:42:55
### 项目需求
Web客户端从Rsync服务端拉取最新网站代码。
需求环境:3台服务器
- A为WCM服务器(Server服务端)
- B、C为Web服务器(Client服务端)
### Rsync服务部署
安装服务(依赖epel源)
```
yum install rsync -y
```
设置rsync服务开机自启动
```
systemctl enable rsyncd
```
创建rsync用户
```
useradd rsync -s /sbin/nologin -M
```
创建共享目录、改权限
```
mkdir /data/generate_page/ -p
chown -R rsync.rsync /data/generate_page/
```
将用户和密码写入密码文件、并修改访问权限
```
echo "web_rsync:web_pass" >/etc/rsync.password
chmod 600 /etc/rsync.password
#web_rsync表示用户名
#web_pass表示密码
```
编辑rsyncd.conf配置文件
```shell
uid = rsync
gid = rsync
use chroot = no
max connections = 200
timeout = 300
#log file = /var/log/rsyncd.log
[webpage]
path=/data/generate_page/
ignore errors
read only=no
list=no
exclude=lost+found/
hosts allow=192.168.0.0/16
auth users=web_rsync
secrets file=/etc/rsync.password
```
注释
```
uid = rsync --rsync 用户 (默认是nobody)
gid = rsync --rsync 用户 (默认是nobody)
use chroot = no
max connections = 200 --最大连接数 有多少客户端能连接
timeout = 300 --连接超时
[webpage] --模块名字
path = /data/generate_page/ --服务端共享的目录(可以理解为NFS的共享目录)
ignore errors -- 忽略错误
read only = false --可写
list = false --不容许列表
hosts allow = 192.168.0.0/16 --容许的主机段
auth users = web_rsync --连接的用户(虚拟用户,非系统用户)
secrets file = /etc/rsync.password --用户对应的密码文件(将密码写入到文件中,省去手敲的麻烦)
```
### 客户端配置步骤:(需安装rsync)
在客户端将密码写入密码文件、并修改访问权限,只放入密码,不用用户名。
```
echo "web_pass" >/etc/rsync.password
chmod 600 /etc/rsync.password
```
#### 客户端从服务器端拉取
需要输入密码的命令:
```
rsync -avz --delete web_rsync@192.168.0.43::webpage/ /data/static/
Password:
#rsync_backup@192.168.106.135 --服务器端用户和IP地址
#backup/ --服务器端模块名字(框目录)
#/opt/ --拉到本地文件夹
#password-file=/etc/rsync.password --虚拟用户(rsync_backup)的密码
```
使用密码文件的命令:
```
rsync -avz --delete web_rsync@192.168.0.43::webpage/ /data/static/ --password-file=/etc/rsync.password
```
';