b站推廣網(wǎng)站2024年不用下載站長工具seo綜合查詢騰訊
大家好,我是比特桃。最近白嫖了一臺 Centos 云服務器,用來做日常開發(fā),特此記錄一下搭建配置的過程。
我之前有篇文章是基于 Ubuntu 的:Linux 服務器搭建配置,開發(fā)效率一飛沖天 - Ubuntu 篇
如同個人電腦一樣,每個人都有各自的喜好及需求。我個人用的所有終端,都遵循大道至簡的基本思想。其含義就是:軟件能不多裝就不多裝,能簡化就盡量簡化。一切原生化,只在乎讓它干活的專注性,不希望有太多花里胡哨的東西。
一、安全加固
行走江湖之前,必須把防護工作做好。要不然很容易被人攻擊,到時候備份遷移得不償失。我們先更新一下系統(tǒng):
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
在讓配置生效之前,我們現(xiàn)將手頭的這臺電腦的公鑰給傳上去。(不然待會自己都沒法訪問了,別問我怎么知道的。)
vim ~/.ssh/authorized_keys
創(chuàng)建開機自啟,并重啟將配置生效。
systemctl enable sshd.service
systemctl restart sshd
除此之外,云服務器還需要在云廠商防火墻的基礎上,再使用系統(tǒng)自帶的防火墻做二道防護。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
// 查看目前防火墻規(guī)則
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 實現(xiàn)最基本的自動化部署,所以需要這些軟件原生化。
sudo yum install gitlab-runner
Gitlab Runner 可以實現(xiàn)注冊到 Gitlab 上,通過腳本實現(xiàn)自動部署應用到服務器上。比如我可以將這臺服務器上的 Runner,監(jiān)聽我 Gitlab 中某一個分支,一旦更新代碼即可自動在這臺服務器上實現(xiàn)更新部署。關于如何實現(xiàn)服務器自動化部署,可以參考我這篇文章:基于Gitlab Runner 快速實現(xiàn) Gitlab 自動部署
三、容器軟件
下面我們安裝容器的基石 Docker,可直接參考官網(wǎng):
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 系統(tǒng)自帶的目錄容量很小,Docker 默認將容器存儲路徑放到了/var/lib/docker
。我們后面會有大量的容器使用,這會存在系統(tǒng)盤爆滿的隱患。所以需要修改 Docker 默認的存儲路徑:
// 將原目錄復制到想要切換的位置
cp -a /var/lib/docker /data/docker/
// 備份
mv -u /var/lib/docker /var/lib/docker.bak
// 關閉 Docker
sudo systemctl stop docker
// 創(chuàng)建軟連接
sudo ln -fs /store/software/docker /var/lib/docker
// 重啟生效
sudo systemctl start docker
# or
sudo service docker start
然后就可以開心的部署容器了,這塊其實大家根據(jù)自身需求來就行,常見的 Docker 命令可以參考我這篇文章:Docker實用命令手冊。
下面是我這次 Centos 需要用到的容器:
Gitlab,可參考官網(wǎng):
// 設置 Gitlab 容器映射本機路徑
export GITLAB_HOME=/data/software/gitlab
sudo docker run --detach \--hostname baidu.com \--publish 8001:8001 --publish 8003:80 --publish 8002:8002 \--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
密碼執(zhí)行下面命令查看。
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,這樣用戶在網(wǎng)頁上直接復制的時候也是這倆地址。Gitlab 的所有配置都通過這個文件,其它文件不用動。
// 將gitlab.rb配置文件生效,如果有錯誤可看到非常明確的日志進行修改
gitlab gitlab-ctl reconfigure
// 重啟 gitlab
gitlab gitlab-ctl restart
// 進入控制臺,測試郵件服務是否可用
gitlab-rails console
Notify.test_email('收件人郵箱', 'title', 'body').deliver_now
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
四、總結
這是我周末剛裝的一臺云服務器的記錄文章,如果對你有幫助的話,希望給我點個贊。有問題可以留言交流~