背景

2021年11月一时冲动,采购了一台云服务器,采购之初安装了Centos8 操作系统,基本就是登录执行一些简单的脚本命令,作为一个测试的机器使用,跟本机上安装了一台虚拟机的用途类似,到后来本人电脑安装linux系统后,奈何一些linux上的不能使用的软件,随即将云服务器安装了一个windows 2018操作系统。作为配合使用,后面本机虚拟机中安装windows 7 和windows2008 并行了一段时间,感觉虚拟机中的windows7基本可以满足使用,想着将云服务器发挥其更大点的用处。怎么让其发挥出作用?学以致用,是个前提。

现状

个人开发出自己需要的应用并部署到云服务器上是理想的方案,但是从时间成本和精力上需要一定的投入,产出比没有具体的量化指标。手里有一台采购的云服务器和一个域名,采用开源的博客和网盘方案,在云服务器上搭建。

目的

云服务器希望从个人层面达到四个用途

项目用途访问方式
个人站点展示主站点使用主域名进行访问
博客个人发布文章使用采用二级域名进行跳转
网盘存储个人常用软件采用二级域名进行访问
jenkins服务器devops中间服务器采用二级域名进行访问

环境说明

项目版本说明
操作系统Centos7服务器操作系统
博客Ghost4.32.0开源博客平台
网盘seafile开源网盘
数据库mysql5.7.34网盘和博客使用数据库
网页服务器nginx1.21.5网页代理服务器

安装

云服务器,安装方式采用在线yum安装为主。

docker 安装

docker 安装

使用脚本安装

vi /root/centos_yum_install_docker.sh

#!/bin/bash
# 查看内核版本
uname -r
# 更新系统
yum update -y
# 卸载旧版本
yum remove docker  docker-common docker-selinux docker-engine
# 安装依赖软件包
yum install -y yum-utils device-mapper-persistent-data lvm2
# 设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 查看docker版本
yum list docker-ce --showduplicates | sort -r
# 安装docker
yum install docker-ce -y
# 启动docker
systemctl start docker
# 设置开机启动
systemctl enable docker
# 获取UID=1000的用户名
user_name=$(getent passwd 1000|awk -F : '{print $1}')
# 添加至docker组
gpasswd -a $user_name docker
# 更新用户组
newgrp docker
# 验证安装
docker version
# 输出
echo "Complete!"

修改脚本可执行权限

# chmod +x /root/centos_yum_install_docker.sh

执行脚本

# cd /root
# ./centos_yum_install_docker.sh

在这里插入图片描述

安装docker-compose

vi /home/docker_compose_install.sh

curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose --version

修改脚本可执行权限

# chmod +x /root/docker_compose_install.sh

执行脚本

cd /root
./docker_compose_install.sh

执行完毕弹出docker-compose版本为安装成功。

网盘部署

下载编排文件
编辑编排文件

version: '2.0'
services:
  db:
    image: mariadb:10.5
    container_name: seafile-mysql
    environment:
      - MYSQL_ROOT_PASSWORD=db_dev  # Requested, set the root's password of MySQL service.
      - MYSQL_LOG_CONSOLE=true
    volumes:
      - /opt/seafile-mysql/db:/var/lib/mysql  # Requested, specifies the path to MySQL data persistent store.
    networks:
      - seafile-net

  memcached:
    image: memcached:1.5.6
    container_name: seafile-memcached
    entrypoint: memcached -m 256
    networks:
      - seafile-net
          
  seafile:
    image: seafileltd/seafile-mc:latest
    container_name: seafile
    ports:
      - "80:80"
#      - "443:443"  # If https is enabled, cancel the comment.
    volumes:
      - /opt/seafile-data:/shared   # Requested, specifies the path to Seafile data persistent store.
    environment:
      - DB_HOST=db
      - DB_ROOT_PASSWD=db_dev  # Requested, the value shuold be root's password of MySQL service.
