簡單的jenkins+git自動化上線

.Jenkins+Github自動化上線

 

不會的要多查多問,否則不會的永遠不會,哪怕你離會就差了那麼一點點java

().環境:git

[root@hxy-centos7 ]# cat /etc/redhat-releasegithub

CentOS Linux release 7.4.1708 (Core)web

 

[root@hxy-centos7 .ssh]# uname -a數據庫

Linux 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/Linuxvim

 

Jenkins 版本centos

jenkins-2.118-1.1瀏覽器

 

Jdk版本1.8.0安全

java-1.8.0-openjdk.x86_64bash

 

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.安裝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

/etc/init.d/jenkins restart

java -jar /usr/lib/jenkins/jenkins.war

 

檢查進程是否存在,端口是否開啓,不想用8080,也能夠本身換個端口

image.png

 

6.這裏關閉防火牆,或者配置開放端口(我懶得配置直接關閉了)

systemctl start firewalld.service

systemctl disable firewalld.service

iptables -F

 

or(開放端口)

iptables -I INPUT -p tcp --dport 8080 -j ACCEPT

 

7.測試jenkins而後在瀏覽器上輸入

http://192.168.18.171:8080

image.png

[root@bogon ~]# cat /var/lib/jenkins/secrets/initialAdminPassword

c9c35f0eefb84059b4d2c70baed5d7e1

 

8.輸入密碼登陸完成

image.png 

9. 安裝插件:

我是新手我選擇了第一個(安裝推薦的插件)

image.png

10.而後開始建立用戶(你能夠繼續使用admin也能夠建立新的用戶)

image.png 

11.jenkins安裝完成

 image.png

 

12.安裝ssh插件

image.png

image.png

13.配置公私鑰

安裝插件,Publish Over SSH個人已安裝了,未安裝的會出現這個的,未安裝安裝上就行

Linux服務器上生成公私鑰:

image.png 

[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_rsa

Enter 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 mghxy123@163.com

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_keys

chmod 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 localhost

Last login: Mon Apr 23 17:42:55 2018 from 192.168.178.1

14.公司要配置完成,嘗試本地登陸,無密碼登陸就OK

image.png

 

:這個是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 mghxy123@163.com

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配置祕鑰

image.png image.png

16.配置完成了點下test configuration 配置沒問題告終果就成success,不是success就檢查下配置

 

17.ssh祕鑰配置完成,下面建立任務

image.png 

18.配置下你的工做空間,便於管理(描述什麼的,隨便寫不寫都行)

image.png 

19.配置git,這裏須要githubutl,到本身的github項目上去找

image.png 

19..1這裏在本身的github找到httpsurl(我在這裏選用的是https,而不是用ssh,方法其實都差很少)image.png 

https://github.com/mghxy123/my_script.git

 

19..2.能夠用ssh,可是ssh須要另外配置祕鑰

image.png 

19..2..1在這裏填入私鑰便可

image.png 

 

19..2..3若是是ssh,就須要在jekins上也配置祕鑰

image.png 

image.png

19..2..4要是gitlab上拉代碼就不用勾選。
①在Repository URL填寫本身的遠端地址。git打頭的是ssh的鏈接形式,http打頭的是http的鏈接形式。 
②在Credentials這一欄,我弄了好久,每次我都是直接點擊那個「Add」->「Jenkins」而後建立帳號。結果老是不對。後來我回到首頁: 
image.png 
image.png
19..2..5點擊 Stores scoped to Jenkins中的 Jenkins 
image.png
19..2..6System中鼠標移動Global credentials(unrestricled)右邊會出現小三角, 
點擊會出現Add Credentials. 
image.png
19..2..7 Kind中選擇SSH類型 
image.png
Username這裏是能夠隨便填,建議填寫你生成ssh時的key。 
private key這裏選擇第一個「Enter directly」,再把.ssh文件夾中的私鑰所有複製過來(包括註釋)。 
至此,正常狀況下這樣配置,ssh認證是沒有錯的! 
③Branches to build這一欄:*/master

20.構建觸發器

定時構建,每兩分鐘構建一次(也能夠不填)

image.png 

 

21.構建,構建要根據具體的需求來作,我這裏只是爲了測試,就隨意寫了個腳本

image.png 

image.png

 

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

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

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

構建

image.png 

22.發現權限不夠的狀況下

①能夠把須要的文件和目錄的擁有者都改成jenkins用戶;

②修改jenkins配置文件把jenkins用戶改成root用戶

vim /etc/sysconfig/jenkins

JENKINS_USER="jenkins"

改成:

JENKINS_USER="root"

image.png 

1. 手動把須要的權限的文件夾或者目錄加權限,(這樣很費勁的)

 

構建成功:

image.png 

這裏只是爲了測試寫了個簡單的腳本,至於構建成功後你再怎麼作就看我的的須要了

 

二. Jekins+Gitlab自動化上線

安裝jenkins就不重複了

1.安裝gitlab插件

image.png 

2.如圖所示輸入gitlab

image.png 

3.我這裏已經安裝了,沒有安裝的安裝上就好了

而後配置公私鑰(不要再系統配置的gitlab裏面配置,配置都失敗了):

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

image.png 

 

4.而後選擇

ssh username whieh private key

 

5.Username隨便填,可是最好填本身祕鑰的名字

image.png 

6.而後再私鑰裏面填入私鑰:

其餘的可填可不填,看我的的狀況:

image.png 

7.而後配置本身gitlab的公私鑰:

image.png 

 

8.而後建立任務:

image.png 

9.描述什麼的,看我的的狀況來填:

image.png 

 

10.祕鑰就選咱們剛纔配置的

配置定時任務,這個的定時任務和crontab不同,這裏的分別表明

我這裏寫的是每小時的半點執行一次

image.png

 

[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

image.png

 

12.修改完成再次構建

image.png

 

構建成功就OK

13.而後到瀏覽器上測試一下

image.png

14.再次修改提交測試一下

image.png

 

15.提交完成,開始構建測試

image.png

16構建完成

 image.png

17.在瀏覽器上看一下

image.png

18.正常輸出,沒問題,試驗完成

 

 

 

.在安裝使用jenkins的時候遇到的一些問題

.啓動jenkins報錯,這個報錯很明顯說jenkins須要jdk1.8,可是你的jdk1.7

因此升級jdk1.8就行了

image.png

[root@localhost ~]# java -jar /usr/lib/jenkins/jenkins.war

Jenkins 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/jre

java.lang.UnsupportedClassVersionError: 51.0

at Main.main(Main.java:128)

 

緣由是須要升級jdk1.8

 

 

2.關於密碼問題

 

1、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專有用戶數據庫,並點擊保存

image.png

6.從新點擊首頁>「系統管理」,發現此時出現管理用戶

7.點擊進入展現用戶列表

8.點擊右側進入修改密碼頁面,修改後便可從新登陸。

 image.png

image.png

image.png

改好密碼後就能夠登陸了

image.png

image.png

而後把修改的東西再修改回來就行了

 

 

Centos7克隆的時候報錯了,fatal: unable to access


image.png

須要升級一下就行了yum update -y nss curl libcurl

image.png

 

 

修改工做空間:

image.png

image.png

 

在安裝插件的時候有可能安裝不了,重試幾回都不行,個人解決辦法是重啓jenkins,jenkins重啓不行,就重啓虛擬機或是服務器,就沒問題了

 

 

 

網上找了好多博客,要麼不全,要麼不合適,感謝個博客

https://blog.csdn.net/u013066244/article/details/52611070

相關文章
相關標籤/搜索