添加CentOS一键部署脚本原文件

master
karl 1 year ago
parent 7490a01c9e
commit bf0358ef43

@ -0,0 +1,363 @@
#!/bin/bash
echo "Start installing aurora blog"
echo "installing yum-utils..."
sudo yum install -y yum-utils
if [ $? -ne 0 ]; then
echo "yum-utils install failed"
exit 1
fi
echo "Configuring docker Alibaba Cloud image... "
sudo yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
if [ $? -ne 0 ]; then
echo "Docker image warehouse configuration failed"
exit 1
fi
echo "Updating yum package index..."
sudo yum makecache fast
if [ $? -ne 0 ]; then
echo "yum package index update failed"
exit 1
fi
echo "Installing docker..."
sudo yum install docker-ce docker-ce-cli containerd.io
if [ $? -ne 0 ]; then
echo "Docker installation failed"
exit 1
fi
echo "Starting docker..."
sudo systemctl start docker
if [ $? -ne 0 ]; then
echo "Docker failed to start "
exit 1
else
echo "Docker launched successfully"
fi
echo "Setting docker to boot automatically..."
sudo systemctl enable docker
if [ $? -ne 0 ]; then
echo "Docker failed to set up self-boot"
exit 1
fi
sudo mkdir -p /etc/docker
if [ $? -ne 0 ]; then
echo "mkdir -p /etc/docker failed"
exit 1
fi
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://dockerhub.azk8s.cn",
"https://mirror.ccs.tencentyun.com",
"https://registry.cn-hangzhou.aliyuncs.com",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.m.daocloud.io",
"https://noohub.ru",
"https://huecker.io",
"https://dockerhub.timeweb.cloud",
"https://hub.atomgit.com/repos",
"https://docker.1panel.live",
"https://hub.rat.dev"
]
}
EOF
if [ $? -ne 0 ]; then
echo "tee /etc/docker/daemon.json failed"
exit 1
fi
sudo systemctl daemon-reload
if [ $? -ne 0 ]; then
echo "systemctl daemon-reload failed"
exit 1
fi
sudo systemctl restart docker
if [ $? -ne 0 ]; then
echo "systemctl restart docker failed"
exit 1
fi
echo "Creating docker network bridge..."
sudo docker network create aurora
if [ $? -ne 0 ]; then
echo "Docker network bridge creation failed"
exit 1
fi
mysql_version="8.0.39-debian"
echo "Installing mysql..."
sudo docker pull mysql:$mysql_version
if [ $? -ne 0 ]; then
echo "MySQL image download failed"
exit 1
fi
sudo mkdir -p /opt/data/mysql/data
if [ $? -ne 0 ]; then
echo "mkdir -p /opt/data/mysql/data failed"
exit 1
fi
sudo mkdir -p /opt/data/mysql/conf
if [ $? -ne 0 ]; then
echo "mkdir -p /opt/data/mysql/conf failed"
exit 1
fi
sudo mkdir -p /opt/data/mysql/mysqld
if [ $? -ne 0 ]; then
echo "mkdir -p /opt/data/mysql/mysqld failed"
exit 1
fi
sudo chmod 777 /opt/data/mysql/data
if [ $? -ne 0 ]; then
echo "chmod 777 /opt/data/mysql/data failed"
exit 1
fi
sudo chmod 777 /opt/data/mysql/conf
if [ $? -ne 0 ]; then
echo "chmod 777 /opt/data/mysql/conf failed"
exit 1
fi
sudo chmod 777 /opt/data/mysql/mysqld
if [ $? -ne 0 ]; then
echo "chmod 777 /opt/data/mysql/mysqld failed"
exit 1
fi
config_file="my.cnf"
sudo cp $config_file /opt/data/mysql/conf/
if [ $? -eq 0 ]; then
echo "mysql configuration file copied successfully"
else
echo "Copying mysql configuration file failed"
exit 1
fi
MYSQL_PASSWORD="Aurora_123456"
echo "Starting mysql..."
sudo docker run \
--name mysql \
--restart=always \
-p 3306:3306 \
-v /opt/data/mysql/mysqld:/var/run/mysqld -v /opt/data/mysql/data:/var/lib/mysql -v /opt/data/mysql/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=$MYSQL_PASSWORD -d mysql:$mysql_version
if [ $? -ne 0 ]; then
echo "mysql failed to start"
exit 1
else
echo "mysql started successfully"
fi
sudo docker network connect aurora mysql
if [ $? -ne 0 ]; then
echo "mysql failed to join docker network"
exit 1
else
echo "mysql successfully joined docker network"
fi
machine_physics_net=$(ls /sys/class/net/ | grep -v "$(ls /sys/devices/virtual/net/)")
local_ip=$(ip addr | grep "$machine_physics_net" | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/, "\\1", "g", $2)}')
public_ip=$(curl ifconfig.me)
echo "Creating database..."
sleep 20
sudo docker exec -i mysql mysql -h $local_ip -uroot -p$MYSQL_PASSWORD -e "CREATE DATABASE aurora CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;"
if [ $? -ne 0 ]; then
echo "Database creation failed"
exit 1
else
echo "Database created successfully"
fi
echo "Initializing database..."
sudo docker exec -i mysql mysql -h $local_ip -uroot -p$MYSQL_PASSWORD aurora <$(pwd)/aurora.sql
if [ $? -ne 0 ]; then
echo "Database initialization failed"
exit 1
else
echo "Database initialization successful"
fi
redis_version="7.0.13"
echo "Installing redis..."
sudo docker pull redis:$redis_version
if [ $? -ne 0 ]; then
echo "Redis image download failed"
exit 1
fi
REDIS_PASSWORD="123456"
echo "Starting redis..."
sudo docker run --name redis \
--restart=always \
-p 6379:6379 -d redis:$redis_version \
--requirepass $REDIS_PASSWORD
if [ $? -ne 0 ]; then
echo "redis failed to start"
exit 1
else
echo "redis launched successfully"
fi
sudo docker network connect aurora redis
if [ $? -ne 0 ]; then
echo "redis failed to join docker network"
exit 1
else
echo "redis successfully joined docker network"
fi
rabbitmq_version="3.12.14"
echo "Installing rabbitmq..."
sudo docker pull rabbitmq:$rabbitmq_version-management
if [ $? -ne 0 ]; then
echo "rabbitmq image download failed"
exit 1
fi
echo "Starting rabbitmq..."
sudo docker run --name rabbitmq \
--restart=always -p 5672:5672 -p 15672:15672 \
-e RABBITMQ_DEFAULT_USER=guest -e RABBITMQ_DEFAULT_PASS=guest \
-d rabbitmq:$rabbitmq_version-management
if [ $? -ne 0 ]; then
echo "rabbitmq failed to start"
exit 1
else
echo "rabbitmq launched successfully"
fi
sudo docker network connect aurora rabbitmq
if [ $? -ne 0 ]; then
echo "rabbitmq failed to join docker network"
exit 1
else
echo "rabbitmq successfully joined docker network"
fi
echo "Installing minio..."
sudo docker pull minio/minio
if [ $? -ne 0 ]; then
echo "Minio image download failed"
exit 1
fi
sudo mkdir -p /opt/data/minio/config
if [ $? -ne 0 ]; then
echo "minio profile directory creation failed"
exit 1
fi
sudo mkdir -p /opt/data/minio/data
if [ $? -ne 0 ]; then
echo "minio data directory creation failed"
exit 1
fi
echo "Starting minio..."
sudo docker run \
-p 9000:9000 \
-p 9090:9090 \
--name minio \
-d --restart=always \
-e "MINIO_ACCESS_KEY=minioadmin" \
-e "MINIO_SECRET_KEY=minioadmin" \
-v /opt/data/minio/data:/data \
-v /opt/data/minio/config:/root/.minio \
minio/minio server \
/data --console-address ":9090" -address ":9000"
if [ $? -ne 0 ]; then
echo "minio failed to start"
exit 1
else
echo "Minio launched successfully"
fi
sudo docker network connect aurora minio
if [ $? -ne 0 ]; then
echo "Minio failed to join docker network"
exit 1
else
echo "Minio joins docker network successfully"
fi
echo "Creating minio default bucket..."
minio_bucket="aurora"
minio_myname="myminio"
sudo docker exec -it minio mc alias set $minio_myname http://minio:9000 minioadmin minioadmin
if [ $? -ne 0 ]; then
echo "minio alias setting failed"
exit 1
fi
sudo docker exec -it minio mc mb $minio_myname/$minio_bucket
if [ $? -ne 0 ]; then
echo "minio default bucket creation failed"
exit 1
else
echo "minio default bucket created successfully"
fi
sudo docker exec -it minio mc anonymous set public $minio_myname/$minio_bucket
if [ $? -ne 0 ]; then
echo "Minio default bucket permissions setting failed"
exit 1
fi
echo "Installing openjdk 8..."
sudo docker pull openjdk:8-jdk
if [ $? -ne 0 ]; then
echo "Openjdk 8 image download failed"
exit 1
fi
echo "Starting backend services..."
minio_url=http://$public_ip:8066/minio/
sudo docker run -d \
-p 8080:8080 \
--name aurora_server --restart=always \
-v $(pwd):$(pwd) \
openjdk:8-jdk java -jar -Dupload.minio.bucketName=$minio_bucket -Dupload.minio.url=$minio_url $(pwd)/aurora-springboot-0.0.1.jar
if [ $? -ne 0 ]; then
echo "Back-end service startup failed"
exit 1
else
echo "Back-end service started successfully"
fi
sudo docker network connect aurora aurora_server
if [ $? -ne 0 ]; then
echo "Back-end service failed to join docker network"
exit 1
else
echo "Back-end service successfully joined docker network"
fi
echo "Restarting backend services..."
sudo docker restart aurora_server
if [ $? -ne 0 ]; then
echo "Back-end service restart failed"
exit 1
else
echo "Back-end service restarted successfully"
fi
echo "Installing nginx..."
sudo docker pull nginx
if [ $? -ne 0 ]; then
echo "nginx image download failed"
exit 1
fi
echo "Starting nginx..."
sudo docker run -d \
--name aurora_nginx \
--restart=always \
-p 8066:8066 \
-v $(pwd)/nginx.conf:/etc/nginx/nginx.conf \
-v $(pwd)/blog_web:/usr/local/aurora-vue/blog \
-v $(pwd)/admin_web:/usr/local/aurora-vue/admin \
nginx
if [ $? -ne 0 ]; then
echo "nginx failed to start"
exit 1
else
echo "nginx started successfully"
fi
sudo docker network connect aurora aurora_nginx
if [ $? -ne 0 ]; then
echo "nginx failed to join docker network"
exit 1
else
echo "nginx successfully joins docker network"
fi
echo "Restarting nginx..."
sudo docker restart aurora_nginx
if [ $? -ne 0 ]; then
echo "nginx restart failed"
exit 1
else
echo "nginx restarted successfully"
fi
echo "All services started successfully"
echo "服务器安全组需要开放8066端口才能访问博客"
echo 访问 http://$public_ip:8066/ 即可访问博客
echo 访问 http://$public_ip:8066/admin/ 即可访问后台管理
echo "后台管理默认账号密码为admin@163.com / 123456"
echo "作者花未眠http://www.linhaojun.top/"
echo "部署脚本作者karlhttps://kangxianghui.top/"
echo "感谢您选择使用Aurora博客系统祝您使用愉快"
Loading…
Cancel
Save