首先,我们先来了解下什么叫做持续构建。持续构建简称CI,负责拉取代码库中的代码后,执行用户预定义的脚本,通过一系列编译操作构建出一个制品,并将制品推送到制品库里。常用的持续构建工具有 Gitlab CI,Github CI,Jenkins等。这个环节不参与部署,只负责构建代码,然后保存构建物,构建物被称为制品,保存制品的地方被称为制品库。
另外,我们来了解下什么是持续部署和持续交付,它们可以统称为CD,即Continuous Deployment和Continuous Delivery。持续部署的概念是:将制品库中的制品拿出来后,部署在测试环境,交付给客户提前测试。持续部署则是将制品部署在生产环境。所以你看,其实持续部署和持续交付的含义类似,只是对象不同。
今天我们的核心就是学一下Jenkins持续构建,整体的持续构建的思路类似下图,当然,这个不是绝对的,具体的场景会有区别:
下面,我们就来看一下使用Jenkins实现持续构建的全过程,哦对,在开始之前,如果你学了之前的内容,请先清空你的服务器,就重置一下就行,之前说过阿里云怎么重置,如果是其他的云服务器,可以百度下。
先执行以下命令,更新下系统包:
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 systemctl start docker systemctl enable docker
然后,我们来安装下docker的阿里镜像,之前学docker的时候也玩过了:
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://fwvjnv59.mirror.aliyuncs.com"] } EOF # 重载所有修改过的配置文件 sudo systemctl daemon-reload sudo systemctl restart docker
然后,我们来安装下Jenkins,Jenkins 是一个基于 Java 语言开发的持续构建工具平台,主要用于持续、自动的构建/测试你的软件和项目。它可以执行你预先设定好的设置和构建脚本,也可以和 Git 代码库做集成,实现自动触发和定时触发构建。
先安装一下Java:
yum install -y java
然后安装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 sudo yum upgrade sudo yum install jenkins java-11-openjdk-devel sudo systemctl daemon-reload
然后,我们来启动以下Jenkins:
systemctl start jenkins.service
然后,我们需要开放端口,或者关闭防火墙都行:
firewall-cmd --zone=public --add-port=8080/tcp --permanent firewall-cmd --zone=public --add-port=50000/tcp --permanent systemctl reload firewalld
看到这样的提示,说明没有启动防火墙,ok,就这样就行:
然后,我们现在就可以访问Jenkins了,在你的本地的浏览器上输入ip及端口号8080即可。有一个要注意的是,阿里云要开启对应的端口才能访问:
点击后进入:
手动添加,然后保存即可。
然后,查看下密码,页面上有提示,在命令行看一下就可以了:
cat /var/lib/jenkins/secrets/initialAdminPassword
然后,就进来咯。
先不要安装,如果你的网速够快,可以直接安装,否则,可以先执行下面的命令,修改插件镜像:
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
然后,去页面里安装推荐插件就好了。安装完了之后就这样了,自己注册吧:
然后,我们新建一个item:
然后,内容如下图,输入即可,选择freestyle,然后确定:
然后写个描述,保存:
然后点击立即构建:
然后,点击红框可以看到日志,就跟咱们平常工作用到的Jenkins很类似了:
ok,其实到这里,你的Jenkins就搞定了,但是感觉啥也没学会是不是,没关系,咱们继续往下来。
然后,我们回到第一个测试任务,点击配置:
然后,选择构建环境,执行shell选项:
然后,我们来执行个docker命令:
然后,点击应用,再点击保存。然后,再去构建一下,不出意料地失败了:
原因是我们的Jenkins不能访问docker服务,所以我们把Jenkins添加到docker的用户组里,然后就可以再去构建一下:
groupadd docker gpasswd -a jenkins docker newgrp docker systemctl start docker.service systemctl restart jenkins.service
上面命令的含义就不解释了啊。都懂的。然后再构建一次,就成功了。我就不贴图了。自己看吧。下面我们给任务加一个node环境。点击Dashboard,然后系统管理,然后点击插件管理:
然后呢,搜索nodejs,选中,安装并重启:
然后我们再选全局工具配置:
然后选择nodejs,起个随便的别名,然后新增安装,可选官网或者镜像,都可以啦:
然后点击后面的应用和保存。我们之前设置好了环境,然后,我们再进入任务中的配置,选择node 那个选项,应用并保存:
然后,再构建一下任务:
然后,下面你需要一个git仓库的项目,你可以用github或者其他任何一个git仓库工具。假设你现在已经有了git项目。然后,记得服务器要安装git哦:
到这里,基本上Jenkins的部分就完事了,我们聊的也不过九牛一毛,更多的用法,还需要大家自己去实践一下。