<返回更多

几分钟轻松解决Jenkins自动化部署

2020-07-27    
加入收藏

几分钟轻松解决Jenkins自动化部署

 

镜像准备

Docker run -u root -d -p 8024:8080 -p 50000:50000 
    -v /data/jenkinsData:/var/jenkins_home 
    -v /var/run/docker.sock:/var/run/docker.sock 
    -v /etc/localtime:/etc/localtime 
    --name jenkins 
    jenkinsci/blueocean 

运行Docker中的Jenkins

# 这会将工作区存储在/ var / jenkins_home中。所有Jenkins数据都存在于那里 - 包括插件和配置。您可能希望将其设为持久卷(推荐):
docker run -d -p 8080:8080 -p 50000:50000 -v /your/home:/var/jenkins_home jenkins

# 这会将jenkins数据存储`/your/home`在主机上。确保`/your/home`容器中的jenkins用户可以访问它(jenkins user-uid 1000)或使用`-u some_other_user`参数`docker run`。

# 您还可以使用卷容器:
docker run -d --name myjenkins -p 8080:8080 -p 50000:50000 -v /var/jenkins_home jenkins

报错:

touch: cannot touch ‘/var/jenkins_home/copy_reference_file.log’: Permission denied
Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?

需要修改下目录权限, 因为当映射本地数据卷时,/home/docker/jenkins目录的拥有者为root用户,而容器中jenkins user的uid为1000

sudo chown -R 1000:1000 /home/docker/jenkins

jenkins系统时间不正确解决方案

问题:安装完jenkins后发现时区不对

解决:打开jenkins的【系统管理】---> 【脚本命令行】,在命令框中输入一下命令【时间时区设为 亚洲上海】:

System.setProperty('org.Apache.commons.jelly.tags.fmt.timeZone', 'Asia/Shanghai')
几分钟轻松解决Jenkins自动化部署

 

多任务串行运行

安装 Multijob 插件

几分钟轻松解决Jenkins自动化部署

 


几分钟轻松解决Jenkins自动化部署

 

参数化构建

  1. 字符参数 -> params:GIT_BRANCH_FRONT defineValue:dev
  2. MultiJob Phase -> pahase jobs -> Add Parameters -> Predefined parameters -> GIT_BRANCH=origin/${GIT_BRANCH_FRONT}

多用户权限

安装 Role-Based Strategy 插件

几分钟轻松解决Jenkins自动化部署

 

 

几分钟轻松解决Jenkins自动化部署

 

 

几分钟轻松解决Jenkins自动化部署

 


几分钟轻松解决Jenkins自动化部署

 

免密发送文件

每次登录远程主机都需要输入密码是很不方便的,如果想要省去这一步骤,可以利用密钥对进行连接,还可以提高安全性。

在本机生成密钥对

  1. 使用ssh-keygen命令生成密钥对:
docker exec -it <容器ID> bash
ssh-keygen -t rsa

然后根据提示一步步的按enter键即可(其中有一个提示是要求设置私钥口令passphrase,不设置则为空,这里看心情吧,如果不放心私钥的安全可以设置一下),执行结束以后会在 /home/当前用户 目录下生成一个 .ssh 文件夹,其中包含私钥文件 id_rsa 和公钥文件 id_rsa.pub。

  1. 将公钥复制到远程主机中

使用ssh-copy-id命令将公钥复制到远程主机。ssh-copy-id会将公钥写到远程主机的 ~/ .ssh/authorized_key 文件中

ssh-copy-id root@192.168.0.1

经过以上两个步骤,以后再登录这个远程主机就不用再输入密码了。

参数化构建 Git Parameter

选择分支构建

使用参数化构建的时候,选择分支的时候一运行却解析不出来,搜了很久都没搜到,结果我瞎点结果误打误撞成功了,是因为最下面的Pipeline里的 Lightweight checkout(轻量级检出) 一定不要勾选 ,因为勾选了之后它不会解析参数化构建的参数

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>