CentOS部署CI/CD指南(环境篇)

「这是我参与11月更文挑战的第7天,活动详情查看:2021最后一次更文挑战」。

Dear,大家好,我是“前端小鑫同学”,😇长期从事前端开发,安卓开发,热衷技术,在编程路上越走越远~


前置说明:

  1. 部署环境为阿里云ECS服务器,CentOS8操作系统。
  2. 安装OpenJDK,Git,Jenkins,Nexus,Docker

基础环境准备:

安装Java:

yum install -y java

安装Git:

yum install -y git

安装Nexus3(端口8081):

  1. 创建目录:mkdir /usr/local/nexus
  2. 切换目录:cd /usr/local/nexus
  3. 下载安装包:wget https://dependency-fe.oss-cn-beijing.aliyuncs.com/nexus-3.29.0-02-unix.tar.gz
  4. 解压安装包:tar -zxvf ./nexus-3.29.0-02-unix.tar.gz
  5. cd到nexus的bin目录启动:./nexus run或者./nexus start,初始安装使用./nexus run可以查看启动日志,没有问题后在通过start启动。
  6. 初始账号密码:
    1. 账号:admin。
    2. 密码:执行命令cat /sonatype-work/nexus3/admin.password查看。

安装Jenkins(端口8080):

  1. 导入Jenkins安装源:
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
  1. 安装Jenkins:yum install jenkins
  2. 启动Jenkins:service jenkins start
  3. 查看密码:cat /var/lib/jenkins/secrets/initialAdminPassword
  4. 替换插件源:
sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' /var/lib/jenkins/updates/default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' /var/lib/jenkins/updates/default.json

安装Docker:

  1. 安装前置模块device-mapper-persistent-datalvm2
yum install -y yum-utils device-mapper-persistent-data lvm2
  1. 切换加速地址:
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  1. 安装Docker:yum install docker-ce -y
  2. 启动Docker:
systemctl start docker
systemctl enable docker
  1. 配置镜像加速地址:cr.console.aliyun.com/cn-beijing/…
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://k1ffccuv.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
  1. Unix Socket 权限问题:
sudo groupadd docker #新增docker用户组
sudo gpasswd -a jenkins docker #将当前用户添加至docker用户组
newgrp docker #更新docker用户组
sudo service jenkins restart #重启Jenkins

其他说明:

  1. 检查端口连通性:telnet ip port
  2. 端口无法访问:检查阿里云控制台安全组的出入配置,允许对应端口。
  3. 服务器内部的防火墙一般是不会拦截的。
  4. 如过被firewalld拦截:firewall-cmd --zone=public --add-port=端口/tcp --permanent
  5. 如果被iptables拦截:iptables -I INPUT -p tcp --dport 端口 -j ACCEPT
  6. 查看端口监听状态:netstat -anpt | grep <port>

收录内容(阿里云ECS服务器CentOS7防火墙firewalld设置):

  1. firewalld设置:
使用root登录
1.确保服务器系统处于最新状态
[root@localhost ~]# yum -y update
如果显示以下内容说明已经更新完成
Complete!
2.重启服务器
[root@localhost ~]# reboot
3.安装防火墙
[root@localhost ~]# yum install firewalld
4.设置在开机时启用防火墙服务
[root@localhost ~]# systemctl enable firewalld.service
4.查看防火墙状态
[root@localhost ~]# systemctl status firewalld
5.启动防火墙
[root@localhost ~]# systemctl start firewalld
6.增加80端口到防火墙规则
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-port=80/tcp
7.增加3306端口到防火墙规则
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-port=3306/tcp
8.增加21端口到防火墙规则
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-port=21/tcp
9.增加33000端口到防火墙规则
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-port=33000-33003/tcp
10.设置HTTP协议服务被允许
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-service=http
11.使最新的防火墙设置规则生效
[root@localhost ~]# firewall-cmd --reload
12.重启防火墙服务
[root@localhost ~]# systemctl restart firewalld.service
  1. firewalld的基本使用:
# 使最新的防火墙设置规则生效
[root@localhost ~]# firewall-cmd --reload
# 查询ssh协议服务是否被允许
[root@localhost ~]# firewall-cmd --zone=public --query-service=ssh
# 查询HTTP协议服务是否被允许
[root@localhost ~]# firewall-cmd --zone=public --query-service=http
# 启动
[root@localhost ~]# systemctl start firewalld
# 查看状态
[root@localhost ~]# systemctl status firewalld
# 停止
[root@localhost ~]# systemctl disable firewalld
# 禁用
[root@localhost ~]# systemctl stop firewalld
#启动服务
[root@localhost ~]# systemctl start firewalld.service
# 关闭服务
[root@localhost ~]# systemctl stop firewalld.service
# 重启服务
[root@localhost ~]# systemctl restart firewalld.service
# 显示一个服务的状态
[root@localhost ~]# systemctl status firewalld.service
# 在开机时启用一个服务
[root@localhost ~]# systemctl enable firewalld.service
# 在开机时禁用一个服务
[root@localhost ~]# systemctl disable firewalld.service
# 查看服务是否开机启动
[root@localhost ~]# systemctl is-enabled firewalld.service
# 查看已启动的服务列表
[root@localhost ~]# systemctl list-unit-files|grep enabled
# 查看启动失败的服务列表
[root@localhost ~]# systemctl --failed
# 查看版本
[root@localhost ~]# firewall-cmd --version
# 查看帮助
[root@localhost ~]# firewall-cmd --help
# 显示状态
[root@localhost ~]# firewall-cmd --state
# 查看所有打开的端口
[root@localhost ~]# firewall-cmd --zone=public --list-ports
# 更新防火墙规则
[root@localhost ~]# firewall-cmd --reload
# 查看区域信息
[root@localhost ~]# firewall-cmd --get-active-zones
# 查看指定接口所属区域
[root@localhost ~]# firewall-cmd --get-zone-of-interface=eth0
# 拒绝所有包
[root@localhost ~]# firewall-cmd --panic-on
# 取消拒绝状态
[root@localhost ~]# firewall-cmd --panic-off
# 查看是否拒绝
[root@localhost ~]# firewall-cmd --query-panic
# 端口添加(--permanent永久生效,没有此参数重启后失效)
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-port=80/tcp
# 使最新的防火墙设置规则生效
[root@localhost ~]# firewall-cmd --reload
# 查看80端口
[root@localhost ~]# firewall-cmd --zone=public --query-port=80/tcp
# 删除80端口
[root@localhost ~]# firewall-cmd --permanent --zone=public --remove-port=80/tcp
# 删除21端口
[root@localhost ~]# firewall-cmd --permanent --zone=public --remove-port=21/tcp
# 删除HTTP协议服务
[root@localhost ~]# firewall-cmd --permanent --zone=public --remove-service=http
# 增加3306端口到防火墙规则tcp
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-port=3306/tcp
# 增加3306端口到防火墙规则udp
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-port=3306/udp
# 查看当前的区域
[root@localhost ~]# firewall-cmd --get-default-zone
# 查看当前的服务
[root@localhost ~]# firewall-cmd --zone=public --list-services
# 安装图形化用户接口工具 firewall-config,则以 root 用户身份运行下列命令
[root@localhost ~]# yum install firewall-config
# 检查防火墙版本
[root@localhost ~]# firewall-cmd --version
# 查看帮助
[root@localhost ~]# firewall-cmd --help

欢迎关注我的公众号“前端小鑫同学”,原创技术文章第一时间推送。

posted @   前端小鑫同学  阅读(25)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示