Jenkins與gitlib實現自動化部署1

1、配置gitlab的步驟

hostnamectl set-hostname gitlib-server
yum install jdk-8u111-linux-x64.rpm 
rpm -ivh gitlab-ce-8.13.5-ce.0.el7.x86_64.rpm 
vim /etc/gitlab/gitlab.rb
    external_url 'http://192.168.43.61'
    gitlab_rails['smtp_enable'] = true 
    gitlab_rails['smtp_address'] = "smtp.qq.com"
    gitlab_rails['smtp_port'] = 25 
    gitlab_rails['smtp_user_name'] = "[email protected]"
    gitlab_rails['smtp_password'] = "gnjvecpnnmcvfibc"  qq郵箱開通smtp服務時設置的密碼
    gitlab_rails['smtp_domain'] = "qq.com" 
    gitlab_rails['smtp_authentication'] = :login 
    gitlab_rails['smtp_enable_starttls_auto'] = true
    gitlab_rails['gitlab_email_from'] = "[email protected]"
    user['git_user_email'] = "[email protected]"
qq郵箱的設置:
    1、在設置-->賬戶中將smtp郵件服務開啓
    2、設置-->反垃圾-->設置郵件地址白名單,將[email protected]添加到白名單
gitlab-ctl --help
gitlab-ctl reconfigure  重讀配置文件
http://172.18.62.61/        訪問頁面,設置密碼後以root登錄,如下頁面

Jenkins與gitlib實現自動化部署1
Jenkins與gitlib實現自動化部署1

選擇Admin Area-->Settings-->Sign-up enabled,將對勾去掉,點 
擊保存即可將註冊用戶功能取消,加強了安全性;
Admin Area-->Overview:可以創建用戶,組,項目;並將用戶添加到組;
![](https://s1.51cto.com/images/blog/201806/22/3c80440542608d5ee52ca470f6d3891f.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
gitlab-ctl status
gitlab-ctl start
yum list mail*
yum install mailx
echo "xxx"|mail -s "xx" [email protected]    測試能否發送郵件 
gitlab-ctl stop
gitlab-ctl start

Jenkins與gitlib實現自動化部署1

注意:點擊Add a README以添加一個index.html測試頁面
yum install git
git clone http://172.18.62.61/mytest/web.git

Jenkins與gitlib實現自動化部署1

cd web/
cat  index.html
<h1>I love you!</h1>
vim web/index.html      更新代碼
     <h1>I love you!</h1>
    <h1>helloworld!</h1>
git add index.html 
git commit -m "xx"  提交到本地

Jenkins與gitlib實現自動化部署1

git push    推送代碼到服務器

Jenkins與gitlib實現自動化部署1

查看更新的代碼:

Jenkins與gitlib實現自動化部署1

7、配置Jenkins的步驟

getenforce
iptables -vnL
hostname jenkins-server
hostnamectl set-hostname jenkins-server
yum install jdk-8u111-linux-x64.rpm jenkins-2.27-1.1.noarch.rpm 
rpm -ql jenkins
/etc/init.d/jenkins start   開啓Jenkins服務
tail -f /var/log/jenkins/jenkins.log    查看啓動過程,並獲取密碼

Jenkins與gitlib實現自動化部署1

http://172.18.62.60:8080        訪問網頁如下

Jenkins與gitlib實現自動化部署1

安裝所有需要的插件,需要外網:

Jenkins與gitlib實現自動化部署1

創建用戶:

Jenkins與gitlib實現自動化部署1

進入到jenkins界面

Jenkins與gitlib實現自動化部署1

git pull
git reset --hard HEAD^  回滾本地代碼的操作
ping smtp.qq.com    看qq的smtp是否可用
tail -f /var/log/jenkins/jenkins.log 
yum install git
cd /opt/
mkdir git
cd git/
git clone http://192.168.43.61/mytest/web.git
git config --global user.name "hello"
git config --global user.email "[email protected]"
git init    生成.gitlab文件夾
vi .git/config
git config --list   列出全局配置
cd web/
vim index.html
     <h1>I love you!</h1>
    <h1>helloworld!</h1>
    <h1>wo yu feng tian</h1>
    <h1>Good Morning</h1>
git add index.html 
git commit -m "xxxx"
git status
git push
ll /var/lib/jenkins/plugins/
vim /etc/sysconfig/jenkins  可以設置一些配置
cd  /var/lib/jenkins/plugins/
rz  獲取打包的插件
tar xvf jenkins_plugin.tar.gz   進行解壓
chown jenkins.jenkins ./* -R    設置插件的屬組和屬主
/etc/init.d/jenkins restart     重啓服務
tail -f /var/log/jenkins/jenkins.log    查看日誌

Jenkins與gitlib實現自動化部署1

系統管理-->系統設置:進行郵件服務的設置

Jenkins與gitlib實現自動化部署1

Jenkins與gitlib實現自動化部署1

測試時可以選擇其他的郵件地址
系統管理-->管理插件:在已安裝中搜索gitlab插件和gitlab hook插
件,如果沒有就在可選插件中搜索到,將其安裝;

Jenkins與gitlib實現自動化部署1

ssh-keygen  生成公鑰私鑰對
cat /root/.ssh/id_rsa.pub       查看公鑰信息
在gitlib上配置基於key的部署:在project上Delploy Keys,如下

Jenkins與gitlib實現自動化部署1

cd /opt/
mkdir git2
cd git2
git clone [email protected]:mytest/web.git      測試拉取gitlib的代碼
是否需要密碼認證,注意
是ssh的訪問;
設置jenkins的私鑰key認證:

Jenkins與gitlib實現自動化部署1

cat /root/.ssh/id_rsa

Jenkins與gitlib實現自動化部署1

jenkins構建項目:

Jenkins與gitlib實現自動化部署1
Jenkins與gitlib實現自動化部署1
Jenkins與gitlib實現自動化部署1
Jenkins與gitlib實現自動化部署1

構建ssh key以實現git push提交到服務器代碼:

Jenkins與gitlib實現自動化部署1

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