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


几分钟轻松解决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 jenkinsjenkinsci/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 deniedCan 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/jenkinsjenkins系统时间不正确解决方案问题:安装完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> bashssh-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(轻量级检出) 一定不要勾选 ,因为勾选了之后它不会解析参数化构建的参数

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


    推荐阅读