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_第1张图片
Jenkins与gitlib实现自动化部署1_第2张图片

选择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_第3张图片

注意:点击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

I love you!

vim web/index.html 更新代码

I love you!

helloworld!

git add index.html git commit -m "xx" 提交到本地

Jenkins与gitlib实现自动化部署1_第4张图片

git push    推送代码到服务器

Jenkins与gitlib实现自动化部署1_第5张图片

查看更新的代码:

Jenkins与gitlib实现自动化部署1_第6张图片

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_第7张图片

http://172.18.62.60:8080        访问网页如下

Jenkins与gitlib实现自动化部署1_第8张图片

安装所有需要的插件,需要外网:

Jenkins与gitlib实现自动化部署1_第9张图片

创建用户:

Jenkins与gitlib实现自动化部署1_第10张图片

进入到jenkins界面

Jenkins与gitlib实现自动化部署1_第11张图片

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
     

I love you!

helloworld!

wo yu feng tian

Good Morning

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_第12张图片

系统管理-->系统设置:进行邮件服务的设置

Jenkins与gitlib实现自动化部署1_第13张图片

Jenkins与gitlib实现自动化部署1_第14张图片

测试时可以选择其他的邮件地址
系统管理-->管理插件:在已安装中搜索gitlab插件和gitlab hook插
件,如果没有就在可选插件中搜索到,将其安装;

Jenkins与gitlib实现自动化部署1_第15张图片

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

Jenkins与gitlib实现自动化部署1_第16张图片

cd /opt/
mkdir git2
cd git2
git clone [email protected]:mytest/web.git      测试拉取gitlib的代码
是否需要密码认证,注意
是ssh的访问;
设置jenkins的私钥key认证:

Jenkins与gitlib实现自动化部署1_第17张图片

cat /root/.ssh/id_rsa

Jenkins与gitlib实现自动化部署1_第18张图片

jenkins构建项目:

Jenkins与gitlib实现自动化部署1_第19张图片
Jenkins与gitlib实现自动化部署1_第20张图片
Jenkins与gitlib实现自动化部署1_第21张图片
Jenkins与gitlib实现自动化部署1_第22张图片

构建ssh key以实现git push提交到服务器代码:

Jenkins与gitlib实现自动化部署1_第23张图片