环境

Windows 10

Docker Version 18.06.1-ce-win73 (19507)

运行jenkins

运行jenkins 容器

docker run -d --name lnmp-jenkins --user root -p 8080:8080 -p 50000:50000 jenkins/jenkins:2.165

1、请使用 root 账户运行,否则使用默认jenkins账户运行的时间将会有问题。

2、由于是Windows 环境,所以这里不建议挂在数据卷。否则将会有一些插件安装不成功的问题出现。如果非要挂在请求使用 Kitematic.exe  

3、方便区分,请给容器给个名字

设置账户

通过http://you_host:8080登陆查看

在Getting Started界面会需要初始的密码Unlock Jenkins。密码会在输出终端,也可根据页面提示到容器的jenkins_home中查找

查看密码请进入容器内查看

docker exec -it lnmp-jenkins bash

密码文件路径
root@52c33b1a61ba:/var/jenkins_home/secrets#

有了密码,输入后安装建议的插件。完毕后,根据提示设置登陆账户。

安装Publish Over SSH插件

首页 -> 点击系统管理 -> 管理插件 ->可选插件 -> 过滤:ssh -> 选择Publish Over SSH插件,点击直接安装。 

设置服务器SSH信息

首先在容器中生成rsa密钥:

# 从宿主机客户进入容器,目前容器名lnmp-jenkins,也可通过docker ps 查看
$ docker exec -it lnmp-jenkins /bin/bash
# 进入容器后建立.ssh目录,创建密钥文件私钥id_rsa,公钥id_rsa.pub
~ mkdir ~/.ssh && cd ~/.ssh
~ ssh-keygen -t rsa
# 一直回车即可

添加公钥到宿主机
将id_rsa.pub中字符串添加到authorized_keys文件末尾,重启ssh服务sudo service ssh restart
注意宿主机是否开启ssh服务。
可以在容器终端中使用下面的命令添加到宿主机中。也可手动复制id_rsa.pub到宿主机的.ssh/authorized_keys文件中。

ssh-copy-id -i ~/.ssh/id_rsa.pub <username>@<host>

这里会要求我们输入远程服务器的密码。

修改服务器的ssh配置文件

ssh-server配置文件位于:/etc/ssh/sshd_config中,需要设置ssh-server允许使用私钥/公钥对的方式登录,打开配置文件:

vim /etc/ssh/sshd_config

增加设置:

RSAAuthentication yes
PubkeyAuthentication yes

然后重启ssh-server:

sudo /etc/init.d/ssh restart

设置完成之后就可以使用命令ssh <username>@<host>直接登录服务器了,不需要再输入密码了。

项目配置

首先,新建一个任务。填写项目名称。 选择源码管理为:Git,填写项目库的URL。私有项目需要添加Git账号。

构建环境:选择Send files or execute commands over SSH after the build runs,选择服务器,以及添加Exec command。保存。

添加私钥
jenkins首页,系统管理 -> 系统设置 -> 下拉,找到Publish over SSH,填写Key 和 SSH Server -> 保存

高级选项能够配置ssh服务器端口和超时。Test可测试,显示success配置成功。

配置webhook

配置webhook,实现自动部署
获取API tonken:首页 -> 用户 -> 选择当前的用户 -> 设置 -> 在API Tonken 项中点击Show API Token...

http://jenkins.tinywan.top/buildWithParameters?token=11216ee77000c52461ad16e5c4502427bb&cause=Cause+Text

http://jenkins.tinywan.top/job/Python%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/build?token=11216ee77000c52461ad16e5c4502427bb&cause=Cause+Text

添加令牌:返回首页 -> 项目 -> 配置 -> 构建触发器 -> 选择 "触发远程构建" ->粘贴"API Token"内容到"身份验证令牌"

注意:这里的身份验证令牌是随意生成的。不是非必须后台生成的token api

  

测试结果

修改本地代码然后提交、Jenkins自动构建部署

查看构建日志记录

控制台输出
Started by remote host 192.30.252.37 with note: Cause Text
Building in workspace /var/jenkins_home/workspace/Python自动化测试
No credentials specified
> git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
> git config remote.origin.url https://github.com/Tinywan/t_log.git # timeout=10
Fetching upstream changes from https://github.com/Tinywan/t_log.git
> git --version # timeout=10
> git fetch --tags --progress https://github.com/Tinywan/t_log.git +refs/heads/*:refs/remotes/origin/*
> git rev-parse refs/remotes/origin/master^{commit} # timeout=10
> git rev-parse refs/remotes/origin/origin/master^{commit} # timeout=10
Checking out Revision 34f8b6beaf5ebc8f400e2da3432fd798c64acc83 (refs/remotes/origin/master)
> git config core.sparsecheckout # timeout=10
> git checkout -f 34f8b6beaf5ebc8f400e2da3432fd798c64acc83
Commit message: "使用Docker+Jenkins自动构建部署【Python自动化测试】"
> git rev-list --no-walk fd1c8499da56077ce84accfd3d0b1843c859398a # timeout=10
SSH: Connecting from host [52c33b1a61ba]
SSH: Connecting with configuration [www.tinywan.com] ...
SSH: EXEC: STDOUT/STDERR from command [pwd
cd /home/www/data/t_log
echo "jenkins before" >> jenkins.log
git pull
echo "jenkins after" >> jenkins.log] ...
/home/www
From https://github.com/Tinywan/t_log
fd1c849..34f8b6b master -> origin/master
Updating fd1c849..34f8b6b
Fast-forward
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
SSH: EXEC: completed after 4,005 ms
SSH: Disconnecting configuration [www.tinywan.com] ...
SSH: Transferred 0 file(s)
Finished: SUCCESS

