CI/CD的实践

docker的搭建

  • 安装docker前需要安装的两个依赖
  1. device-mapper-persistent-data: Linux 下的一个存储驱动
  2. Lvm :作用则是创建逻辑磁盘分区
yum install -y yum-utils device-mapper-persistent-data lvm2

阿里云的 Docker 镜像源添加

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce -y

docker服务基本的操作

systemctl start docker
systemctl enable docker
docker image  ls                            // 查看镜像 | 其它操作
docker ps -a                                // 查看容器
docker start xxxid                      // 启动容器id
docker pull                                   //  拉去镜像
docker exec -it 新容器ID  bash // 

jenkins的安装

  • java 环境的安装,jekins由java编写
yum install -y java
  • 由于 Yum 源不自带 Jenkins 的安装源,于是我们需要自己导入一份 Jenkins 安装源进行安装。导入后,使用 Yum 命令安装即可。
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
yum install jenkins
  • jenkins基本操作
service jenkins start
service jenkins restart
service jenkins stop
  • jenkins默认端口8080,更换端口操作
    比如配置8000端口,先要在阿里云服务安全组配置好8000端口的允许规则
    在修改jenkins的配置文件
vi /etc/sysconfig/jenkins
// 修改 【JENKINS_PORT】= "8000"保存即可
service jenkins restart
image.png
  • 密钥获取
cat /var/lib/jenkins/secrets/initialAdminPassword

得到密钥后填入,继续

  • jenkins的一些插件
    把安装源改成清华大学
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

然后再点击去安装推荐插件

Unix Socket 权限问题

docker 的架构是 C/S 架构。在我们使用 docker 命令时,其实是命令使用 socket 与 docker 的守护进程进行通信,我们需要将jenkins添加到docker的用户组,才能正常执行 docker 命令

sudo groupadd docker          #新增docker用户组
sudo gpasswd -a jenkins docker  #将当前用户添加至docker用户组
newgrp docker                 #更新docker用户组
// 然后重启
service jenkins restart
// 之后就可以在构建中执行docker pull等命令

额外的插件安装

NODE

SSH 集成Git仓库源

服务器上生成

ssh-keygen -t rsa -C "[email protected]"

把公钥添加在到git, 私钥添加到jenkins源码管理


image.png
源码配置和构建脚本

本地文件添加DockerFile和nginx配置

FROM nginx:1.15-alpine
COPY dist /etc/nginx/html
COPY conf /nginx./etc/nginx/
WORKDIR /etc/nginx/html

构建脚本

npm install --registry=https://registry.npm.taobao.org
npm run build:demo
docker build -t jenkins-test .

然后构建生成一个新的镜像

私有的镜像库

镜像库就是集中存放镜像的一个文件服务。镜像库在 CI/CD 中,又称 制品库 。构建后的产物称为制品,制品则要放到制品库做中转和版本管理。常用平台有Nexus,Jfrog,Harbor或其他对象存储平台

wget https://dependency-fe.oss-cn-beijing.aliyuncs.com/nexus-3.29.0-02-unix.tar.gz
tar -zxvf ./nexus-3.29.0-02-unix.tar.gz 
cd  nexus-3.29.0-02/bin
vim nexus.rc  // 加入run_as_user=root
vim nexus      // 里面有一句:run_as_root=true ,原来是此处直接给拦死了,故只要改成run_as_root=false
./nexus start               // 默认在8081端口启动,镜像管理服务端口
// 需要给镜像库据库开个端口8082
firewall-cmd --zone=public --add-port=8081/tcp --permanent
firewall-cmd --zone=public --add-port=8082/tcp --permanent

你可能感兴趣的:(CI/CD的实践)