系統 | 主機 | IP | 安裝軟件 |
---|---|---|---|
CentOS 7 | study-1 | 192.168.100.51 | gitlab、git |
CentOS 7 | study-2 | 192.168.100.52 | jdk、maven、jenkins、git |
CentOS 7 | study-3 | 192.168.100.53 | tomcat、mysql、jenkins、git |
全部系統的selinux和iptables都已經關閉,同時須要作好時間同步,機器的hosts文件以下:html
192.168.100.51 study-1 gitlab.study.com 192.168.100.52 study-2 192.168.100.53 study-3
下面還須要在study-1機器上生成的公鑰和私鑰複製到study-2和study-3主機上。java
[root@study-1 ~]# ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Created directory '/root/.ssh'. 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: f0:02:05:f7:5c:9c:66:d2:25:42:42:a4:11:dc:27:92 root@study-1 The key's randomart image is: +--[ RSA 2048]----+ | .+B*.oooo. | | E=o+oo*. | | o..oo+ | | . o | | . S | | . | | | | | | | +-----------------+ [root@study-1 ~]# ssh-copy-id root@192.168.100.52 [root@study-1 ~]# scp .ssh/id_rsa* root@192.168.100.52:/root/.ssh [root@study-1 ~]# ssh-copy-id root@192.168.100.53 [root@study-1 ~]# scp .ssh/id_rsa* root@192.168.100.53:/root/.ssh
下載地址:https://mirror.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/mysql
[root@study-1 ~]# yum install -y gitlab-ce-8.16.9-ce.0.el7.x86_64.rpm
安裝後修改配置文件中的以下內容:linux
[root@study-1 ~]# vim /etc/gitlab/gitlab.rb ...... external_url 'http://gitlab.study.com' ...... [root@study-1 ~]# gitlab-ctl reconfigure [root@study-1 ~]# gitlab-ctl start
啓動後須要登陸:http://gitlab.study.com
而後去設置用戶root的密碼這裏不作介紹。以後須要進行密鑰的配置,這個比較簡單就不錯介紹git
這裏的測試代碼是用的以下的內容:https://git.oschina.net/zchuanzhao/jeesns.git
下面是在gitlab克隆測試的代碼:web
[root@study-3 ~]# tar xf jdk-7u79-linux-x64.tar.gz -C /usr/local/ [root@study-3 ~]# ln -sv /usr/local/jdk1.7.0_79 /usr/local/java ‘/usr/local/java’ -> ‘/usr/local/jdk1.7.0_79’ [root@study-3 ~]# vim /etc/profile.d/java.sh export JAVA_HOME=/usr/local/jdk1.7.0_79 export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar [root@study-3 ~]# . /etc/profile.d/java.sh [root@study-3 ~]# java -version java version "1.7.0_79" Java(TM) SE Runtime Environment (build 1.7.0_79-b15) Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)
[root@study-3 ~]# tar xf apache-tomcat-7.0.72.tar.gz -C /usr/local/ [root@study-3 ~]# ln -sv /usr/local/apache-tomcat-7.0.72 /usr/local/tomcat ‘/usr/local/tomcat’ -> ‘/usr/local/apache-tomcat-7.0.72’ [root@study-3 ~]# vim /etc/profile.d/tocmat.sh export PATH=$PATH:/usr/local/tomcat/bin [root@study-3 ~]# . /etc/profile.d/tocmat.sh [root@study-3 ~]# catalina.sh start
[root@study-3 ~]# yum install -y perl-Data-Dumper [root@study-3 ~]# tar xf mysql-5.6.31-linux-glibc2.5-x86_64.tar.gz -C /usr/local/ [root@study-3 ~]# ln -sv /usr/local/mysql-5.6.31-linux-glibc2.5-x86_64 /usr/local/mysql ‘/usr/local/mysql’ -> ‘/usr/local/mysql-5.6.31-linux-glibc2.5-x86_64’ [root@study-3 ~]# vim /etc/profile.d/mysql.sh export PATH=$PATH:/usr/local/mysql/bin [root@study-3 ~]# . /etc/profile.d/mysql.sh [root@study-3 ~]# cd /usr/local/mysql [root@study-3 mysql]# groupadd -r mysql [root@study-3 mysql]# useradd -r -g mysql -M -s /sbin/nologin mysql [root@study-3 mysql]# vim /etc/my.cnf [mysqld] datadir=/data/mydata socket=/tmp/mysql.sock symbolic-links=0 [mysqld_safe] log-error=/data/mydata/err.log pid-file=/var/run/mysql/mariadb.pid !includedir /etc/my.cnf.d [root@study-3 mysql]# mkdir -pv /data/mydata [root@study-3 scripts]# ./scripts/mysql_install_db --datadir=/data/mydata/ --basedir=/usr/local/mysql --user=mysql [root@study-3 mysql]# cp support-files/mysql.server /etc/init.d/mysqld [root@study-3 mysql]# chmod +x /etc/init.d/mysqld [root@study-3 mysql]# /etc/init.d/mysqld start Starting MySQL.. SUCCESS! 導入sql語句: [root@study-3 ~]# mysql mysql> create database jeesns character set utf8; Query OK, 1 row affected (0.00 sec) mysql> use jeesns Database changed mysql> source /root/jeesns.sql;
sql文件請在:http://git.oschina.net/zchuanzhao/jeesns 上面進行下載。sql
下載路徑:https://pkg.jenkins.io/redhat-stable/shell
[root@study-2 ~]# tar xf jdk-7u79-linux-x64.tar.gz -C /usr/local/ [root@study-2 ~]# ln -sv /usr/local/jdk1.7.0_79 /usr/local/java ‘/usr/local/java’ -> ‘/usr/local/jdk1.7.0_79’ [root@study-2 ~]# vim /etc/profile.d/java.sh [root@study-2 ~]# . /etc/profile.d/java.sh [root@study-2 ~]# chown -R root.root /usr/local/java/ [root@study-2 ~]# java -version java version "1.7.0_79" Java(TM) SE Runtime Environment (build 1.7.0_79-b15) Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)
[root@study-2 ~]# tar xf apache-maven-3.5.0-bin.tar.gz -C /usr/local/ [root@study-2 ~]# ln -sv /usr/local/apache-maven-3.5.0 /usr/local/maven ‘/usr/local/maven’ -> ‘/usr/local/apache-maven-3.5.0’ [root@study-2 ~]# vim /etc/profile.d/maven.sh [root@study-2 ~]# . /etc/profile.d/maven.sh [root@study-2 ~]# chown -R root.root /usr/local/maven/ [root@study-2 ~]# mvn -version Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-04T03:39:06+08:00) Maven home: /usr/local/maven Java version: 1.7.0_79, vendor: Oracle Corporation Java home: /usr/local/jdk1.7.0_79/jre Default locale: en_US, platform encoding: UTF-8 OS name: "linux", version: "3.10.0-327.el7.x86_64", arch: "amd64", family: "unix"
[root@study-2 ~]# yum install -y jenkins-2.46.2-1.1.noarch.rpm [root@study-2 ~]# vim /etc/init.d/jenkins ··· candidates=" /usr/local/jdk1.7.0_79/bin/java #須要添加jdk的路徑 /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 " ··· [root@study-2 ~]# systemctl daemon-reload [root@study-2 ~]# /etc/init.d/jenkins start Starting jenkins (via systemctl): [ OK ]
在瀏覽器輸入:http://192.168.100.52:8080
,會提示須要登陸密碼:apache
第一次登陸須要的密碼是安裝自動生成的,路徑已經說明在/var/lib/jenkins/secrets/initialAdminPassword
文件中。vim
實用插件
iOS專用:Xcode integration
Android專用:Gradle plugin
Gitlab插件:GitLab Plugin 和 Gitlab Hook Plugin
Git插件: Git plugin
GitBuckit插件: GitBuckit plugin
簽名證書管理插件: Credentials Plugin 和Keychains and Provisioning Profiles Management
FTP插件: Publish over FTP
腳本插件: Post-Build Script Plug-in
修改Build名稱/描述(二維碼): build-name-setter / description setter plugin
獲取倉庫提交的commit log: Git Changelog Plugin
自定義全局變量: Environment Injector Plugin
自定義郵件插件: Email Extension Plugin
獲取當前登陸用戶信息: build-user-vars-plugin
顯示代碼測試覆蓋率報表: Cobertura Plugin
來展現生成的單元測試報表,支持一切單測框架,如junit、nosetests等: Junit Plugin
其它: GIT plugin / SSH Credentials Plugin
安裝插件
點擊左側的「系統管理」----"管理插件"------「已安裝」---查找須要安裝的插件:git-client/scm-api/git/publish over SSH//ssh
密鑰的配置
[root@study-2 opt]# cp /root/.ssh/* /var/lib/jenkins/.ssh/ [root@study-2 opt]# chown -R jenkins.jenkins /var/lib/jenkins/.ssh/
Global Tool Configuration 配置
點擊左側的「系統管理」----"Global Tool Configuration"
下面是jdk和git的配置:
下面是maven的配置:
Credentials 配置
點擊左側「Credentials」-->「System」-->在「Global credentials (unrestricted)」選擇「Add Credentials」-->寫上登陸gitlab上的賬號密碼。
系統設置
配置gitlab主機:
jenkins的訪問地址,自動生成能夠不用配置:
Publish over SSH配置:
Configure Global Security 配置
SSH Server 端口的修改,這裏使用的是默認端口:
構建時控制檯報錯以下:
Host key verification failed. lost connection Build step 'Execute shell' marked build as failure SSH: Current build result is [FAILURE], not going to run. Finished: FAILURE
緣由:這個是因爲ssh密鑰配置的問題,雖然咱們在系統配置中配置了私鑰可是仍是不行。原先我是用root運行jenkins,而rpm包是用普通用戶運行。因此密鑰須要拷貝至jenkins的家目錄中及:/var/lib/jenkins/.ssh/
中才能使用。
建立
點擊左側的「新建」而後以下:
源碼管理
構建
點擊「增長構建步驟」-->選擇「Execute shell」:
點擊「增長構建步驟」-->選擇「Invoke top-level Maven targets」:
配置了上面的信息後,maven會將打包的war包放在下面的這個目錄中:
/var/lib/jenkins/jobs/study/workspace/target/
/var/lib/jenkins/:jenkins的工做目錄
jobs/study/:jenkins管理study項目的目錄
workspace:表示maven等插件的工做目錄
點擊「增長構建步驟」-->選擇「Execute shell」:
構建後操做
選擇「增長構建後操做步驟」-->選擇「Send build artifacts over SSH」:
上面圖片來自:http://www.cnblogs.com/horizonli/p/5332515.html 。以後就是保存了。咱們還能夠在上面中繼續添加server,添加server以前須要提早作好設置。
執行構建的項目
下面就是選擇剛纔建立的項目並執行「當即構建」。
構建後咱們還能夠在「Console Output」中查看構建執行的狀態。
下面是遠程主機執行的腳本,沒有作過多的判斷只能可以讓其運行起來就好了。
[root@study-3 jeesns]# cat /opt/deploy/deploy.sh #!/bin/bash tomcatPid=`ps aux |grep tomcat |grep -v grep|awk '{print $2}'` kill $tomcatPid sleep 5 rm -rf /usr/local/tomcat/webapps/jeesns* cp /opt/deploy/jeesns/jeesns.war /usr/local/tomcat/webapps/ /usr/local/tomcat/bin/catalina.sh start echo '部署完畢'