Jenkins 是什么?
Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。
开始使用 Jenkins
虚拟机系统:
- Linux系统 Centos 7
虚拟机配置:
- 2G 内存
- 20 GB 的硬盘空间
需要安装以下软件:
- Java 8 ( JRE 或者 JDK 都可以 )
安装并运行 Jenkins( IP:192.168.56.200 )
1、导入镜像
sudo wget -o /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
2、导入公钥
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
3、安装 Jenkins
yum install jenkins
4、修改端口
vim /etc/sysconfig/jenkins
修改部分:JENKINS_PORT="8091"
5、启动 Jenkins
systemctl start jenkins
Jenkins 常用命令
systemctl start jenkins -- 启动jenkins
systemctl restart jenkins -- 重启jenkins
systemctl status jenkins -- 查看jenkins启动状态
使用 Jenkins
1、浏览器访问:http://192.168.56.200:8091/
2、查看密码:cat /var/lib/jenkins/secrets/initialAdminPassword
3、然后直接选推荐安装的插件,或者直接下一步即可
以下结合gitlab布署项目
安装并运行 gitlab( IP:192.168.56.201 )
1、下载gitlab包
sudo wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm
2、安装gitlab
sudo rpm -i gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm
3、修改端口
vim /etc/gitlab/gitlab.rb
修改部分:external_url = http://192.168.56.201:8092
4、重置并启动GitLab
gitlab-ctl reconfigure
gitlab-ctl restart
提示 "ok: run:"表示启动成功
访问 Gitlab
1、访问浏览器: http://192.168.56.201:8092
2、初始账户: root 密码: 5iveL!fe
使用 Gitlab 布署项目
1、gitlab添加测试项目
git@192.168.56.201/novel/cms-admin.git
2、jenkins 安装必要插件
Publish Over SSH
Gitlab Hook Plugin
Gitlab Plugin
Git Parameter Plug-In
SSH Agent
SSH Build Agents
SSH plugin
3、新建 Jenkins 任务
注:把jenkins机器的公钥添加至gitlab机器的 ~/.ssh/authorized_keys 列表
3.1、创建*任务( test-push )
3.2、源码管理( 使用gitlab )
3.3、配置触发器,用于gitlab更新代码时通过webhook触发jenkins发布代码
3.4、配置构建需执行的shell
3.5、保存配置即可
测试中使用的shell
Execute shell:
cd "/var/lib/jenkins/workspace/test-push"
rm -f git.tar.gz
tar -zcf git.tar.gz .git
scp -i /var/lib/jenkins/workspace/id_rsa -rP 22 git.tar.gz root@192.168.56.201:/www/cms-admin
Execute remote host shell: ( 执行 gitlab 机器 )
cd /www/cms-admin
rm -rf .git
tar -xf git.tar.gz
git checkout master
git reset --hard master
git clean -f -d
布署代码
1、build now 手动构建发布
2、通过webhook触发构建发布
2.1 配置gitlab中webhook
url: GitLab webhook URL: http://192.168.56.200:8091/project/test-push
token: 使用创建jenkins任务配置中生成的token
gitlab 测试触发:
成功时返回:Hook executed successfully: HTTP 200