大家好,我是比特桃。最近白嫖了一台 Centos服务器,用来日常开发,特此记录一下搭建配置的过程
我之前有篇文章基于 Ubuntu 的:Linux 服务器搭建配置,开发效率一飞冲天 – Ubuntu 篇
如同个人电脑一样,每个人都有各自的喜好及需求。我个人用的所有终端,都遵循大道至简基本思想。其含义就是:软件能不多装就不多装,能简化就尽量简化。一切原生化,只在乎让它干活的专注性,不希望有太多花里胡哨的东西。

一、安全加固

行走江湖之前,必须把防护工作做好。要不然很容易被人攻击,到时候备份迁移得不偿失。我们更新一下系统

sudo yum clean all
sudo yum update -y
sudo reboot

所有人都知道 Linux 服务器的 ssh 默认端口是 22,超级管理员账号root。所以我们先把这些默认值的给改了,并且不允许密码登录,只通过秘钥认证

yum list installed | grep openssh-server
// 如果没有安装
yum install openssh-server
vim /etc/ssh/sshd_config

相关配置改成如下所示

Port 666
PasswordAuthentication no
UseDNS no
PubkeyAuthentication yes

在让配置生效之前,我们现将手头的这台电脑公钥给传上去。(不然待会自己都没法访问了,别问我怎么知道的。)

vim ~/.ssh/authorized_keys

创建开机自启,并重启将配置生效

systemctl enable sshd.service
systemctl restart sshd

除此之外,云服务器还需要在云厂商防火墙的基础上,再使用系统自带防火墙做二道防护。Centos 自带的是 Firewall,Ubuntu自带的是 ufw

firewall-cmd --state
systemctl start firewalld.service
// 开机自启
systemctl enable firewalld.service
// 开放/取消 防火墙端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --remove-port=80/tcp --permanent
// 查看目前防火墙规则
firewall-cmd --list-ports
// 载入防火墙配置
firewall-cmd --reload      
systemctl restart firewalld.service

二、原生软件

我们将常用且不会随意切换变动软件通过原生安装

// Java
yum -y install java-11-openjdk

// Maven
yum -y install maven

// 切换默认 Java 版本
update-alternatives --config java

// Node
curl -fsSL https://rpm.nodesource.com/setup_16.x | sudo bash -
yum -y install nodejs

// Nginx
sudo yum -y install nginx
sudo systemctl enable nginx
sudo service nginx start # 启动 nginx 服务
sudo service nginx stop # 停止 nginx 服务
sudo service nginx restart # 重启 nginx 服务
sudo service nginx reload # 重新加载配置

其实这些软件也完全可以通过容器安装,但我个人需求是通过这台服务器的 Gitlab Runner 实现基本自动化部署,所以需要这些软件原生化。

sudo yum install gitlab-runner

Gitlab Runner 可以实现注册到 Gitlab 上,通过脚本实现自动部署用到服务器上。比如可以将这台服务器上的 Runner监听我 Gitlab 中某一个分支,一旦更新代码即可自动在这台服务器上实现更新部署。关于如何实现服务器自动化部署,可以参考我这篇文章基于Gitlab Runner 快速实现 Gitlab 自动部署

三、容器软件

下面我们安装容器的基石 Docker,可直接参考官网

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

由于我这台机器是 VSP,大容量的磁盘挂载到了 /data目录下。其 Centos 系统自带目录容量很小,Docker 默认容器存储路径放到/var/lib/docker我们后面会有大量的容器使用,这会存在系统盘爆满的隐患。所以需要修改 Docker 默认存储路径

// 将原目录复制到想要切换位置
cp -a /var/lib/docker /data/docker/
// 备份
mv -u /var/lib/docker /var/lib/docker.bak
// 关闭 Docker
sudo systemctl stop docker
// 创建连接
sudo ln -fs /store/software/docker /var/lib/docker
// 重启生效
sudo systemctl start docker
# or
sudo service docker start

然后就可以开心部署容器了,这块其实大家根据自身需求来就行,常见的 Docker 命令可以参考我这篇文章Docker实用命令手册
下面是我这次 Centos 需要用到容器
Gitlab,可参考官网

// 设置 Gitlab 容器映射本机路径
export GITLAB_HOME=/data/software/gitlab
sudo docker run --detach 
  --hostname baidu.com 
  --publish 8001:8001 --publish 8003:80 --publish 8002:22 
  --name gitlab 
  --restart always 
  --volume $GITLAB_HOME/config:/etc/gitlab 
  --volume $GITLAB_HOME/logs:/var/log/gitlab 
  --volume $GITLAB_HOME/data:/var/opt/gitlab 
  --shm-size 256m 
  gitlab/gitlab-ce:latest

这里说明一下这三个端口,8001是https,8003是80端口,8002是ssh端口。8003是我们启动容器后,进入调试用的,默认账号root密码执行下面命令查看

docker exec -it 容器名字或容器ID grep 'Password:' /etc/gitlab/initial_root_password

然后进入容器,配置 https 证书邮件服务、功能配置等。

docker exec -it gitlab /bin/bash

编辑/etc/gitlab/gitlab.rb文件,还记得我们映射https 和 ssh 端口嘛,就是在这里修改成我们需要的 8001、8002,这样用户网页直接复制时候也是这俩地址Gitlab 的所有配置都通过这个文件,其它文件不用动。

// 将gitlab.rb配置文件生效,如果有错误看到非常明确的日志进行修改
gitlab gitlab-ctl reconfigure
// 重启 gitlab
gitlab gitlab-ctl restart
// 进入控制台测试邮件服务是否可用
gitlab-rails console
Notify.test_email('收件人邮箱', 'title', 'body').deliver_now

另外,由于 Gitlab 平时太占用内存了,可以尝试官方建议进行内存优化在内存受限的环境中运行

MongoDB:

docker run -d --name mongo --restart=always -p 8016:27017
      -e MONGO_INITDB_ROOT_USERNAME=admin 
      -e MONGO_INITDB_ROOT_PASSWORD=123456 
      mongo --auth

禅道

 docker run -it 
    -v /data/software/zentao:/data 
    -p 8018:80 
    -e MYSQL_INTERNAL=false 
    -e ZT_MYSQL_HOST=172.18.56.66 
    -e ZT_MYSQL_PORT=8004 
    -e ZT_MYSQL_USER=root 
    -e ZT_MYSQL_PASSWORD=123456! 
    -e ZT_MYSQL_DB=zentao 
    -e PHP_MAX_EXECUTION_TIME=300 
    -e PHP_POST_MAX_SIZE=512M 
    -e PHP_UPLOAD_MAX_FILESIZE=512M 
    -d hub.zentao.net/app/zentao:18.5 

四、总结

这是我周末刚装的一台云服务器的记录文章,如果对你有帮助的话,希望给我点个赞。有问题可以留言交流~

原文地址:https://blog.csdn.net/u012558210/article/details/132479603

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_35328.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注