想试一试jenkins 自动部署得功能,此处记录一下。
ubuntu+ docker + jenkins + svn
安装jenkens
拉取最新镜像
1 | docker pull jenkins/jenkins |
启动jenkins
1 | sudo docker run -d -u 0 --privileged --name jenkins_node1 -p 49003:8080 -v /root/jenkins_node1:/var/jenkins_home jenkins/jenkins:latest |
-u 0
指的是传入root账号ID,覆盖容器中内置的账号
-v /root/jenkins_node1:/var/jenkins_home
指的是 将docker容器内的目录**/var/jenkins_home**映射到宿主机 /root/jenkins_node1目录上
–name jenkins_node1
将容器命名为 jenkins_node1
-p 49003:8080
端口映射,将容器的8080端口映射到宿主机的49003端口
–privileged
赋予最高权限
整条命令的意思
运行一个镜像为 jenkins:latest 的容器,命名为 jenkins_node1,使用 root 账号覆盖容器中的账号,赋予最高权限,将容器的 /var/jenkins_home映射到宿主机的 /root/jenkins_node1目录下,映射容器中8080端口到宿主机49003端口
执行完成后,等待几十秒,等待 jenkins 容器启动初始化。到浏览器中输入 localhost:49003 查看jenkins是否启动成功
获取密码
1 | sudo cat /root/jenkins_node1/secrets/initialAdminPassword |
安装插件
-
ssh 插件用于连接服务器 进行上传代码等操作。在全局配置中设置高级选项中可以设置密码/密码文件
NodeJS
配置前端 node 环境,可以新增多个版本。后续构建环境时可供选择
Subversion
svn 源代码管理,在新建工程时 源码管理可配置svn.需要提供账户,密码,svn代码地址
新增工程
源码管理与构建环境之外,还有 常规配置。跟备注差不多
新增构建步骤
安装依赖,打包并压缩成压缩包
构建后操作
将压缩包上传到指定目录后得操作,备份,解压
采用日期后缀备份,不自动删除备份文件
1 | full_filename="dist$(date +"%Y_%m_%d_%H_%M_%S")" |
触发器设置
如果需要 实现 svn 代码提交就触发对应任务构建。需选择远程触发,github 选择 github hook
访问路径
1 | // JENKINS_URL 为 jenkins根路径,TOKEN 为上边输入框内容 |
配置 svn 钩子
接下来应用到svn仓库的hooks/post-commit.tmpl就行了 进入svn所在服务器后台,复制一份(注意文件执行权限)
cp -rp /docker/svn/hyn/hooks/post-commit.tmpl post-commit
注释掉原有内容,加入一行:
curl -X post -v -u jenkins用户名:jenkins密码 最终url
1 | curl -X post -v -u admin:3fb9d43c15bb4fa68cdfb52c44a19cbe http://192.168.101.66:8080/job/DM/build?token=suzhou-svn-hook |
可惜构思svn服务器没有开放权限,这个功能没有测试成功
- 本文作者: 王不留行
- 本文链接: https://wyf195075595.github.io/2023/03/14/programming/linux/jenkins/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!