一键部署自己docusaurus网站
目录
[toc]
环境
CentOS Linux release 7.9.2009 (Core)
ecs名称:docusaurus-wiki
配置规格:2c 2g 40g ESSD Entry云盘 40GiB (2120 IOPS)
#说明
一下涉及软件均存放在本地
背景
写次文档的背景是因为,在ecs(centos7.9)安装nodejs v18.10时,报错,最后升级了gcc/glibc库,导致ecs下中文显示一串问号乱码问题……
最后不得已重装了ecs系统,然后再次部署了所有服务……
涉及代码
D:\BaiduSyncdisk\博客配置核心数据\1、ecs配置
D:\BaiduSyncdisk\博客配置核心数据\2、win10配置
站点目录
onedayxyy.cn
写在前面
一定不要在博客服务器上瞎测试,不然系统搞奔溃了,很难搞的!!!
本实验文档为重新在ecs上部署博客等一系列服务所需的步骤及代码。
基础配置
##配置主机名:
hostnamectl set-hostname docusaurus-wiki
bash
##安装lrzsz服务
yum install -y lrzsz
yum install -y sl
yum install -y tree
##win10和ecs做免密,方便本地win10 脚本执行相关命令:
ssh-keygen
ssh-copy-id -i ~/.ssh/id_rsa.pub root@47.100.215.163 ##输入ecs密码
部署docker
systemctl stop firewalld
systemctl disable firewalld
systemctl stop NetworkManager
systemctl disable NetworkManager
setenforce 0
sed -i s/SELINUX=enforcing/SELINUX=disabled/ /etc/selinux/config
yum clean all
yum makecache
yum install -y net-tools
yum install -y vim
yum install -y wget
yum install -y lrzsz
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache
#yum install docker-ce -y
yum install -y yum install docker-ce-19.03.9 docker-ce-cli-19.03.9 containerd.io #指定需要安装的版本号
systemctl start docker && systemctl enable docker
docker version
docker info
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors":["https://kvuwuws2.mirror.aliyuncs.com","http://hub-mirror.c.163.com","https://dockerhub.azk8s.cn"]
}
EOF
cat /proc/sys/net/ipv4/ip_forward
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p
cat /proc/sys/net/ipv4/ip_forward
systemctl daemon-reload
systemctl restart docker
安装python3.8环境
sudo yum groupinstall "Development Tools" -y
sudo yum install openssl-devel bzip2-devel libffi-devel -y
##上传Python-3.8.6.tgz到/root
tar xzf Python-3.8.6.tgz
cd Python-3.8.6
./configure --enable-optimizations
make altinstall
python3.8 --version
1、部署rsync
# 1、安装rsync
yum install rsync -y
# 2、上传配置文件rsyncd.conf和rsyncd.passwd密码文件
# [root@docusaurus-wiki ~]# ll /etc/rsyncd.conf
# -rw-rw-rw- 1 root root 4195 Mar 19 12:43 /etc/rsyncd.conf
# [root@docusaurus-wiki ~]# ll /etc/rsyncd.passwd
# -rw------- 1 root root 24 Dec 10 22:20 /etc/rsyncd.passwd
# [root@docusaurus-wiki ~]#
chmod 600 /etc/rsyncd.passwd ##一定要配置,否则会上传报错
# 3、将 rsync 设置成开启自启,并启动
systemctl enable rsyncd
systemctl restart rsyncd
systemctl status rsyncd
## 注意:必须先部署rsync服务,本地的docusaurus-wiki生成的静态数据要完整推送到nginx的目录下才行
# https://onedayxyy.cn /root/rsync/rsync-docusaurus/build
# /hexoblog /root/rsync/rsync-hexo/public
# /musics /root/musics
## 4、创建本地rsnyc目录
mkdir -p /root/rsync/rsync-docusaurus
mkdir -p /root/rsync/rsync-hexo
## 5、本地win10上传静态数据
rsync.exe -avPzruh --delete --port 8730 --password-file=/cygdrive/D/docusaurus/resource/shell/password.txt /cygdrive/D/docusaurus/build root@47.100.215.163::cmi-docusaurus/
2、部署nginx
##1、添加nginx官方仓库
cat > /etc/yum.repos.d/nginx.repo << EOF
[nginx]
name=nginx repo
baseurl=https://nginx.org/packages/centos/\$releasever/\$basearch/
gpgcheck=0
enabled=1
EOF
##2、安装nginx
yum install nginx -y
##3、上传证书
cd /etc/nginx/
mkdir cert
##4、上传nginx.conf配置文件
##5、启动服务
systemctl restart nginx
systemctl status nginx
##6、测试:onedayxyy.cn
同步图床数据:
mkdir -p /images
#D:\BaiduSyncdisk\rsync_local\cmi-MdImages-local
rsync.exe -avPzruh --delete --port 8730 --password-file=/cygdrive/D/docusaurus/resource/shell/password.txt /cygdrive/D/BaiduSyncdisk/rsync_local/cmi-MdImages-local root@47.100.215.163::cmi-MdImages/ #从win10本地同步图床数据到ecs的/images里
[root@docusaurus-wiki ~]# cd /images/
[root@docusaurus-wiki images]# ls
cmi-MdImages-local
[root@docusaurus-wiki images]# mv cmi-MdImages-local/* /images
[root@docusaurus-wiki ~]# ls /images/|wc -l
12286
[root@docusaurus-wiki ~]#
符合预期:
3、部署Algolia搜索(docker)
##安装基础软件
yum install -y epel-release
yum install -y jq
mkdir -p /root/Algolia
cd /root/Algolia
cat > /root/Algolia/.env<< EOF
ALGOLIA_APP_ID=0R3KBTYR4U
ALGOLIA_API_KEY=a515c48b195bc86066ad48dea4464301
EOF
cat > /root/Algolia/docker.sh<< EOF
#!/bin/bash
cd /root/Algolia
docker run -itd --env-file=.env -e "CONFIG=\$(cat docsearch.json | jq -r tostring)" algolia/docsearch-scraper
EOF
chmod +x /root/Algolia/docker.sh
##配置crontab
[root@docusaurus-wiki tmp]# crontab -e
0 1,7,13,19 * * * /root/Algolia/docker.sh >> /var/log/crontab.log 2>&1
##测试
sh /root/Algolia/docker.sh
4、部署gallery-flask相册(flask+前端)
上传gallery-flask-2024.3.22.tar.gz
到/root,解压:
python3.8 -m pip install --upgrade pip
pip3.8 install flask
sh gallery-flask.sh
ps -ef|grep python
##配置开机自启:
[root@docusaurus-wiki private_shell]# cat /etc/rc.d/rc.local
#!/bin/bash
……
touch /var/lock/subsys/local
/root/shell/private_shell/gallery-flask.sh
[root@docusaurus-wiki private_shell]#
5、部署music(前端)
mkdir -p /musics
#musics-2024.3.23传到/root/musics里就好:
6、部署OneNav网站导航(docker)
docker run -itd --name="onenav" -p 3080:80 \
-v /data/onenav:/data/wwwroot/default/data \
--restart=always \
helloz/onenav:0.9.34
#将之前已经备份好的数据导入即可:
7、部署ecs监控(docker)
docker pull prom/prometheus
docker run -itd --name=prometheus --restart=always -p 9090:9090 prom/prometheus
#创建grafana数据目录
mkdir -p /opt/grafana-storage
chmod 777 -R /opt/grafana-storage
docker pull grafana/grafana
docker run -itd --name=grafana \
--restart=always \
-p 3000:3000 \
-v /opt/grafana-storage:/var/lib/grafana \
grafana/grafana
docker pull prom/node-exporter
docker run -itd --name=node-exporter \
--restart=always \
-p 9100:9100 \
-v "/proc:/host/proc:ro" \
-v "/sys:/host/sys:ro" \
-v "/:/rootfs:ro" \
prom/node-exporter
剩余部分看文档就好:
FAQ
备份数据
1、win10本地docusaurus配置数据:
(1)git保存
(2)每周一全量自动备份到指定目录:D:\BaiduSyncdisk\博客配置核心数据\2、win10配置
2、ecs上服务部署数据:
存放在百度网盘同步空间:D:\BaiduSyncdisk\博客配置核心数据\1、ecs配置
关于自己ecs是否需要快照:
==不需要,因为自己的核心数据都做了备份的,完全无需快照。==
维护原则
- 一定要注意备份好部署到ecs上各服务的核心数据配置;(包括文档和脚本输出)
- 在做重大服务部署时一定要在本地做好测试,然后再在ecs上部署服务;
crontab
[root@docusaurus-wiki ~]# crontab -l
0 1,7,13,19 * * * /root/Algolia/docker.sh >> /var/log/crontab.log 2>&1
0 8 * * * /root/shell/private_shell/onenavBackup.sh >> /var/log/crontab.log 2>&1
[root@docusaurus-wiki ~]# cat /etc/rc.d/rc.local
#!/bin/bash
……
touch /var/lock/subsys/local
/root/shell/private_shell/gallery-flask.sh
[root@docusaurus-wiki ~]#
代办
一键shell安装各服务
最好还是能打包成一个docker镜像
关于我
我的博客主旨:
- 排版美观,语言精炼;
- 文档即手册,步骤明细,拒绝埋坑,提供源码;
- 本人实战文档都是亲测成功的,各位小伙伴在实际操作过程中如有什么疑问,可随时联系本人帮您解决问题,让我们一起进步!
🍀 微信二维码
x2675263825 (舍得), qq:2675263825。
🍀 微信公众号
《云原生架构师实战》
🍀 个人博客站点
🍀 语雀
https://www.yuque.com/xyy-onlyone
🍀 csdn
https://blog.csdn.net/weixin_39246554?spm=1010.2135.3001.5421
🍀 知乎
https://www.zhihu.com/people/foryouone
最后
好了,关于本次就到这里了,感谢大家阅读,最后祝大家生活快乐,每天都过的有意义哦,我们下期见!