Jenkins初体验
0. 构建一个测试应用
为了尝试这个DevOps过程,需要一个简要的程序用来部署和测试,这里使用SpringBoot简单构造了一个访问统计器,通过操作Redis数据库进行访问数的自增,并显示不同的用户名。
userchange1. 搭建Jenkins
1.docker环境下的安装
## 下载
docker pull jenkins/jenkins:lts
## 运行
docker run -p 8080:8080 -p 50000:5000 --name jenkins \
-u root \
-v /mydata/jenkins_home:/var/jenkins_home \
-d jenkins/jenkins:lts
2. Jenkins配置
-
之后访问8080进入,根据提示找到密码,并填入。
- img
-
之后安装推荐的插件
- 安装完成之后,创建管理员账号,并进行实例配置
-
之后在插件管理中安装以下插件:
-
根据角色管理权限的插件:Role-based Authorization Strategy
-
远程使用ssh的插件:SSH plugin
-
- 然后通过全局工具配置,配置maven配置: img
-
之后添加全局的ssh的配置,这样Jenkins使用ssh就可以执行远程的linux脚本了
img
3. 角色权限管理
通过
角色管理插件
可以管理jenkins用户,比如可以给管理员赋予所有的权限,给运维人员赋予执行任务的相关权限,其他人员只能查看
- 首先在全局安全配置中启用基于角色的权限管理
- 之后进入管理和分配角色的界面
进入后可分别管理角色和给用户分配角色。
由于这里使用的是gitee,还可以安装gitee的插件,还有一个名为Ocean的插件也不错。
2. 打包部署springboot应用
1. 代码上传至仓库
image-202101022326138502. 进行脚本准备
#!/usr/bin/env bash
app_name='user-api'
dockerhub='127.0.0.1:30204'
docker stop ${app_name}
echo '---stop container---'
docker rm ${app_name}
echo '---remove container---'
# --link 将外部的redis-server,dns到容器内的redis
docker run -p 30090:8080 --name ${app_name} \
--link redis-server:redis \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/${app_name}/logs:/var/logs \
-d ${dockerhub}/${app_name}:1.0-SNAPSHOT
echo '---start container----'
给脚本添加可执行权限
chmod +x ./test-user-api.sh
可以先运行测试一下
3. 在Jenkins中创建执行任务
新建任务
image-20210103002557660设置任务名称后,选择一个自由风格的软件项目
image-20210103003634345之后再源码管理中配置如下
image-20210103003734232此处的凭据直接可以填写账号密码
构建中设置如下:
image-20210103003851103之后添加一个脚本运行的构建,需要预先设置好ssh连接
image-20210103004005996然后就可以保存,构建运行了。
image-20210103030118214构建成功之后,也可以正常访问
image-20210103030207214
网友评论