Linux公社论坛

 找回密码
 注册
查看: 209|回复: 0

Jenkins+Github自动化上线

[复制链接]

1

主题

0

听众

3

积分

新手上路

Rank: 1

lxh 发表于 2020-1-16 12:15:40 |显示全部楼层
不会的要多查多问,不然不会的永远不会,哪怕你离会就差了那么一点点

图片看不了 直接看附件里的文档


(一).环境:[root@hxy-centos7 ]# cat /etc/redhat-releaseCentOS Linux release 7.4.1708 (Core) [root@hxy-centos7 .ssh]# uname -aLinux hxy-centos7 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux Jenkins 版本jenkins-2.118-1.1 Jdk版本1.8.0java-1.8.0-openjdk.x86_64 Git版本git-1.8.3.1

(二).安装1.安装epel源rpm -ivh https://mirrors.kernel.org/fedora-epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm 2.安装jenkinswget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.reporpm --import https://pkg.jenkins.io/redhat/jenkins.io.keyyum install jenkins -y

3.安装jdkyum install java-1.8.0-openjdk.x86_64 -y

4.安装gityum install git -y


5.启动jenkins/etc/init.d/jenkins restart或java -jar /usr/lib/jenkins/jenkins.war 检查进程是否存在,端口是否开启,不想用8080的,也可以自己换个端口  

6.这里关闭防火墙,或者配置开放端口(我懒得配置直接关闭了)systemctl start firewalld.servicesystemctl disable firewalld.serviceiptables -F or(开放端口)iptables -I INPUT -p tcp --dport 8080 -j ACCEPT


7.测试jenkins然后在浏览器上输入http://192.168.18.171:8080 [root@bogon ~]# cat /var/lib/jenkins/secrets/initialAdminPasswordc9c35f0eefb84059b4d2c70baed5d7e1

8.输入密码登录完成

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

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

11.jenkins安装完成  

12.安装ssh插件

13.配置公私钥安装插件,Publish Over SSH我的已安装了,未安装的会出现这个的,未安装安装上就行在Linux服务器上生成公私钥: [root@hxy-centos7 .ssh]# ssh-keygen -t rsa -C "mghxy123@163.com"Generating public/private rsa key pair.Enter file in which to save the key (/root/.ssh/id_rsa): mghxy123_rsaEnter passphrase (empty for no passphrase):Enter same passphrase again:Your identification has been saved in mghxy123_rsa.Your public key has been saved in mghxy123_rsa.pub.The key fingerprint is:SHA256:SHl1ywpu4SECMxSn7SJn8I+LzT0F7ErvcNeCzp+gim8 [email]mghxy123@163.com[/email]The key's randomart image is:+---[RSA 2048]----+| .*..     . .    ||   B   . . o .   ||. ..o + =   o    || o .oo * + .     ||. =.... S .      || +.+...o         || .oo=.o .        ||.+EOoo o         ||++*.=oo          |+----[SHA256]-----+ Passwd:mghxy123 cp mghxy123_rsa.pub authorized_keyschmod 600 authorized_keys [root@hxy-centos7 .ssh]# ll总用量 12-rw-------. 1 root root  398 4月  28 17:39 authorized_keys-rw-------. 1 root root 1766 4月  28 17:38 mghxy123_rsa-rw-r--r--. 1 root root  398 4月  28 17:38 mghxy123_rsa.pub [root@localhost .ssh]# ssh localhostLast login: Mon Apr 23 17:42:55 2018 from 192.168.178.114.公司要配置完成,尝试本地登录,无密码登录就OK了  注:这个是centos6.5的,6.5可以输入密码在登录的时候无密码登录,但是centos7不行,只能是密码为空的,才能实现免密码登录 [root@bogon .ssh]# ssh-keygen -t rsa -C "mghxy123@163.com"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]mghxy123@163.com[/email]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 localhostThe 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)? yesWarning: Permanently added 'localhost' (ECDSA) to the list of known hosts.Last failed login: Mon May  7 23:52:01 CST 2018 on pts/0There 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配置秘钥

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

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

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

19.配置git,这里需要github的utl了,到自己的github项目上去找 19..1这里在自己的github找到https的url(我在这里选用的是https,而不是用ssh,方法其实都差不多) https://github.com/mghxy123/my_script.git 19..2.可以用ssh,但是ssh需要另外配置秘钥 19..2..1在这里填入私钥即可  19..2..3如果是ssh,就需要在jekins上也配置秘钥  19..2..4要是gitlab上拉代码就不用勾选。
①在Repository URL填写自己的远端地址。git打头的是ssh的连接形式,http打头的是http的连接形式。
②在Credentials这一栏,我弄了很久,每次我都是直接点击那个“Add”->“Jenkins”然后创建账号。结果总是不对。后来我回到首页:19..2..5点击 Stores scoped to Jenkins中的 Jenkins 19..2..6在System中鼠标移动Global credentials(unrestricled)右边会出现小三角, 点击会出现Add Credentials. 19..2..7 Kind中选择SSH类型

