创建Crowi Plus
总结 or 概述
搭建CentOS,并在其上运行Crowi Plus。每天备份数据并传输至AWS。
操作系统准备完毕
请使用以下条件安装 CentOS7.4:
软件:最小安装
时区:亚洲/东京
键盘:日文
网络设置:192.168.80.15
主机名:crowiplus1
安装Docker
请参考
注册Docker存储库
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安装Docker
yum install docker-ce
systemctl start docker
docker run hello-world
安装Crowi Plus
需要Epel存储库进行pip安装。
请参照。
yum install -y epel-release
yum install -y python-pip
安裝CrowiPlus
[root@crowiplus1 crowi-plus]# yum install -y git
[root@crowiplus1 crowi-plus]# pip install docker-compose
[root@crowiplus1 crowi-plus]# git clone https://github.com/weseek/crowi-plus-docker-compose.git crowi-plus
[root@crowiplus1 crowi-plus]# cd crowi-plus
[root@crowiplus1 crowi-plus]# cp -p docker-compose.yml docker-compose.yml.orig
[root@crowiplus1 crowi-plus]# vi docker-compose.yml
[root@crowiplus1 crowi-plus]# diff docker-compose.yml docker-compose.yml.orig
[root@crowiplus1 crowi-plus]# diff docker-compose.yml.orig docker-compose.yml
9c9
< - 127.0.0.1:3000:3000 # localhost only by default
---
> - 0.0.0.0:3000:3000 # localhost only by default
23c23
< # - FILE_UPLOAD=local # activate this line if you do not want to use AWS for file upload
---
> - FILE_UPLOAD=local # activate this line if you do not want to use AWS for file upload
34a35,36
> ports:
> - 0.0.0.0:27017:27017
47c49
< - "ES_JAVA_OPTS=-Xms256m -Xmx256m" # increase amount if you have enough memory
---
> - "ES_JAVA_OPTS=-Xms512m -Xmx512m" # increase amount if you have enough memory
[root@crowiplus1 crowi-plus]# docker-compose up
作为修改项,只需要一种选项:
– 为了允许外部访问,将地址修改为0.0.0.0
– 启用本地文件上传功能
– 将MongoDB的端口也进行转发(用于备份)
– 将ElasticSearch的内存大小从256增加到512(如果有余裕的话)
最初的設定
在浏览器中访问 IP:3000 并进行初始设置。

这样就可以使用了。
备份
请参考这个。
确认需要备份的对象。
从docker-compose.yml文件中。
卷:
crowi_data:/data
mongo_configdb:/data/configdb
mongo_db:/data/db
redis_data:/data
es_data:/usr/share/elasticsearch/data
es_plugins:/usr/share/elasticsearch/plugins
./esconfig:/usr/share/elasticsearch/config
卷:
crowi_data 映射到 /data
mongo_configdb 映射到 /data/configdb
mongo_db 映射到 /data/db
redis_data 映射到 /data
es_data 映射到 /usr/share/elasticsearch/data
es_plugins 映射到 /usr/share/elasticsearch/plugins
./esconfig 映射到 /usr/share/elasticsearch/config
可以通过以下命令在本地进行验证:
docker volume ls
docker volume inspect
以下是在中文环境下的翻译:
/var/lib/docker/volumes/crowiplus_crowi_data/_data -> CrowiPlus Crowi数据目录所在的位置
/var/lib/docker/volumes/crowiplus_mongo_configdb/_data -> CrowiPlus MongoDB配置数据库目录所在的位置
/var/lib/docker/volumes/crowiplus_mongo_db/_data -> CrowiPlus MongoDB数据目录所在的位置
/var/lib/docker/volumes/crowiplus_redis_data/_data -> CrowiPlus Redis数据目录所在的位置
/var/lib/docker/volumes/crowiplus_es_data/_data -> CrowiPlus Elasticsearch数据目录所在的位置
/var/lib/docker/volumes/crowiplus_es_plugins/_data -> CrowiPlus Elasticsearch插件目录所在的位置
mongodb需要使用专用的dump工具进行备份。crowi的data卷中的部分(即上传的文件)可以使用tar进行备份,其他部分似乎不需要备份。
亚马逊云服务
在S3上创建存储桶












