搭建Jenkins自動化部署

一、安裝jenkins

1、添加yum repos,然後安裝

1
2
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key
 注:如果上邊的執行成功就不用再執行這兩行了

1
2
sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/RedHat/jenkins.repo
sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
 注:如果網絡不好需要重試幾次

1
sudo yum install jenkins
2、如果未安裝java還需安裝java

1
sudo yum install java
3、啓動和停止

1
2
3
sudo service jenkins start
sudo service jenkins stop
sudo service jenkins restart


1
sudo chkconfig jenkins on
如果啓動失敗,可以運行如下命令查看錯誤信息

1
systemctl status jenkins.service

如上錯誤是java配置錯誤,需要修改jenkins配置文件

1
vi /etc/rc.d/init.d/jenkins
類似如下修改:

1
2
3
4
5
candidates="



/usr/local/jdk1.8/bin/java
"
4、jenkins的默認設置

Jenkins會隨系統啓動而啓動。詳情參照/etc/init.d/jenkins
  Jenkins會創建一個用戶叫做jenkins, 如果你修改了user,則要修修改所屬者:/var/log/jenkins,/var/lib/jenkins,/var/cache/jenkins
  如果遇到問題,查看日誌/var/log/jenkins/jenkins.log
  配置文件/etc/sysconfig/jenkins
  默認啓用8080

5、打開和關閉防火牆

開啓非80端口需要打開防火牆,參考:http://www.cnblogs.com/rslai/p/7954080.html

6、關於centos上的java
  Jenkins不支持在centos的默認的jdk上工作。如果如下所示,則需要remove:

java -version
  java version “1.5.0”
  gij (GNU libgcj) version 4.4.6 20110731 (Red Hat 4.4.6-3)
  爲了正確使用Jenkins:

yum remove java
  然後可以安裝openjdk

yum install java-1.7.0-openjdk
  正確如下:

java -version
  java version “1.7.0_79”
  OpenJDK Runtime Environment (rhel-2.5.5.1.el6_6-x86_64 u79-b14)
  OpenJDK 64-Bit Server VM (build 24.79-b02, mixed mode)

7、配置java路徑
直接啓動:

sudo service jenkins start
但是發現啓動失敗,於是需要配置java位置:

vi /etc/init.d/jenkins
在啓動加入本機的java:

[[email protected] ~]# vim /etc/init.d/jenkins

Set up environment accordingly to the configuration settings

[ -n “$JENKINS_HOME” ] || { echo “JENKINS_HOME not configured in $JENKINS_CONFIG”;
if [ “KaTeX parse error: Expected 'EOF', got '}' at position 46: …se exit 6; fi; }̲ [ -d "JENKINS_HOME” ] || { echo “JENKINS_HOME directory does not exist: $JENKINS_HOME”;
if [ “$1” = “stop” ]; then exit 0;
else exit 1; fi; }

Search usable Java as /usr/bin/java might not point to minimal version required by Jenkins.

see http://www.nabble.com/guinea-pigs-wanted-----Hudson-RPM-for-RedHat-Linux-td25673707.html

candidates="
/etc/alternatives/java
/usr/lib/jvm/java-1.8.0/bin/java
/usr/lib/jvm/jre-1.8.0/bin/java
/usr/lib/jvm/java-1.7.0/bin/java
/usr/lib/jvm/jre-1.7.0/bin/java
/usr/bin/java
/usr/java/jdk1.7.0_80/bin/java
"

8、配置端口

修改

1
vi /etc/sysconfig/jenkins
  內容改爲需要的端口

1
JENKINS_PORT=“8080”
9、yum安裝Jenkins默認路徑爲

/var/lib/jenkins

二、進入jenkins
1、打開

1
http://192.168.3.231:8080

2、查看密碼,將內容填寫到密碼處點擊繼續

1
cat /var/lib/jenkins/secrets/initialAdminPassword
3、選擇默認插件即可

4、設置管理員

三、安裝和Git,GitLab插件
1、安裝git客戶端

Linux安裝配置git參見,只需要安裝客戶端不需要產生sshkey,如果你又想再jenkins上用git又想直接再linux上用再生成key

http://www.cnblogs.com/rslai/p/8175864.html

2、安裝git插件

3、在這裏將安裝和Git,GitLab插件,注意使用ctrl+f查找

4、配置gitLab連接

5、找到Gitlab配置,如下圖

name:可以隨便寫一個

host URL:host地址注意只填寫host不要庫地址寫http地址即可

credentials:選擇一個證書

新建一個證書,選擇add->Jenkins添加一個證書

kind:選擇GitLab API token

API token:輸入token,如何找到token參見下面

查找token,token需要在gitLab中查找,不同版本的gitLab方式不同

a)在Access Tokens中就顯示了api token直接copy即可

