欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

记一次折腾过程(一)

程序员文章站 2022-04-28 18:32:40
...

用自己的服务器、域名,搭建私有gitlab,并开发一个简单博客系统。

服务器

购买阿里云的服务器(2G内存,SSD硬盘,1年,其他最低配),花了1k+。完全最低配置跑不懂gitlab,而且我还要在这台服务器跑自己开发的博客系统。

操作系统:Ubuntu 14.04.4,然后升级到16.04.1

简单设置

简单设置服务器,方便开发和管理。

创建新用户

创建新用户,并分配管理员权限

  1. 用root用户登录服务器
# 本地电脑
ssh [email protected]
  1. 创建新用户
useradd -d /home/daifee -s /bin/bash -m daifee
  1. 设置密码
passwd daifee
  1. 为daifee配置sudo权限
# 将daifee添加到sudo用户组可以实现
usermod -a -G sudo daifee

下面都以daifee用户身份进行操作

SSH设置

  1. 安装openssh-server
sudo apt-get install openssh-server
  1. 创建**
# 根据提示设置口令(passphrase)
ssh-******
  1. 修改sshd_config
# 备份
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup
# 修改配置,以便达到下面目的(为了安全)
# Port 22222                   【修改端口】
# PermitRootLogin no           【不允许root用户登录】
# PermitEmptyPasswords no      【不能没有密码】
# PasswordAuthentication no    【不能用密码登录】
sudo vim /etc/ssh/sshd_config
  1. 重启sshd
sudo systemctl restart sshd.service
  1. 将本地电脑的公钥保存到服务器,并登录
# 本地电脑
ssh-copy-id [email protected]

安装nginx

使用nginx系统反向代理博客系统。gitlab也使用这个nginx代替自带的nginx。

apt-get install nginx

设置域名

前年在易名中国买了daifee.com这个域名,一直没有时间(能力)折腾她。竟然阿里云也有域名服务,就把域名从易名中国转到阿里云,统一平台管理。域名转移过程需要点折腾,而且需要等几个工作日。

使用阿里云的域名解析,创建数个二级域名解析到我的IP:

  • gitlab.daifee.com 搭建的私有gitlab服务
  • blog.daifee.com 博客系统(生产环境)
  • test-blog.daifee.com 博客系统(测试环境)

安装gitlab

有3个版本:

  • CE 社区版
  • CC 企业版
  • OM 社区集成版(官方推荐&我的选择)

注意:由于网络原因,gitlab官方源根本下载不了,必须使用清华大学开源软件镜像站

安装步骤&命令:

  1. 添加Gitlab的GPG公钥
curl https://packages.gitlab.com/gpg.key 2> /dev/null | sudo apt-key add - &>/dev/null
  1. 将gitlab安装包源添加到sources.list
# /etc/apt/sources.list 或 /etc/apt/sources.list.d/gitlab-ce.list
deb https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu xenial main
  1. 安装
sudo apt-get update
sudo apt-get install gitlab-ce

配置gitlab

使用gitlab外部nginx

  1. 看一遍这章节的官方文档
  2. 根据本教程安装ruby, passenger, nginx-extras等
  3. 根据官方文档修改配置文件(/etx/gitlab/gitlab.rb)
  4. /etc/nginx/sites-avariables/增加服务配置文件gitlab.daifee.com,参考官方文档配置
  5. /etc/nginx/sites-avariables/gitlab.daifee.com软链接到/etc/nginx/sites-enable/gitlab.daifee.com
  6. 根据/etc/nginx/sites-avariables/gitlab.daifee.com创建log文件
  7. 重启gitlab-ctl服务(sudo gitlab-ctl reconfigure)
  8. 重启nginx服务器(systemctl restart nginx.service)

注意:需要将gitlab-www用户加入nginx用户组(通常是www-data)

配置https

提醒,通常.crt和.key文件名对应的.pem文件名:

  • gitlab.daifee.com.crt -> ../../letsencrypt/archive/gitlab.daifee.com/fullchain1.pem
  • gitlab.daifee.com.key -> ../../letsencrypt/archive/gitlab.daifee.com/privkey1.pem

示例:

  • 为blog.daifee.com创建证书:
# 安装Let's Encrypt客户端(Ubuntu 14.0.4的客户端是letsencrypt,其他版本的不是这个)
sudo apt-get install letsencrypt
# 创建证书,保存在`/etc/letsencrypt/`子目录下
letsencrypt certonly -d blog.daifee.com
  • 过期前自动更新证书(使用systemd程序)
sudo vim /etc/systemd/system/letsencrypt.service
[Unit]
Description=Let's Encrypt renewal

[Service]
Type=oneshot  
ExecStart=/usr/bin/letsencrypt renew  
ExecStartPost=/bin/systemctl reload nginx.service  
sudo vim /etc/systemd/system/letsencrypt.timer
[Unit]
Description=Monthly renewal of Let's Encrypt's certificates

[Timer]
OnCalendar=daily  
Persistent=true

[Install]
WantedBy=timers.target

启动服务,并开启timer

sudo systemctl enable letsencrypt.timer
sudo systemctl start letsencrypt.timer

参考