参考

1、使用ssh免密码登录Linux服务器

2、Docker+Jenkins自动构建部署

3、SpringBoot+Docker+Git+Jenkins实现简易的持续集成和持续部署

4、JENKINS针对不同项目组对用户进行权限分配

使用Docker+Jenkins自动构建部署的更多相关文章

  1. 【转】使用Docker+Jenkins自动构建部署

    转载自 https://segmentfault.com/a/1190000012921606 环境 阿里云ESC,宿主机服务器安装Docker,在安全规则中确认8080端口开启. 客户端mac 运行 ...

  2. jenkins自动构建部署

    环境 centos7   tomcat8.5.37   maven3.3.9   jdk8   git1.8.3.1 安装jdk,tomcat,maven,git(环境变量,配置文件什么的自行百度) ...

  3. 实战:向GitHub提交代码时触发Jenkins自动构建

    当我们提交代码到GitHub后,可以在Jenkins上执行构建,但是每次都要动手去执行略显麻烦,今天我们就来实战Jenkins的自动构建功能,每次提交代码到GitHub后,Jenkins会进行自动构建 ...

  4. Ant + Jenkies +Tomcat 自动构建部署Web项目

    前言:博主资历尚浅,很多东西都还在刚起步学习的阶段,这几天开发任务比较轻,就在自己window系统下,模拟部署远程服务器,利用Jenkies + Ant + Tomcat 搭建了一个自动发布部署的环境 ...

  5. Gitlab源码库里代码提交后,如何触发jenkins自动构建?

    版本库里代码提交后,如何触发jenkins自动构建?这是一个面试题,感觉自己回答的并不好,因为并没有用过这个功能,之前公司实际项目用的是svn版本管理,一般都用立刻构建,和定时任务构建(不管代码是否有 ...

  6. Gitlab使用Webhook实现Push代码后的jenkins自动构建

    本文出自https://www.cnblogs.com/kevingrace/p/6479813.html 怕以后找不到,所以先写到自己博客中 Gitlab利用Webhook实现Push代码后的jen ...

  7. 小伙伴想学Jenkins自动构建发布项目,我:安排上了!!

    写在前面 趁着十一长假,很多小伙伴都在悄悄学习,有些是为了能够顺利通过面试,进入大厂升职加薪.有些则是为了进一步巩固和提高自己的专业技能,希望有朝一日能过成为互联网架构师乃至技术专家.这不,就有小伙伴 ...

  8. DEVOPS技术实践_02:jenkins自动构建项目

    一.用户名密码错误 打开jenkins发现用户名密码错误,解决 1.1 找到config.xml文件 [root@jenkins-master ~]# ll -a drwxr-xr-x. root r ...

  9. 使用jenkins进行项目的自动构建部署

    jenkins 简介 Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括:持续的软件版本发布/测试项目和监控外部调用执行的工作. 官网地址地址: https://je ...

随机推荐

  1. mssql2008 r2 修改默认端口

    1.点击“开始”-“所有程序”-“Microsoft SQL Server 2008R2”-“配置工具”-“SQL Server配置管理器” 2.在打开的“SQL Server配置管理器”窗口中,在左 ...

  2. 五 Struts 配置文件

    一.struts.xml详解1.package:包 属性:name=命名 namespace=在action访问路径前面加的前缀 extends=继承另外的包 action:name=action的访 ...

  3. 【续】5年后,我们为什么要从 Entity Framework 转到 Dapper 工具?

    前言 上一篇文章收获了 140 多条评论,这是我们始料未及的. 向来有争议的话题都是公说公的理,婆说婆的理,Entity Framework的爱好者对此可以说是嗤之以鼻,不屑一顾,而Dapper爱好者 ...

  4. 10-PI开发手册-ERP发布服务供外围系统调用(RFC类型)

      一.      文档信息 版本号* 更新日期* 姓名* 更新内容及更新理由* 备注* V1.0 2019/02/19 fanjb 文档创建 以福利接口13589(Z00HRJ_GJJ_REV_FI ...

  5. JS string 常用方法总结

    var str = "abc123def666"; // charAt() 方法返回字符串中指定位置的字符. // 参数:index // console.log(str.char ...

  6. JavaScript的数据结构和算法

    所有JavaScript对象都有hasOwnProperty(value)的方法,用来返回一个表明对象是不是具有这个value Key值属性的布尔值. javaScript的方法 具有delete的方 ...

  7. ASP.NET Core 2.x On Ubuntu

    安装.NET Core 首先需要安装.NET Core Runtime: https://www.microsoft.com/net/download 点击之后,根据您的Linux发行版不同,选择相应 ...

  8. Windows安装MongoDB 4.0并赋予用户访问权限

    第一部分 Windows安装MongoDB-4.0 第一步:下载MongoDB:https://www.mongodb.com/download-center?jmp=nav#community 我目 ...

  9. ES6 对象增强

    对象字面量语法扩展: 1, 属性初始化语法简写:给一个属性赋一个变量值,如果变量名和属性名相同,可以省略变量名和冒号,直接写属性名,js引擎在执行代码的时候,自动查找 和属性命名相同的变量并赋值. l ...

  10. 【LUOGU???】WD与数列 sam 启发式合并

    题目大意 给你一个字符串,求有多少对不相交且相同的子串. 位置不同算多对. \(n\leq 300000\) 题解 先把后缀树建出来. DFS 整棵树,维护当前子树的 right 集合. 合并两个集合 ...