b)在如下頁面填入名字和過期時間後自動生成token,生成後一定要使用記事本記下來,之後無法查看該token

回到Jenkins設置token後Test Connection,如果測試成功

四、新建item
1、生成ssh key

由於jenkins執行腳本的使用使用的是jenkins這個賬號,所以公鑰私鑰需要放在此用戶的目錄裏。

a)由於此賬號是一個不允許登錄且修改了home目錄的賬號,所以需要先執行 vi /etc/passwd 查看一下jenkins賬號的home目錄,在裏邊找到jenkins這個賬號其中紅框部分爲他的home目錄

b)生成root(不是root其它賬號也可)賬號的sshkey

1
2
3
4
ssh-keygen -t rsa -C "[email protected]" -b 4096 # 生成公鑰私鑰,注意雙引號內是個助記符根據需要修改
cd /root/.ssh # 進入ssh目錄
git ls-remote -h ssh://[email protected]:1022/html/tamH5.git HEAD # 連一下git服務器,生成known_hosts文件
ll # 查看文件

如果沒有 known_hosts 文件之後Jenkins發佈時會有如下錯誤 “Host key verification failed.”

c)進入jenkins目錄將剛纔創建的sshkey複製過來並將所有者指到jenkins賬號

1
2
3
4
5
6
cd /var/lib/jenkins # 進入jenkins的home目錄
mkdir .ssh # 創建ssh目錄存放sshkey文件,如果存在會報錯
cd .ssh
cp /root/.ssh/* . # 將root賬號下的sshkey文件複製過來,此時如果執行ll看一下這兩個文件所有這應該是root
chgrp jenkins * # 將key文件的組改爲jenkins
chown jenkins * # 將key文件的所有者改爲jenkins
d)此時pwd再ll應該看到如下內容

2、打開 id_rsa.pub 將其中內容複製到記事本中,然後再copy到git服務器上

3、訪問gitlab將剛纔生成的公鑰添加到ssh keys中

4、創建證書

a)Jenkins -> Credentials

b)global -> Add credentials新建一個證書

c)填寫證書信息

kind:選擇 SSH Username with private key

Username:隨便輸入,之後在創建item是記得住選擇那個即可

Priveate key:選擇“Enter directly”後輸入私鑰,記住一定是私鑰 (按照上步驟在linux上生成密鑰後,會是一對其中帶pub後綴的是公鑰。id_rsa私鑰、id_rsa.pub公鑰)。在linux執行cat id_rsa將所有內容copy填入key中

Passphrase:不填,如果填了每次都需要輸入密碼

填好後點擊“ok”保存

2、新建item

a)新建Item

b)輸入任務名稱,選擇“構建一個自由風格軟件項目”後單擊“確定”

c)在GitLab connection處選擇剛纔創建的連接(輸入git host時創建的連接)

選擇git並Credentials處選擇剛纔輸入私鑰的證書

Repository URL輸入git項目地址(注意輸入時需添加ssh注意如果修改端口應填寫ssh://[email protected]:port/xxxxxx/xxxxx.git)

之後單擊“保存”即可。

3、構建job

a)進入demo job

b)點擊“立即構建”

由於item只配置了git所以只會clone git,clone後在如下目錄中,以job名稱爲目錄保存

/var/lib/jenkins/workspace

構建後目錄

1
./var/lib/jenkins/workspace/
根據job名字放到相應目錄

安裝插件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章