jenkins-2

简介: jenkins-2

环境:

   gitlab:192.168.8.10

   jenkins:192.168.8.20

   nginx:192.168.8.30

1.在gitee码云上下载项目代码(gitlab服务器)

cd /root

git clone https://gitee.com/kangjie1209/monitor.git

2.gitlab服务器创建本地代码库

mkdir /web

cd /web

   

3.登录gitlab,创建新的web项目
admin area -- new project -- 选择dev组,项目名:web -- create

 

4.在gitlab本地服务器上传代码到gitlab

cd /web

git init

git remote add origin git@192.168.8.10:dev/web.git

git pull origin master

复制monitor内容到/web

git add .

git commit -m "Initial commit"

git push -u origin master

5.登录jenkins,新建自由项目web

   new item -- create -- freestyle

   -- configure -- 源代码库 -- git -- gitlab路径及公钥认证 -- save

   build now:手动同步测试

 

6.jenjins实现脚本上传网站代码

(1)开启一台虚拟机,安装nginx

   yum -y install epel-release

   yum -y install nginx

   systemctl start nginx

   systemctl stop firewalld

   setenforce 0

 

(2)在jenkins上编写上传nginx的脚本

mkdir /scripts

vim /scripts/web.sh

添加:

#!/bin/sh

CODE_DIR=/var/lib/jenkins/workspace/web/

WEB_DIR=/usr/share/nginx

IP=192.168.8.30

TIME=`date +%F-%H-%M-%S`

cd $CODE_DIR && tar zcf /tmp/web-${TIME}.tar.gz  ./*

scp /tmp/web-${TIME}.tar.gz $IP:$WEB_DIR

ssh root@$IP "cd $WEB_DIR && mkdir web-$TIME"

ssh root@$IP "cd $WEB_DIR && tar xf web-${TIME}.tar.gz -C web-$TIME && rm -rf web-${TIME}.tar.gz"

ssh root@$IP "cd $WEB_DIR && rm -rf html && ln -s web-$TIME html"

保存退出

(3)jenkins传输公钥到nginx,执行脚本,测试查看nginx网站

ssh-copy-id root@192.168.8.30

sh /scripts/web.sh

(4)Jenkins手动构建,关联脚本,自动上传

   项目web -- configure -- build -- Execute shell -- sh /scripts/web.sh

 

{ 注意:如果安装jenkins后没有修改配置为root,脚本执行如果有权限问题,解决方法

   (1)修改jenkins登录shell为修改jenkins登录shell为/bin/bash

       vim /etc/passwd

       修改:

       jenkins:x:990:985:Jenkins Automation Server:/var/lib/jenkins:/bin/bash

       保存退出

   (2)修改jenkins服务器的本地profile

       vim /root/.bash_profile

       添加:

       export PS1='[\u@\h \W]\$'

       保存退出

       source /root/.bash_profile

   (3)赋予jenkins用户sudo权限

       isudo

       添加:

       jenkins ALL=(ALL)       NOPASSWD: ALL

       保存退出

}

     

8.jenkins关联gitlab,实现自动构建上传代码

(1)jenkins:

       web项目-- configure -- build triggers -- 勾选最长选项 -- 点击高级advanced

       -- 选择Filter branches by name --在include填写master -- 点击generate生成令牌 -- 复制令牌和触发器顶部url路径

       -- save保存

 

   bc548c0fbb8ceccef7b00335e428a18c        用自己的令牌和URL路径

   http://192.168.8.20:8081/project/web

(2)gitlab:

       web项目 -- settings -- integrations -- 把复制的令牌和url粘贴过来 -- add webhook

     

(3)更新push代码,测试自动构建上传。

       在gitlab上,修改代码或添加新的文件,依次执行:git add ; git commit  ; git push

       例如:

           git add .

           git commit -m "modify index.html"

           git push -u origin master

         

(4)登录nginx网站,查看更新内容。


相关文章
|
8月前
|
jenkins 持续交付 网络安全
jenkins
jenkins
50 0
|
9月前
|
JSON jenkins 持续交付
jenkins安装
jenkins安装
130 0
|
12月前
|
存储 jenkins 持续交付
jenkins-1
jenkins-1
62 1
|
11月前
|
存储 jenkins 持续交付
Jenkins-1
Jenkins-1
43 0
|
12月前
|
jenkins 应用服务中间件 持续交付
|
jenkins Java Shell
Jenkins ——你很神气
Jenkins ——你很神气
73 0
|
jenkins Java 持续交付
Jenkins 使用总结
Jenkins 使用总结
131 0
|
jenkins Java 持续交付
Jenkins(一):什么是Jenkins?
Jenkins(一):什么是Jenkins?
331 0
Jenkins(一):什么是Jenkins?
|
监控 Java jenkins
Jenkins
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,
100 0
|
jenkins Java 持续交付
安装Jenkins
安装Jenkins
273 0
安装Jenkins