jenkins+git自动化上线jenkins+gitlab

1.安装epel源

rpm -ivh https://mirrors.kernel.org/fedora-epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm

2.安装jenkins

wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo

rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key

yum install jenkins -y

3.安装jdk

yum install java-1.8.0-openjdk.x86_64 -y

4.安装git

yum install git -y

5.启动jenkins

service jenkins restart

6.测试jenkins然后在浏览器上输入

http://ip:8080

jenkins+git自动化上线jenkins+gitlab_第1张图片

 

cat /var/lib/jenkins/secrets/initialAdminPassword

c9c35f0eefb84059b4d2c70baed5d7e1

8.输入密码登录完成

jenkins+git自动化上线jenkins+gitlab_第2张图片

 

9. 安装插件:

我是新手我选择了第一个(安装推荐的插件)

jenkins+git自动化上线jenkins+gitlab_第3张图片

 

10.然后开始创建用户(你可以继续使用admin也可以创建新的用户)

jenkins+git自动化上线jenkins+gitlab_第4张图片

 

11.jenkins安装完成

jenkins+git自动化上线jenkins+gitlab_第5张图片

 

12.安装ssh插件

jenkins+git自动化上线jenkins+gitlab_第6张图片

 

jenkins+git自动化上线jenkins+gitlab_第7张图片

 

13.配置公私钥

安装插件,Publish Over SSH我的已安装了,未安装的会出现这个的,未安装安装上就行

在Linux服务器上生成公私钥:

jenkins+git自动化上线jenkins+gitlab_第8张图片

 

[root@bogon .ssh]# ssh-keygen -t rsa -C "[email protected]"

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /root/.ssh/id_rsa.

Your public key has been saved in /root/.ssh/id_rsa.pub.

The key fingerprint is:

SHA256:MXl46VkFaBA1pDoPkcCCeyE2ZVjlHkslbMhwICTHpUI [email protected]

The key's randomart image is:

+---[RSA 2048]----+

|+EOB*o .o=+.... |

|*=*+o+o. +oo . |

|oooo.+o *.+ . |

|... o oo * o |

| . o+ S o |

| + |

| . |

| |

| |

+----[SHA256]-----+

[root@bogon .ssh]# cp id_rsa.pub authorized_keys

[root@bogon .ssh]# chmod 600 authorized_keys

[root@bogon .ssh]# ssh localhost

The authenticity of host 'localhost (::1)' can't be established.

ECDSA key fingerprint is SHA256:t1iQaiLET6B/bFvzukcTrBLUJLrSkBTUva+My47Zd7M.

ECDSA key fingerprint is MD5:9a:6e:4d:3b:d1:b6:64:f8:77:d7:2d:c7:33:34:f4:98.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.

Last failed login: Mon May 7 23:52:01 CST 2018 on pts/0

There was 1 failed login attempt since the last successful login.

Last login: Mon May 7 15:55:23 2018 from 192.168.18.1

拷贝公钥,修改权限为600

15.然后给jenkins配置秘钥

jenkins+git自动化上线jenkins+gitlab_第9张图片

 

jenkins+git自动化上线jenkins+gitlab_第10张图片

 

16.配置完成了点下test configuration 配置没问题了结果就成success,不是success就检查下配置

17.ssh秘钥配置完成,下面创建任务

jenkins+git自动化上线jenkins+gitlab_第11张图片

 

18.配置下你的工作空间,便于管理(描述什么的,随便写不写都行)

jenkins+git自动化上线jenkins+gitlab_第12张图片

 

19.配置git,这里需要github的utl了,到自己的github项目上去找

jenkins+git自动化上线jenkins+gitlab_第13张图片

 

19..1这里在自己的github找到https的url(我在这里选用的是https,而不是用ssh,方法其实都差不多)

jenkins+git自动化上线jenkins+gitlab_第14张图片

 

https://github.com/*

19..2.可以用ssh,但是ssh需要另外配置秘钥

jenkins+git自动化上线jenkins+gitlab_第15张图片

 

19..2..1在这里填入私钥即可

jenkins+git自动化上线jenkins+gitlab_第16张图片

 

19..2..3如果是ssh,就需要在jekins上也配置秘钥

jenkins+git自动化上线jenkins+gitlab_第17张图片

 

jenkins+git自动化上线jenkins+gitlab_第18张图片

 

19..2..4要是gitlab上拉代码就不用勾选。

①在Repository URL填写自己的远端地址。git打头的是ssh的连接形式,http打头的是http的连接形式。

②在Credentials这一栏,我弄了很久,每次我都是直接点击那个“Add”->“Jenkins”然后创建账号。结果总是不对。后来我回到首页:

jenkins+git自动化上线jenkins+gitlab_第19张图片

 

 

jenkins+git自动化上线jenkins+gitlab_第20张图片

 

19..2..5点击 Stores scoped to Jenkins中的 Jenkins

