jenkins详细入门教程
谈到 CI/CD,那便少不了这里面的佼佼者 Jenkins,正如 Jenkins 官网说的一样:Build great things at any scale,构建伟大,无所不能!
话不多说,该篇文章将会带你使用 Docker 快速创建一个单机版的 Jenkins 实例以及创建一个简单的 Pipeline 项目。
一、创建 Jenkins 实例
这里我们将使用 Docker 进行安装一个单机版的 Jenkins(这里假设你了解 Docker 等工具的使用):
docker run -d --name jenkins \
-p 50000:50000 \
-p 8080:8080 \
-v /srv/jenkins:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /usr/bin/docker:/usr/bin/docker \
-u root \
--restart always \
jenkins/jenkins:2.263.4
也可以使用 DockerCompose 进行安装,创建docker-compose.yaml
文件并添加以下内容,然后运行docker-compose up -d
:
version: 3.7
services:
jenkins:
image: jenkins/jenkins:2.263.4
ports:
- 50000:50000
- 8080:8080
volumes:
- /srv/jenkins:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
- /usr/bin/docker:/usr/bin/docker
user: root
restart: always
container_name: jenkins
解释下这里的一些运行选项:
ports
50000:50000 用于集群部署
8080:8080 用于浏览器访问
volumes
/srv/jenkins:/var/jenkins_home 主要数据目录
/var/run/docker.sock:/var/run/docker.sock 挂载宿主机的 docker 套接字文件
/usr/bin/docker:/usr/bin/docker 挂载宿主机的 docker 可执行文件
user: root 由于 jenkins 容器默认使用的是 jenkins 用户,而我使用的是 root 用户运行的,如果不加,将会因为权限不够无法读写目录 /srv/jenkins,这里当然也有其他办法解决这个问题,比如修改目录 /srv/jenkins 的权限给 jenkins 用户。
这里挂载 docker 相关的文件是为了在执行流水线的时候可以使用 docker 环境。
访问http://your_ip:8080便可以看到下面这个页面:
这里需要一个Administrator password
才可以继续安装,现在我们回到宿主机执行下面的命令获取它:
docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
dfd97892d82e43f18437ac628908b0b5
这里我们选择安装推荐的插件:
接下来便可以看到 Jenkins 在自动帮我们安装一些插件,包括常用的Git
、Pipeline
等:
然后需要创建第一个用户:
最后配置访问的地址,如果没有绑定域名的话,就直接默认即可:
接下来就开始我们的 CI/CD 之旅吧!
二、Pipeline 项目
点击New Item
创建我们的第一个 Pipeline 项目:
编写 Pipeline 脚本,打印一行Hello World
:
pipeline {
agent any
stages {
stage(Hello) {
steps {
echo Hello World
}
}
}
}
点击Save
保存,然后点击Build Now
立即运行,我们可以看到运行结果如下:
三、总结
本文主要针对刚接触 CI/CD 以及 Jenkins 的朋友们,介绍了如何基于 Docker 快速创建 Jenkins 实例,创建了一个简单的Hello World
流水线项目,希望能帮助大家快速入门 Jenkins!
最后:【可能给你带来帮助的教程】
3.使用gitlab的CI/CD中pipelines进行部署
整个持续集成和持续部署的流程如下:
1)创建该项目所需要的runner
有的时候我们不同的项目常常需要不同的包,为了避免我们的gitlab-ci服务器上的环境比较杂乱,因此我们可以使用docker来当作runner的executor,因此我们给该项目创建了三个runner,需要用到python2和python3的环境,因为我们注册两个不同tags的runner,另外还创建了一个tags为demo的shell的runner
gitlab和jenkins是什么关系?如何使用啊?
下一篇3、新建用户成功后,用户列表显示该用户信息。
-
jenkins系统管理(一)-管理用户、管理插件