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
        保存退出
}   


7.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网站,查看更新内容。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值