#      - TIME_ZONE=Asia/Shanghai # Optional, default is UTC. Should be uncomment and set to your local time zone.
      - SEAFILE_ADMIN_EMAIL=me@example.com # Specifies Seafile admin user, default is 'me@example.com'.
      - SEAFILE_ADMIN_PASSWORD=asecret     # Specifies Seafile admin password, default is 'asecret'.
      - SEAFILE_SERVER_LETSENCRYPT=false   # Whether use letsencrypt to generate cert.
      - SEAFILE_SERVER_HOSTNAME=seafile.example.com # Specifies your host name.
    depends_on:
      - db
      - memcached
    networks:
      - seafile-net

networks:
  seafile-net:

修改如下配置项

  • MySQL root 用户的密码 (MYSQL_ROOT_PASSWORD and DB_ROOT_PASSWD)
  • 持久化存储 MySQL 数据的 volumes 目录 (volumes)
  • 持久化存储 Seafile 数据的 volumes 目录 (volumes)
  • 用户名SEAFILE_ADMIN_EMAIL和密码SEAFILE_ADMIN_PASSWORD

启动

docker-compose up -d

在这里插入图片描述
浏览器访问
在这里插入图片描述

博客部署

创建目录

version: '3.1'

services:

  ghost:
    image: ghost:4-alpine
    restart: always
    ports:
      - 8080:2368
    environment:
      # see https://ghost.org/docs/config/#configuration-options
      database__client: mysql
      database__connection__host: db
      database__connection__user: root
      database__connection__password: example
      database__connection__database: ghost
      # this url value is just an example, and is likely wrong for your environment!
      url: http://localhost:8080
      # contrary to the default mentioned in the linked documentation, this image defaults to NODE_ENV=production (so development mode needs to be explicitly specified if desired)
      #NODE_ENV: development

  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: example

启动

docker-compose up -d

浏览器中输入http://ip:8080
在这里插入图片描述
设置
浏览器中输入http://ip:8080/ghost
创建账号
在这里插入图片描述
输入标题、用户名、email和密码
在这里插入图片描述
邮件验证
在这里插入图片描述
进入后台首页
在这里插入图片描述

登录后台可以对博客页面进行设置和发布文章。

jenkins部署

1、制作编排文件

vim /home/shalter/jenkins/docker-compose.yml

version: '3'
services:
  jenkins:
    image: 'jenkinsci/blueocean'
    container_name: jenkins
    restart: always
    ports:
      - '8099:8080'
      - '50000:50000'
    volumes:
      - '/data/jenkins_home:/var/jenkins_home'

2、创建数据持久化目录

mkdir -p /data/jenkins_home
chown -R 1000:1000 /data/junkins_home

3、运行

docker-compose up -d

4、查看密码

cat /var/jenkins_home/secrets/initialAdminPassword

首次登录需要使用该密码登录

5、登录设置

电脑浏览器中输入http://IP:8099
在这里插入图片描述
将密码拷贝至管理员密码框中
在这里插入图片描述
插件安装
悬着推荐插件安装
在这里插入图片描述
创建管理员账号
在这里插入图片描述
配置完成
在这里插入图片描述

重启服务
在这里插入图片描述
在这里插入图片描述
登录后界面
在这里插入图片描述

网页代理服务器安装

网页代理服务器主要为nginx,主要作用为设在主域名和二级域名设置使用。
1、脚本编制
vim /home/shalter/nginx/docker-compose.yml

version: '3'
services:
  image: nginx
  restart: always
  volumes:
    - /data/ningx/conf/nginx.conf:/etc/nginx/nginx.conf
    - /data/nginx/site:/usr/share/nginx/html
    - /data/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf
    - /data/ngins/logs:/var/log/nginx
  ports:
    - "8080:80"
  environment:
    - NGINX_HOST=jjyard.xyz
    - NGINX_PORT=80

站点部署

站点为静态页面,在本篇就不做介绍了,
将站点程序部署至/data/nginx/site目录下,重启nginx

本篇为站点的部署,下一篇《云服务器搭建个人站点-之-访问控制》中继续讲解通过设置二级域名,然后通过域名访问各个对应的站点。完善个人站点的访问。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