一键部署自己docusaurus网站


一键部署自己docusaurus网站

image-20240323173814986

目录

[toc]

环境

CentOS Linux release 7.9.2009 (Core)

ecs名称:docusaurus-wiki

配置规格:2c 2g 40g  ESSD Entry云盘 40GiB (2120 IOPS) 

#说明
一下涉及软件均存放在本地

image-20240323150507086

背景

写次文档的背景是因为,在ecs(centos7.9)安装nodejs v18.10时,报错,最后升级了gcc/glibc库,导致ecs下中文显示一串问号乱码问题……

最后不得已重装了ecs系统,然后再次部署了所有服务……

image-20240323175951946

涉及代码

D:\BaiduSyncdisk\博客配置核心数据\1、ecs配置

D:\BaiduSyncdisk\博客配置核心数据\2、win10配置

image-20240323174014251

站点目录

onedayxyy.cn

https://onedayxyy.cn 网站

http://onedayxyy.cn:5000 相册

http://onedayxyy.cn/musics 音乐

http://onedayxyy.cn:3080 网址导航

写在前面

一定不要在博客服务器上瞎测试,不然系统搞奔溃了,很难搞的!!!

本实验文档为重新在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 ~]# 

符合预期:

image-20240323075704657

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

image-20240323175445479

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]# 

image-20240323175111166

image-20240323175429500

5、部署music(前端)

mkdir -p /musics

#musics-2024.3.23传到/root/musics里就好:

image-20240323175140779

image-20240323175416985

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
    
 #将之前已经备份好的数据导入即可:   

image-20240323175347036

image-20240323175402074

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

剩余部分看文档就好:

image-20240323175602960

image-20240323175637107

FAQ

备份数据

1、win10本地docusaurus配置数据:

(1)git保存

(2)每周一全量自动备份到指定目录:D:\BaiduSyncdisk\博客配置核心数据\2、win10配置

image-20240323140830315

image-20240323173413149

image-20240323173428093

image-20240323173459803

2、ecs上服务部署数据:

存放在百度网盘同步空间:D:\BaiduSyncdisk\博客配置核心数据\1、ecs配置

image-20240323171359614

关于自己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。

image-20230107215114763

🍀 微信公众号

《云原生架构师实战》

image-20230107215126971

🍀 个人博客站点

https://onedayxyy.cn/

🍀 语雀

https://www.yuque.com/xyy-onlyone

🍀 csdn

https://blog.csdn.net/weixin_39246554?spm=1010.2135.3001.5421

image-20230107215149885

🍀 知乎

https://www.zhihu.com/people/foryouone

image-20230107215203185

最后

好了,关于本次就到这里了,感谢大家阅读,最后祝大家生活快乐,每天都过的有意义哦,我们下期见!

image-20240323175725857


文章作者: hg
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 hg !
  目录