vim /etc/yum.repos.d/gitlab-ce.repo [gitlab-ce] name=gitlab-ce baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7 repo_gpgcheck=0 gpgcheck=0 enabled=1 gpgkey=https://packages.gitlab.com/gpg.key
yum install curl openssh-server openssh-clients postfix cronie
service postfix start
chkconfig postfix on
yum install gitlab-ce git
gitlab-ctl reconfigure
vim /etc/gitlab/gitlab.rb external_url 'http://git.home.com' vi /etc/hosts 本機ip git.home.com
每次修改/etc/gitlab/gitlab.rb,都要運行如下命令,讓配置生效linux
gitlab-ctl reconfigure
gitlab-ctl start
在瀏覽器打開網址http://git.home.com,登錄。默認管理員:git
用戶名: root 密碼: xxxxxx
若此時啓動gitlab後,若內存在不斷減小,訪問報502,則極可能是內存不夠,至少配置4G內存。
web
對於英文還過得去的同窗,能夠不用漢化vim
gitlab-ctl stop
下載最新的漢化包,並查看版本,漢化包版本要與gitlab-ce包版本一致:centos
git clone https://gitlab.com/xhang/gitlab.git cat gitlab/VERSION 10.6.1
也可指定版本下載,對於剛出來的一些新版本的gitlab-ce包,可能沒有同版本漢化包,過一段時間就會有了:瀏覽器
git clone https://gitlab.com/xhang/gitlab.git -b v10.6.1-zh
cp -r -f ./gitlab/* /opt/gitlab/embedded/service/gitlab-rails/
複製過程當中會出現如下提示,不用管tomcat
cp: cannot overwrite non-directory ‘/opt/gitlab/embedded/service/gitlab-rails/log’ with directory ‘./gitlab/log’ cp: cannot overwrite non-directory ‘/opt/gitlab/embedded/service/gitlab-rails/tmp’ with directory ‘./gitlab/tmp’
gitlab-ctl reconfigure gitlab-ctl restart
再次訪問gitlab的web界面即變爲中文。bash
接下來配置密鑰,實現本地工做機git pull/push gitlab的項目(ssh)
在本地工做機上生成密鑰,將公鑰複製到gitlab中服務器
ssh-key 一路回車 cat ~/.ssh/id_rsa.pub
複製項目地址
在本地工做機上,配置域名解析app
vim /etc/hosts 172.19.0.111 gitlab.home.com
將代碼clone到本機
mkdir test_repo cd test_repo/ git init #初始化倉庫 git clone git@gitlab.home.com:root/test1.git
因爲我以前本地hosts中配置的是另外一臺gitlab的相同域名不一樣ip,在known_hosts 文件中有屬於 該hostname 的密鑰,git clone會報錯
修改本機代碼,push到gitlab端
cd test1 echo aaa>aaa git add ./* git commit -m "提交代碼" git push
刪除該項目中的文件aaa,並同步到gitlab
git rm -r --cached aaa git commit -m 'delete' git push
git pull 能夠從gitlab中將文件拉到本地
安裝好jdk8與tomcat,下載jenkins.war包,放在tomcat的webapp下,重啓tomcat服務。配置好防火牆和selinux。
jenkins服務器生成密鑰
ssh-keygen cat ~/.ssh/id_rsa.pub
複製公鑰粘貼到gtilab 的SSH keys中
將gitlab的域名解析加到jenkins的/etc/hosts中。若後邊的url涉及到域名時,改成ip,也能夠不加該域名的解析。
訪問jenkins的web界面 http://ip:8080/jenkins,cat該passwd文件,填寫到下面的框中。
安裝插件,install suggested plugins,後邊還有額外安裝一些插件.添加用戶名密碼,管理員爲admin
此時沒有maven項目,須要安裝插件Maven Integration ,同時安裝Gitlab與遠程鏈接tomcat服務器 的插件Publish Over SSH
系統管理 ---> 管理插件 ---> 可選插件 ---> 過濾選中直接安裝
jenkins安裝jdk與maven,安裝完在server命令行/root/.jenkins/tools/目錄下能夠看到jdk與maven的兩個安裝目錄
jenkins的web界面報錯Your container doesn’t use UTF-8 to decode URLs. If you use non-ASCII ....
tomcat的字符問題,在tomcat配置文件server.xml中添加URIEncoding="UTF-8",並重啓tomcat。有些版本的tomcat不會報錯。
打開gitlab右上角綠色圖標設置 ---> 右邊圖標access tokens --->建立我的訪問令牌,複製訪問令牌待用
jenkins 添加gitlab的訪問令牌
Connection name 隨便起名 ---> Gitlab host URL gitlab的ip ---> Credentials 選擇Gitlab API token ---> Add ---> jenkins配置加下第二圖最後測試鏈接一下,是否成功
注:若此處的憑據添加不上,可在全局憑據中先添加認證內容,這裏就會有選項
remote directory爲war包在tomcat服務器中須要放置的路徑,廣泛是放在tomcat的webapp下,我這裏放到自定義的目錄下,後邊會配置腳本進行後續操做。
Passphrase:密碼(key的密碼,若是你設置了,不然不填) Path to key:key文件(私鑰)的路徑 Key:將私鑰複製到這個框中 Disable exec:禁止運行命令
配置jenkins免密登陸tomcat服務器
tomcat服務器:
ssh-keygen
將~/.ssh/id_rsa.pub放到jenkins的~/.ssh/下,並更名爲authorized_keys
點進這個test項目 -->配置
將gitlab中該項目的地址粘貼過來到 Repository URL
1.先測試jenkins與gitlab連通沒,在jenkins命令git clone 項目url 是否成功 2.確認訪問令牌配好沒 3.域名解析有沒有
此處我把域名改成ip就行了,這裏的認證方式咱們選用gitlab用戶名密碼的方式,也有填密鑰路徑的方式,此處就很少介紹了。下面的*/master默認對master分支進行構建。
此處選擇webhook的方式(此方式依賴於Gitlab 與 Gitlab Hook插件)。複製webhook url,待用
將剛複製的url放到gitlab中,點擊下面的 「 增長web鉤子 」
此處構建觸發器還有其餘方式Poll SCM H/1 * * * * 每隔1分鐘覈對一次gitlab是否更新,如有更新就當即構建。
構建環境不用管
Goals maven的打包命令
生成war包須要讀取pom.xml裏的配置,root pom.xml默認爲該項目web界面裏工做空間下的相對路徑,即server裏/root/.jenkins/workspace/項目名/pom.xml。這裏就須要gitlab裏的代碼直接在該項目下,前面沒有多餘的目錄。以下圖1,而不是圖2,項目下還有一層 目錄。在jenkins上配置pom.xml時,把這個目錄加在pom.xml文件前面也是不能識別該路徑的
構建後須要將war包傳到tomcat服務器 source files 相對於工做空間的war包位置,構建完默認在target下; remove prefix 去掉war包以前的路徑 exec command 部署好war包後,在tomcat服務器中要執行的命令,此處我寫成一個腳本在tomcat服務器中。
cat change_war.sh #! bin/bash #cd /usr/share/tomcat/bin && ./shutdown.sh systemctl stop tomcat cd /usr/share/tomcat/webapps rm -rf appstore.war appstore mv /usr/share/war/appstore.war /usr/share/tomcat/webapps/ && systemctl start tomcat #cd /usr/share/tomcat/bin && ./start.sh
配置完就能夠構建了。