主要部分node
持續集成的分類:linux
Gitlab簡介nginx
gitlab是使用Ruby語言所研發,實現自動託管的git項目倉庫,能夠經過web界面訪問進行配置。gitlab擁有與GitHub相似的功能,可以瀏覽代碼,管理缺陷和註釋,能夠管理團隊對倉庫的訪問,它很是容易使用,並提供一個歷史回顧,便於往後的管理和維護及其查找。 c++
版本控制分類:集中式版本控制、分佈式版本控制,常見的集中式版本控制有:CVS,SVN,分佈式版本控制有:GitLab、GitHub。git在每一個用戶都有本身的私有倉庫及其中央倉庫,用戶先提交代碼到本地的私有倉庫,然後肯定無誤後將代碼提交到中央倉庫,這樣大大的方便了開發者,而相比CVS和SVN都是集中式的版本控制系統,工做時須要從中央服務器獲取最新代碼,改完以後需推送到服務器。若是是一個比較大的文件則須要足夠快的網絡才能快速提交完成,而使用分佈式的版本控制系統,每一個用戶都是一個完整的版本庫,即便沒有中央服務器也能夠提交代碼或者回滾,最終再把改好的代碼提交至中央服務器進行合併便可。 git
圖示:程序員
Gitlab安裝web
安裝前準備:redis
yum install vim gcc gcc-c++ wget net-tools lrzsz iotop lsof iotop bash-completion -ysql
yum install curl policycoreutils openssh-server openssh-clients postfix -y數據庫
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
systemctl disable firewalld
sed -i ‘/SELINUX/s/enforcing/disabled/‘ /etc/sysconfig/selinux
hostnamectl set-hostname xxx.com.cn
yum update –y && reboot
1.關閉防火牆
systemctl stop firewalld systemctl disable firewalld iptables -F setenforce 0
sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g‘ /etc/sysconfig/selinux #需重啓生效
2.配置好base源和epel源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/CentOS-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
可配置好gitlab官網源使用yum進行安裝,也可以使用官方下載的rpm進行安裝配置
vim /etc/yum.repos.d/gitlab.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
3.安裝配置gitlab依賴於Java環境,安裝以前先安裝jdk,可以使用rpm包進行安裝等
yum -y install jdk-8u111-linux-x64.rpm
yum -y install gitlab-ce-8.13.5-ce.0.el7.rpm
4.編輯配置文件/etc/gitlab/gitlab.rb修改配置文件,測試配置文件,啓動服務
external_url ‘http://node1.alren.com‘ #此處爲本機IP地址
gitlab_rails[‘smtp_enable‘] = true
gitlab_rails[‘smtp_address‘] = "smtp.163.com"
gitlab_rails[‘smtp_port‘] = 25
gitlab_rails[‘smtp_user_name‘] = "chengong101300@163.com"
gitlab_rails[‘smtp_password‘] = "aaaaa"
gitlab_rails[‘smtp_domain‘] = "163.com"
gitlab_rails[‘smtp_authentication‘] = :login
gitlab_rails[‘smtp_enable_starttls_auto‘] = true
gitlab_rails[‘smtp_tls‘] = false
gitlab_rails[‘gitlab_email_from‘] = "chengong101300@163.com"
user["git_user_email"] = "chengong101300@163.com"
#gitlab-ctl reconfigure #修改配置文件後需重新編譯此文件
#gitlab-ctl status #查看gitlab狀態信息 默認佔用80、8080端口
#gitlab-ctl stop/restart/start 關閉、重啓、啓動gitlab服務
[root@node1 ~]#
[root@node1 ~]# ss -tnl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 127.0.0.1:8080 *:*
LISTEN 0 128 *:80 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 128 127.0.0.1:631 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 *:8060 *:*
LISTEN 0 128 :::22 :::*
LISTEN 0 128 ::1:631 :::*
LISTEN 0 100 ::1:25 :::*
[root@node1 ~]# gitlab-ctl status
run: gitlab-workhorse: (pid 115536) 34579s; run: log: (pid 16049) 300897s
run: logrotate: (pid 9121) 2913s; run: log: (pid 16068) 300889s
run: nginx: (pid 115547) 34579s; run: log: (pid 16055) 300895s
run: postgresql: (pid 115553) 34578s; run: log: (pid 15906) 300961s
run: redis: (pid 115561) 34578s; run: log: (pid 15823) 300967s
run: sidekiq: (pid 115565) 34577s; run: log: (pid 16038) 300903s
run: unicorn: (pid 115568) 34577s; run: log: (pid 16007) 300905s
[root@node1 ~]#
1.經過瀏覽器訪問微博界面,接下來操做都是在web界面中進行,輸入本機IP地址加上端口進行訪問
2.將此處的註冊按鈕去除,防止其餘人員配置登陸。需點擊最下面的save按鈕生效。
3.在建立項目以前需事先建立用戶和組及其根據需求將用戶加入到組中
提示:在gitlab中要事先建立組後才能在組中建立項目或以root身份建立項目,此定義在其自動生成的地址中有明確規定
建立項目(project)後將能夠對項目進行必定的命令行操做。以下爲命令行字符命令
Command line instructions
Git global setup #git全局設置
git config --global user.name "Administrator"
git config --global user.email "admin@example.com"
Create a new repository
git clone git@node1.alren.com:mywebs/webs.git #從倉庫中克隆代碼
cd webs
touch README.md
git add README.md #將修改的代碼或文件提交到本地的倉庫中
git commit -m "add README" #將修改的代碼或文件提交到本地的倉庫中並取名
git push -u origin master #推送到中央服務器中
Existing folder or Git repository
cd existing_folder
git init
git remote add origin git@node1.alren.com:mywebs/webs.git
git add .
git commit
git push -u origin master
可將多個用戶添加到同一個組,之後組內的成員將對此項目擁有必定的權限
建立完成以後它提示咱們能夠建立一個key對它進行管理,部署key以後則無需密碼可將項目克隆到本地,僅支持ssh模式免祕鑰,同時自動生成一個url,有兩種形式基於HTTP,SSH
咱們點擊REDME可編輯一個文檔,隨意寫一些內容,點擊提交
填寫完將會出現路上所訴,可查看其內容。此時從gitlab中clone時需輸入用戶名和密碼,免去祕鑰登陸需添加ssh-key,免祕鑰登陸。
[root@node1 ~]# git clone http://node1.alren.com/mywebs/webs.git
Cloning into ‘webs‘...
Username for ‘http://node1.alren.com‘: root
Password for ‘http://root@node1.alren.com‘:
fatal: Authentication failed for ‘http://node1.alren.com/mywebs/webs.git/‘
[root@node1 ~]# git clone http://node1.alren.com/mywebs/webs.git
Cloning into ‘webs‘...
Username for ‘http://node1.alren.com‘: root
Password for ‘http://root@node1.alren.com‘:
warning: You appear to have cloned an empty repository.
[root@node1 ~]# ls
anaconda-ks.cfg webapp webs
[root@node1 ~]# rm -rf webs/
[root@node1 ~]# git clone git@node1.alren.com:mywebs/webs.git
Cloning into ‘webs‘...
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (3/3), done.
[root@node1 ~]# ls
anaconda-ks.cfg webapp webs
[root@node1 ~]#
Git總結:工做區就是編輯文件的目錄區域,須要將工做區的修改好的文件add到暫存區才能提交到git服務器,在工做區有多個文件的時候能夠將一個或多個文件添加至暫存區提交到git服務器便可,剛提交後的暫存區和服務器的文件是一致的,所以也能夠將最新的暫存區的文件進行上線和回滾,可是生產當中仍是使用服務器進行代碼更新和回滾。
Jenkins簡介
Jenkins是一個高度插件化的管理平臺,這就是Jenkins流行的緣由,由於Jenkins什麼插件都有,有很是靈活的API,開發能夠調用編寫插件,可完成不一樣任務的編排和執行。Jenkins有Java語言所研發,此環境則需部署在Java環境之上,可下載rpm包或下載.war包丟到webapps目錄下,啓動服務,便可訪問。
Jenkins官網地址:https://jenkins.io/
Jenkins安裝及啓動
經過rpm包進行安裝:
rpm -ivh jdk-8u111-linux-x64.rpm
rpm -ivh https://pkg.jenkins.io/redhat/jenkins-2.27-1.1.noarch.rpm
可配置yum源,直接使用yum進行安裝:
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
在啓動以前編輯/etc/sysconfig/jenkins/配置文件,可對其數據目錄、啓動的用戶、啓動的端口等進行修改後啓動,也能夠默認。
JENKINS_HOME="/data" #數據庫目錄,使用高i/o大容量磁盤
JENKINS_USER="jenkins" #啓動用戶
JENKINS_PORT="8080" #啓動端口
啓動服務:
systemctl jenkins start 或 /etc/init.d/jenkins start
加入開機自啓動(默認Jenkins啓動會佔用8080端口,因此其餘服務不能與之衝突):
chkconfig jenkins on
輸入IP地址進行訪問:將/data/secrets/initialAdminPassword中將密碼輸入到選框中
下一步則是選擇插件的步驟,能夠自定義安裝,也能夠安裝建議安裝的插件,安裝過程當中需鏈接互聯網,且速度很是慢,可先忽略安裝插件,直接在將插件解壓至Jenkins的插件目錄。
如出現插件安裝失敗不要緊,使用準備好的插件包解壓至jenkins的plugin目錄便可目錄結構默認在/var/lib/jenkins/plugins/。
Jenkins基礎功能
在jenkins-->系統管理-->系統設置設置管理員郵箱地址,當構建失敗時,則會發郵件通知
按照實際狀況配置Jenkins URL及其系統管理員郵件地址
設置郵件通知,經過設置好的郵件給須要發送的收件人發件reply-to-address
Jenkins項目構建
構建項目-->輸入項目名稱-->構建一個自由風格的軟件項目-->點擊ok,不過在建立項目以前需事先配置好jenkins的Credentials-->將私鑰配置在此,將公鑰部署在gitlab中,這樣才能從gitlab中拉取代碼或項目。
主界面包含系統的大部分配置
在系統設置中可配置郵件通知,maven、gitlab、sonar scanner郵件通知等
在系統管理--->插件管理中可安裝大部分插件