Jenkins安装
Jenkins是一款免费的持续集成跟持续交付软件。关于他的安装,网络上有不少。这次我们用dokcer来安装。
我们运行jenkins bule的镜像,然后配置HOST机为jenkins的一个节点。
关于持续集成跟持续交付,我们通过在项目GIT仓库里放置Jenkinsfile文件。每次执行集成,Jenkins都会把项目拉下来,执行里面的jenkinsfile脚本。
1、运行Jenkins Blue Ocean
编辑docker compose文件
version: '2'
services:
jenkins:
image: jenkinsci/blueocean:latest
ports:
- "8080:8080"
- "50000:50000"
volumes:
- /home/docker/jenkins-compose/jenkins_home:/var/jenkins_home
- /etc/localtime:/etc/localtime:ro
environment:
- TZ=Asia/Shanghai
container_name: jenkins
启动Jenkins
$ docker-compose up -d
2、添加主机为Jenkins从节点
浏览器访问 localhost:8080, 第一次进入管理配置页面,需要密码,可以通过 docker logs jenkins 找到。
第一步选择安装建议的插件,这样可以省下不少麻烦。
添加SSH私钥
首先要有一份SSH证书,可以根据 https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/ 生成一份。
在首页的左侧依次单击 Credentials » System » Global credentials(unrestricted) » Add Credentials
- Kind 选择 SSH Username with private key
- Scope 选择 Global(Jenkins, nodes, items, all child items, etc)
- Username 填写证书可以登录的用户名,我是把证书分配给root用户,所以这里填root
- Private Key 选择 Enter directly,然后把私钥用记事本打开,把里面的文本填进去
- Passphrase 如果私钥有加密,就填私钥的密码,如果没有,就不用填
- ID jenkins会自己生成一个
- Description 可以不填
最后点OK就可以了
新建节点
因为Jenkins运行在Docker里面,很多命令都无法执行,特别是Docker build命令,所以我们需要一台环境完整的机子来执行持续集成。
注意: 这台机子需要安装JDK
在首页的左侧依次单击 系统管理 » 管理节点 » 新建节点
- 节点名称 填 localhost (你喜欢的任何名称)
- 选择 Permanent Agent
点击 OK 进入节点配置
- 描述 可以不填
- of executors 配置该节点可以同时运行多少个任务
- 远程工作目录 配置jenkins在那台机子上使用的目录,我是填 /home/jenkins_home
- 标签 用来给节点归类,jenkinsfile文件可以指定在哪个node执行[例如 node(docker),docker就是标签],如果有多个标签,用空格隔开就可以了。
- 用法 选择 尽可能的使用这个节点。因为我只有这一个节点。
- 启动方法 选择 Launch slave agents via SSH。Credentials选择刚才那一个。需要把SSH公钥安装到节点那台机子上。Host Key Verification Strategy 选择 Manually trusted key Verification Strategy (自动信任)
- Availability 选择 Keep this agent online as much as possible
3、添加持续集成项目
在Jenkins首页选择 新建 » Mutibranch Pipeline 填个名字,点击OK开始配置
主要填以下GIT仓库的位置,保证可以访问就可以了,在 Build Configuration 选择 by Jenkinsfile, Script Path (我是填 jenkins/Jenkinsfile)是相对于项目的根目录的。
项目配置说明
以下是我的项目的目录结构
[root@bogon simple-service-webapp]# ls
jenkins pom.xml src target
[root@bogon simple-service-webapp]# tree jenkins/
jenkins/
├── build.sh
├── docker-build.sh
├── Dockerfile
├── Jenkinsfile
└── simple-service-webapp.war
0 directories, 5 files
[root@bogon simple-service-webapp]# cat jenkins/Jenkinsfile
node('docker') {
stage('Build') {
def commitHash = checkout(scm).GIT_COMMIT
sh 'sh ./jenkins/build.sh'
}
stage('Docker Build'){
sh 'sh ./jenkins/docker-build.sh'
}
}
我自己编写了编译命令 build.sh 跟打包上传docker的命令 docker-build.sh,然后通过配置Jenkinsfile来执行这些命令。 需要注意的是,开始执行之前要执行 checkout scm,不然Jenkins是找不到我在项目中包含的这些命令的。
剩下的就自己研究了。
版权声明:如无特别声明,本文版权归 一年四季 所有,转载请注明本文链接。
(采用 CC BY-NC-SA 4.0 许可协议进行授权)
本文标题:《 Jenkins安装 》
本文链接:https://www.yucanlin.cn/operation/Jenkins%E5%AE%89%E8%A3%85.html