Username这里是可以随便填,建议填写你生成ssh时的key。
private key这里选择第一个“Enter directly”,再把.ssh文件夹中的私钥全部复制过来(包括注释)。
至此,正常情况下这样配置,ssh认证是没有错的!
③Branches to build这一栏:*/master

20.构建触发器定时构建,每两分钟构建一次(也可以不填)  

21.构建,构建要根据具体的需求来做,我这里只是为了测试,就随意写了个脚本   [root@hxy-centos7 ~]# mkdir /data[root@hxy-centos7 my_script]# chmod 777 /data/ -R[root@hxy-centos7 my_script]# chmod 777 /tmp -R构建

22.发现权限不够的情况下①可以把需要的文件和目录的拥有者都改为jenkins用户;②修改jenkins配置文件把jenkins用户改为root用户vim /etc/sysconfig/jenkinsJENKINS_USER="jenkins"改为:JENKINS_USER="root" 1. 手动把需要的权限的文件夹或者目录加权限,(这样很费劲的) 构建成功: 这里只是为了测试写了个简单的脚本,至于构建成功后你再怎么做就看个人的需要了

二. Jekins+Gitlab自动化上线安装jenkins就不重复了

1.安装gitlab插件

2.如图所示输入gitlab

3.我这里已经安装了,没有安装的安装上就行了然后配置公私钥(不要再系统配置的gitlab里面配置,配置都失败了):Gredentials--->stores scoped to jenkins--->global--->add gredentials  

4.然后选择ssh username whieh private key

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

6.然后再私钥里面填入私钥:其他的可填可不填,看个人的情况:

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

8.然后创建任务:

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

10.秘钥就选我们刚才配置的配置定时任务,这个的定时任务和crontab不一样,这里的分别代表分 时 天 月 年我这里写的是每小时的半点执行一次  [root@bogon my_script]# cat jenkins_web.sh#!/bin/bashnow_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_dirchmod 777 /data/git_dir

11.构建失败,查看构建时的输入,找到问题对于这样权限不够的,我直接吧文件夹的拥有者改成了jenkins就没问题了chown jenkins:jenkins /data -R  

12.修改完成再次构建  构建成功就OK了

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

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

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

16构建完成

17.在浏览器上看一下

18.正常输出,没问题,试验完成  

三.在安装使用jenkins的时候遇到的一些问题一.启动jenkins报错,这个报错很明显说jenkins需要jdk1.8,但是你的jdk是1.7所以升级jdk到1.8就好了 [root@localhost ~]# java -jar /usr/lib/jenkins/jenkins.warJenkins requires Java 8, but you are running 1.7.0_51-mockbuild_2014_06_09_19_19-b00 from /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.51-2.4.5.5.el7.x86_64/jrejava.lang.UnsupportedClassVersionError: 51.0at Main.main(Main.java:128) 原因是需要升级jdk到1.8  2.关于密码问题 一、admin密码未更改情况

1.进入/Jenkins/secrets目录,打开initialAdminPassword文件,复制密码;

2.访问Jenkins页面,输入管理员admin,及刚才的密码;

3.进入后可更改其他管理员密码; admin密码更改忘记情况1.删除Jenkins目录下config.xml文件中下面代码,并保存文件。<useSecurity>true</useSecurity>  <authorizationStrategy class="hudson.security.FullControlOnceLoggedInAuthorizationStrategy">    <denyAnonymousReadAccess>true</denyAnonymousReadAccess>  </authorizationStrategy>  <securityRealm class="hudson.security.HudsonPrivateSecurityRealm">    <disableSignup>true</disableSignup>    <enableCaptcha>false</enableCaptcha>  </securityRealm>  2.重启Jenkins服务;3.进入首页>“系统管理”>“Configure Global Security”;

4.勾选“启用安全”;

5.点选“Jenkins专有用户数据库”,并点击“保存”;

6.重新点击首页>“系统管理”,发现此时出现“管理用户”;

7.点击进入展示“用户列表”;

8.点击右侧进入修改密码页面,修改后即可重新登录。   改好密码后就可以登录了  然后把修改的东西再修改回来就好了  Centos7克隆的时候报错了,fatal: unable to access  需要升级一下就好了yum update -y nss curl libcurl   修改工作空间:   在安装插件的时候有可能安装不了,重试几次都不行,我的解决办法是重启jenkins,jenkins重启不行,就重启虚拟机或是服务器,就没问题了
您需要登录后才可以回帖 登录 | 注册

关注Linux公社官方微信,免费领取邀请码。

手机版|Linux公社(LinuxIDC.com)旗下网站【www.linuxidc.net】 ( 浙ICP备07014134号-4 )

GMT+8, 2020-2-26 15:49 , Processed in 0.045003 second(s), 13 queries , Wincache On.

Powered by Discuz! X 3.2

© 2010-2020 Comsenz Inc.

回顶部