jenkins+git自动化上线jenkins+gitlab_第21张图片

 

19..2..6在System中鼠标移动Global credentials(unrestricled)右边会出现小三角,

点击会出现Add Credentials.

jenkins+git自动化上线jenkins+gitlab_第22张图片

 

19..2..7 Kind中选择SSH类型

jenkins+git自动化上线jenkins+gitlab_第23张图片

 

Username这里是可以随便填,建议填写你生成ssh时的key。

private key这里选择第一个“Enter directly”,再把.ssh文件夹中的私钥全部复制过来(包括注释)。

至此,正常情况下这样配置,ssh认证是没有错的!

③Branches to build这一栏:*/master

20.构建触发器

定时构建,每两分钟构建一次(也可以不填)

jenkins+git自动化上线jenkins+gitlab_第24张图片

 

21.构建,构建要根据具体的需求来做,我这里只是为了测试,就随意写了个脚本

jenkins+git自动化上线jenkins+gitlab_第25张图片

 

jenkins+git自动化上线jenkins+gitlab_第26张图片

 

[root@hxy-centos7 ~]# mkdir /data

[root@hxy-centos7 my_script]# chmod 777 /data/ -R

[root@hxy-centos7 my_script]# chmod 777 /tmp -R

构建

jenkins+git自动化上线jenkins+gitlab_第27张图片

 

22.发现权限不够的情况下

①可以把需要的文件和目录的拥有者都改为jenkins用户;

②修改jenkins配置文件把jenkins用户改为root用户

vim /etc/sysconfig/jenkins

JENKINS_USER="jenkins"

改为:

JENKINS_USER="root"

jenkins+git自动化上线jenkins+gitlab_第28张图片

 

1. 手动把需要的权限的文件夹或者目录加权限,(这样很费劲的)

构建成功:

jenkins+git自动化上线jenkins+gitlab_第29张图片

 

这里只是为了测试写了个简单的脚本,至于构建成功后你再怎么做就看个人的需要了

二. Jekins+Gitlab自动化上线

安装jenkins就不重复了

1.安装gitlab插件

jenkins+git自动化上线jenkins+gitlab_第30张图片

 

2.如图所示输入gitlab

jenkins+git自动化上线jenkins+gitlab_第31张图片

 

3.我这里已经安装了,没有安装的安装上就行了

然后配置公私钥(不要再系统配置的gitlab里面配置,配置都失败了):

Gredentials--->stores scoped to jenkins--->global--->add gredentials

jenkins+git自动化上线jenkins+gitlab_第32张图片

 

4.然后选择

ssh username whieh private key

5.Username随便填,但是最好填自己秘钥的名字

jenkins+git自动化上线jenkins+gitlab_第33张图片

 

6.然后再私钥里面填入私钥:

其他的可填可不填,看个人的情况:

jenkins+git自动化上线jenkins+gitlab_第34张图片

 

7.然后配置自己gitlab的公私钥:

jenkins+git自动化上线jenkins+gitlab_第35张图片

 

8.然后创建任务:

jenkins+git自动化上线jenkins+gitlab_第36张图片

 

9.描述什么的,看个人的情况来填:

jenkins+git自动化上线jenkins+gitlab_第37张图片

 

10.秘钥就选我们刚才配置的

配置定时任务,这个的定时任务和crontab不一样,这里的分别代表

分 时 天 月 年

我这里写的是每小时的半点执行一次

jenkins+git自动化上线jenkins+gitlab_第38张图片

 

[root@bogon my_script]# cat jenkins_web.sh

#!/bin/bash

now_time=$(date +"%Y%m%d_%H%M%S")

mv /data/web /data/web_back_${now_time}

mv /data/git_dir/ /data/web/

mkdir /data/git_dir

chmod 777 /data/git_dir

11.构建失败,查看构建时的输入,找到问题

对于这样权限不够的,我直接吧文件夹的拥有者改成了jenkins就没问题了

chown jenkins:jenkins /data -R

jenkins+git自动化上线jenkins+gitlab_第39张图片

 

12.修改完成再次构建

jenkins+git自动化上线jenkins+gitlab_第40张图片

 

构建成功就OK了

13.然后到浏览器上测试一下

jenkins+git自动化上线jenkins+gitlab_第41张图片

 

14.再次修改提交测试一下

jenkins+git自动化上线jenkins+gitlab_第42张图片

 

15.提交完成,开始构建测试

jenkins+git自动化上线jenkins+gitlab_第43张图片

 

16构建完成

jenkins+git自动化上线jenkins+gitlab_第44张图片

 

17.在浏览器上看一下

jenkins+git自动化上线jenkins+gitlab_第45张图片

 

网上找了很多,这篇文章比较齐全,还有用weebhooks自动拉去代码的后边测试成功后会放上来

https://blog.51cto.com/853056088/2113889?utm_source=oschina-app

你可能感兴趣的:(纯记录)