请确保从这个界面上确认Access ID和秘密访问密钥。
[root@crowiplus1 ~]# pip install awscli
[root@crowiplus1 crowi-plus]# aws configure
AWS Access Key ID [None]: (AWSコンソールで確認)
AWS Secret Access Key [None]: (AWSコンソールで確認)
Default region name [None]:
Default output format [None]: json
[root@crowiplus1 crowi-plus]#
[root@crowiplus1 crowi-plus]# aws s3 cp docker-compose.yml s3://crowi-backup-keisuke1208
upload: ./docker-compose.yml to s3://crowi-backup-keisuke1208/docker-compose.yml
MongoDB的备份
从安装mongodump开始执行。
[root@crowiplus1 tmp]# vi /etc/yum.repos.d/mongodb-org-3.6.repo
[root@crowiplus1 tmp]# cat /etc/yum.repos.d/mongodb-org-3.6.repo
[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
[root@crowiplus1 tmp]# yum install mongodb-org-shell
[root@crowiplus1 tmp]# yum install mongodb-org-tools
[root@crowiplus1 tmp]# mongodump --host=crowiplus1 --port=27017 -d crowi --gzip --archive=mongodbdump.gz
文件的备份上载
在Crowi上上传的文件的备份。
[root@crowiplus1 tmp]# tar cvf uploadfiles.tar /var/lib/docker/volumes/crowiplus_crowi_data/_data/uploads/
[root@crowiplus1 tmp]# gzip uploadfiles.tar
向AWS的备份
[root@crowiplus1 tmp]# ls
ks-script-2XhXhn systemd-private-9853899e514c4a73ab85d7524772b40a-vgauthd.service-0iuEtk uploadfiles.tar.gz
mongodbdump.gz systemd-private-9853899e514c4a73ab85d7524772b40a-vmtoolsd.service-BVVso8 yum.log
[root@crowiplus1 tmp]#
[root@crowiplus1 tmp]# tar cvfz 20180305.tar.gz *.gz
[root@crowiplus1 tmp]# aws s3 cp 20180305.tar.gz s3://crowi-backup-keisuke1208
没问题,只需按照参考的方式将其转化成shell脚本并进行cron注册就可以了。
[root@crowiplus1 crowi-plus]# cat backup.sh
#!/bin/bash
TODAY=`date +"%Y%m%d"`
WORKDIR=/root/crowi-plus
tar cvfz ${WORKDIR}/${TODAY}_uploads.tar /var/lib/docker/volumes/crowiplus_crowi_data/_data/uploads/
mongodump --host=crowiplus1 --port=27017 -d crowi --gzip --archive=${WORKDIR}/${TODAY}_mongodbdump.gz
tar cvfz ${WORKDIR}/${TODAY}_crowi-backup.tar.gz ${WORKDIR}/${TODAY}_uploads.tar ${WORKDIR}/${TODAY}_mongodbdump.gz
aws s3 cp ${WORKDIR}/${TODAY}_crowi-backup.tar.gz s3://crowi-backup-keisuke1208
rm -f ${WORKDIR}/${TODAY}_uploads.tar
rm -f ${WORKDIR}/${TODAY}_mongodbdump.gz
find ${WORKDIR} -name "*.tar.gz" -mtime +7 -delete
[root@crowiplus1 crowi-plus]# crontab -e
no crontab for root - using an empty one
crontab: installing new crontab
[root@crowiplus1 crowi-plus]# crontab -l
0 3 * * * /root/crowi-plus/backup.sh
最后
只有这样的话,在AWS上将无限制地进行备份,需要注意。