实验环境:真机、虚拟机:rhel7.3
真机: 客户端
虚拟机:
server1 172.25.10.1 配置Gitlab
server2 172.25.10.2 配置Jenkins
一、Gitlab配置
1、Gitlab安装并配置
安装Gitlab
[root@server1 ~]# yum install policycoreutils-python -y
[root@server1 ~]# rpm -ivh gitlab-ce-11.2.0-ce.0.el7.x86_64.rpm
查看postfix状态
[root@server1 ~]# systemctl status postfix ##开启状态
编辑Gitlab配置文件
[root@server1 ~]# cd /etc/gitlab/
[root@server1 gitlab]# vim gitlab.rb
13 external_url 'http://172.25.10.1'
对gitlab重新配置
[root@server1 gitlab]# gitlab-ctl reconfigure
查看gitlab状态
[root@server1 gitlab]# gitlab-ctl status
重启gitlab
[root@server1 gitlab]# gitlab-ctl restart
2、登陆
浏览器访问172.25.10.1,会先跳出来要求修改密码的界面,改密码后使用用户和密码登陆
3、新建项目xixi
4、推送SSH秘钥
ssh-keygen 生成钥匙
将客户端公钥复制到Gitlab的SSH Keys认证处
真机:
复制钥匙
[kiosk@foundation10 ~]$ cd .ssh/
[kiosk@foundation10 .ssh]$ cat id_rsa.pub
网页添加:
点击右上角
5、克隆仓库
客户端:
git clone命令:克隆仓库 把SSH项目下载到本地变为本地仓库
[kiosk@foundation10 ~]$ git clone git@172.25.10.1:root/xixi.git
克隆后便有了我们在Gitlab网页上创建的项目的目录
[kiosk@foundation10 ~]$ cd xixi/
列出详细信息 -v 显示对应的克隆地址
[kiosk@foundation10 xixi]$ git remote -v
origin git@172.25.10.1:root/xixi.git (fetch)
origin git@172.25.10.1:root/xixi.git (push)
查看目录里有README.md文件
[kiosk@foundation10 xixi]$ ls
README.md
网页的SSH项目,将其克隆
测试:
往文件里添加内容,添加并提交
[kiosk@foundation10 xixi]$ vim README.md
[kiosk@foundation10 xixi]$ git add README.md
[kiosk@foundation10 xixi]$ git commit -m "update README.md"
将本地的master分支推送到origin主机的master分支。如果master不存在,则会被新建。
[kiosk@foundation10 xixi]$ git push origin master
推送
浏览器查看文件更新
二、Jenkins配置
1、使虚拟机server2能够上网
server2:
1、使虚拟机server2能够上网
真机:$ iptables -t nat -I POSTROUTING -s 172.25.61.0/24 -j MASQUERADE
虚拟机:添加网关
[root@server1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
GATEWAY=172.25.61.250
[root@server1 ~]# systemctl restart network
添加DNS
[root@server1 ~]# vim /etc/resolv.conf
nameserver 114.114.114.114
2、安装jenkin和jdk
[root@server2 ~]# yum install jdk-8u171-linux-x64.rpm jenkins-2.121.3-1.1.noarch.rpm -y
安装git
[root@server2 ~]# yum install -y git
打开jenkins服务
[root@server2 ~]# /etc/init.d/jenkins start
安装查看端口的工具
[root@server2 ~]# yum install -y net-tools
查看为8080端口
[root@server2 ~]# netstat -antlp
tcp6 0 0 :::8080 :::* LISTEN 3262/java
浏览器访问172.25.10.2:8080
根据页面提示在终端输入;将得到的密码粘贴到页面上
[root@server2 ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
依次设置“用户名和密码”——选择“推荐安装”——确认“地址和端口”,完成引导。
注:进入到首页后,如果我们想显示中文,可以进行Firefox浏览器设置
右上角“打开菜单”——选择“Preferences”——选择“Content”——选择”Choose”——“Add”添加语言——选择“OK”
回到Jenkins首页
三、gitlab和jenkins 实现定时触发
把 gitlab 私有仓库的东西拉取过来然后执行ls -l命令
1、新建任务
2、复制私钥
3、构建触发器
设置轮询:每分钟去查看gitlab,如有更新就拉取过来,如果没更新,每分钟只是看一下
4、构建-执行shell
命令:ls -l
配置完后保存
查看(等一会儿,不超过1分钟既有推送)
客户端:
建立文件测试
新建文件推送
[kiosk@foundation10 ~]$ cd xixi/
[kiosk@foundation10 xixi]$ vim test.txt
hello world
[kiosk@foundation10 xixi]$ git add test.txt
[kiosk@foundation10 xixi]$ git commit -m "add test.txt"
[kiosk@foundation10 xixi]$ git push origin master