相关文章推荐

一、环境以及工具信息

1. 3台服务器信息

jenkins: 192.168.123.163、serverA:192.168.123.130、serverB :139.198.17.241三台机器都是ubuntu16.04系统

所需jenkins插件工具: Publish Over SSH、 Maven Integration plugin、 git plugin、 Git Parameter Plug-In

ssh工具:sshd

jenkins版本为2.17

二、搭建目标

1. 实现可选git分支以及拉取最新代码

2. 实现选择不同环境发布jar部署到对应的机器上

1. 安装插件:Publish Over SSH、 Maven Integration plugin、 git plugin

2. jenkins机器配置

a. 安装jdk8

b.配置maven路径,下载tar.gz,解压即可

3. 配置系统管理-》全局工具配置

只需要配置jdk和maven,其他都默认即可

Source files:需要发送到远程服务器的文件,可以使用通配符和Jenkins变量(注意这里要写相对jenkins的workspace的工作目录而已,不支持绝对路径,target为项目的子目录)
Remove prefix:删除目录前缀,填target表示不创建target目录
Remote directory:文件发送到远程服务器的哪个目录下。这里跟你系统设置里的工作目录关联,会在对应的remote directory 目录下创建Kepler..目录。

Exec command:文件发送到远程服务器后,在远程服务器上执行的命令

#模糊查询指定jar服务的进程id pid=` ps -ef| grep Mock| grep -v grep | awk ' {print $2} ' ` if [ -n " $pid " ] echo ' 163 mock The pid: server ' $pid ' will be killed.... ' sudo kill - 9 $pid echo ' 163 mock The pid: server ' $pid ' will be start ' nohup java -jar ${JAR_PATH}/${jar_name} & echo ' 163 mock The pid: server ' $pid ' not exist , will be start ' nohup java -jar ${JAR_PATH}/${jar_name} & echo ' 163 mock The pid: server ' $pid ' started '

6. 保存

选中项目下的git parameters,选中分支BRANCH,选中环境ENV发布。最后就可以享受成果了。

五、常见问题

1.jenkins 彻底解决sudo sudo: no tty present and no askpass program specified

a. chmod 600 /etc/sudoers

b.vim /etc/sudoers 改成下列值

%root        ALL=(ALL)       NOPASSWD: ALL

%sudo  ALL=(ALL) NOPASSWD: ALL

c.添加jenkins Linux account到root 组中:

usermod -a -G root jenkins

运行 id jenkins 查看 jenkins Linux account是否已经属于 root

d.重启jenkins

2. 配置 ssh remotes hosts报 Can't connect to server

  • 本地机器秘钥生成不对
  • 必须将本地私钥完整内容拷贝,包括----字符
  • 生成秘钥时候的密码错误
  • 3. There were errors checking the update sites: UnknownHostException: updates.jenkins.io

    方案:没有外网导致

    https://www.jianshu.com/p/6288703532cf

     
    推荐文章