centos7 安装git_越来越多人选择Jenkins+Git部署项目,还不来了解下

3台Lunix服务器

1. git服务器,ip:10.0.0.200,用于安装gitlab,系统CentOs7

2. Jekins服务器,ip:10.0.0.202,用于安装Jenkins,系统CentOs7

3.Web服务器,ip:10.0.7,用于测试部署web服务,系统CentOs7

系统准备

系统环境准备

GitLab安装:

Git下载
官网:https://about.gitlab.com/
国内镜像:https://mirrors.tuna.tsinghua.edu.cn/gitlab‐ce/yum/

安装环境:

1. CentOs7系统

2. 4G内存

3. gitlab‐ce‐10.2.2‐ce 安装包

4. 禁用防火墙,关闭selinux

步骤如下:

1. 安装gitlab

[root@git ~]# yum install policycoreutils-python -y # 安装依赖

rz ‐bye gitlab‐ce‐10.2.2‐ce.0.el7.x86_64.rpm # 上传gitlab安装包 下载方式可通过 国内清华源gitlab‐ce社区版本下载

[root@git ~]# rpm -ivh gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm #安装gitlab

2. 更改配置文件

[root@git ~]# vim /etc/gitlab/gitlab.rb

更改url地址为本机IP地址 external_url 'http://10.0.0.200'

8759a9468368b45ea347dc785eac3b47.png

3.Gitlab命令及文件

gitlab‐ctl reconfigure # 更改配置文件后需重新配置

/opt/gitlab/ # gitlab的程序安装目录

/var/opt/gitlab # gitlab目录数据目录

/var/opt/gitlab/git‐dfata # 存放仓库数据

gitlab‐ctl status # 查看目前gitlab所有服务运维状态

gitlab‐ctl stop # 停止gitlab服务

gitlab‐ctl stop nginx # 单独停止某个服务

gitlab‐ctl tail # 查看所有服务的日志

4. Gitlab的服务构成

nginx: 静态web服务器
gitlab-workhorse: 轻量级的反向代理服务器
logrotate:日志文件管理工具
postgresql:数据库
redis:缓存数据库
sidekiq:用于在后台执行队列任务(异步执行)。(Ruby)
unicorn:An HTTP server for Rack applications,GitLab Rails应用是托管在这个服务器上面的。(Ruby
Web Server,主要使用Ruby编写)

gitlab汉化

git命令

yum install git -y

汉化步骤:

1.git clone https://gitlab.com/xhang/gitlab.git #下载汉化补丁

2.git branch ‐a #查看全部分支版本

3.git diff remotes/origin/10-2-stable remotes/origin/10‐2‐stable‐zh > ../10.2.2‐zh.diff #对比版本,生成补丁包

4.gitlab-ctl stop #停止服务

5.patch -d /opt/gitlab/embedded/service/gitlab‐rails -p1 < /tmp/10.2.2-zh.diff #打补丁

6.gitlab-ctl start

gitlab-ctl reconfigure#重启和重新配置

gitlba的网页操作

浏览器输入:10.0.0.200

1、设置密码

2、修改外观(也可不修改)

3、添加群组和用户

1、添加群组

ba73cb2da2e8dec20d26a83f724e8c2b.png
edaa006d36a755bef70a9797fdbc6048.png

2、添加用户

1a46409980fa28c32f1dda5fd1ed587a.png

3、修改用户密码

945a6ced2de3dc1fc4ba58132592563f.png
930dd7b34a0759889c86a1f02bdd9fb4.png

添加用户到群组并给与开发权限

9fbaeb6bf3b4e89afb2a1861e7b6ec12.png

4、创建仓库(项目)

ba6f8f8d39d4d5054e709a587b86c05c.png

2、克隆一个项目,这里我们直接克隆一个别人的项目

git地址:https://gitee.com/explore/starred/manage-monitor?lang=Html

1.先去上面网站复制克隆地址

676a7e1ae31cdf51cef63297b4757b7e.png

2.我们选择克隆方式,选择组为刚创建的组,项目名称自定义,我们这里用的是monitor

f6f7e01ff0296c84f365e046e1668bf4.png

3.创建成功

0aa9b8fa7938605e702fed15791310f0.png

5、设置分支保护

正常情况下,我们是不允许在master分支上修改内容的,我们只能创建新的分支修改,修改完成后进行合并,这里我们做分支保护的目的是为了让其他用户如dev用户在修改完代码内容之后,发起合并请求,root用户进行审核完成才能进行合并

1、无分支保护情况

我们首先登陆dev用户,要了解dev是开发用户,root是老大,老大一般做审核,拥有最高权限
退出root用户

4082aeea8e1b0649dc5f167331d77e6b.png

dev用户登录时需要重新编辑一次密码

84e23676138868a31e76fb4183a0e5c2.png

登录成功后打开我们的项目

ddf021137a2dc33abebdd93f1e7fc49a.png

首先创建一个新的分支,在新分支上修改内容

b7333c5edced4e64aa281b4c34bf960a.png
6308a747d506148ba043193359a9454d.png

我们随便在test分支上修改一个内容

2ce35ecbc013e6c75f550a00be2ca995.png
d0cb5b278daa6b0341ca7cf52591170e.png

这里我们给他加了一个对不起

7ebf99d11a5ba9bb2dee031ab81c4477.png

现在我们请求合并分支

e741b91189ba2e8733d0b3ff41fa7ea0.png
b1e46067d4ef918e22bf0b13b536a97b.png
7c557664635f8cc387981a5aaa57ffb3.png

提交完合并请求会发现我们现在是可以合并的,因为没有设分支保护

e73557993f001c80e12c46abc08aff94.png
5000465fedd5c8534593d25a3b8198e2.png

我们查看一下master分支,已经合并成功

35a3800b0daebe86797a1cde5017bd5f.png

2、有分支保护情况

登录root用户设置分支保护

cc302000810e2bc0944bfb45b2283e8b.png
bc36558fbe044f022b2a0f724f58de94.png

选择保护master分支

02ebc5ff79edb3a81b60d2babefa1d46.png

设置成功

8e4d54652403c6cc63e8648a28141348.png

这时我们推出root用户,登录dev用户,继续测试一下,修改test下404.html,这里我们又加了个“保护”

38754acf8bc2ac3faedfb2806fabaa44.png

然后我们合并请求(步骤和上面一样),这时我们不能进行合并,因为有保护,只能root账户老大进行合并

a5c49a84c9c0ef2133215ed9bdaf1128.png

登录到root账户,查看并合并请求

230e80c31872f527d05729dca17bafac.png
e59b06b7b6be0089aa36eed5c4bad358.png

合并成功查看一下效果

83f6435f19c9ddf310b5ad64f867dd1d.png
ba7d720735f92b036c8991486586d61f.png

安装Jenkin
官网 https://jenkins.io/
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开
放易用的软件平台,使软件的持续集成变成可能。

1、安装准备

准备jenkins服务器关闭selinux和防火墙
内存2G 50G+硬盘
jenkins 10.0.0.201

2、安装JDK运行环境和jenkins服务

上传JDK和jenkins rpm安装包,使用rpm ‐ivh进行安装,安装完JDK运维java测试是否安装成功

[root@jenkins ~]# rpm -ivh jdk-8u181-linux-x64.rpm

[root@jenkins ~]# rpm -ivh jenkins-2.99-1.1.noarch.rpm

3、配置jenkins

[root@jenkins ~]# vim /etc/sysconfig/jenkins

启动用户修改为root

JENKINS_USER="root"

3f9e1a855f0bce27c10d47d52dab2302.png

4、启动jenkins并加入开机自启

[root@jenkins ~]# systemctl start jenkins

[root@jenkins ~]# systemctl enable jenkins

jenkins网页操作

访问页面进行配置
默认端口是8080
http://10.0.0.201:8080

1、在服务器上查看jenkins提示的文件,把密码粘贴到网页

[root@jenkins ~]# cat /var/lib/jenkins/secrets/initialAdminPassword

91e0de6b56374365be1da3ee2ed75254

0393aad9f45e1af013e4b4bba8fd838a.png
6b45c853a29b3129196792e7489cd547.png

2、进入后我们先跳过安装插件界面

68d207ef90f340a974967f65900ad89e.png
9abc6693db9f7ee7696498fbfbe4df35.png

成功进入jenkins主界面

db61037914536bf9de9cd5847f9e3789.png

3、我们可以再这里先修改一下密码(也可忽略)

5547ac431313c9753d18056b5efd3c4c.png
52f5d7393ff1d9a75675c610f99a1f08.png

4.插件安装

0951b8b68d7a52f8434529ad6ce40afb.png
bccce6d0e193a44f0d75719bcbd4477a.png

安装完插件查看一下

8051b0843ae133634d4e835e047c88bf.png

插件安装目录

[root@jenkins jenkins]# ll /var/lib/jenkins/plugins

总用量 80936

drwxr-xr-x 7 jenkins jenkins 124 12月 3 2019 ace-editor

-rw-r--r-- 1 jenkins jenkins 4279042 12月 3 2019 ace-editor.jpi

drwxr-xr-x 4 jenkins jenkins 56 12月 3 2019 ant

drwxr-xr-x 4 jenkins jenkins 56 12月 3 2019 antisamy-markup-formatter

-rw-r--r-- 1 jenkins jenkins 112796 12月 3 2019 antisamy-markup-formatter.jpi

-rw-r--r-- 1 jenkins jenkins 81259 12月 3 2019 ant.jpi

drwxr-xr-x 4 jenkins jenkins 56 12月 3 2019 apache-httpcomponents-client-4-api

-rw-r--r-- 1 jenkins jenkins 1407235 12月 3 2019 apache-httpcomponents-client-4-api.jpi

drwxr-xr-x 4 jenkins jenkins 56 12月 3 2019 authentication-tokens

-rw-r--r-- 1 jenkins jenkins 14638 12月 3 2019 authentication-tokens.jpi

drwxr-xr-x 4 root root 56 12月 7 2019 blueocean-commons

-rw-r--r-- 1 root root 1540739 12月 7 2019 blueocean-commons.jpi

jenkins主要的目录

/usr/lib/jenkins/:jenkins安装目录,WAR包会放在这里

/etc/sysconfig/jenkins:jenkins配置文件,“端口”,“JENKINS_HOME”等都可以在这里配置

/var/lib/jenkins/:默认的JENKINS_HOME

/var/log/jenkins/jenkins.log:Jenkins日志文件

5、创建一个自由风格的项目freestyle‐job

e2ae2b6aa88e37517781a3ee605965a0.png
40fdd00840e670d96788064498a38855.png

1、配置项目,丢失旧的构建

fda4472d8104eacd9e4fb33ff322b219.png

2、源码管理将gitlab仓库和jenkins关联

这里我们需要吧jenkins服务器的公钥给gitlab
jenkins端生成公钥

[root@jenkins ~]# ssh-keygen

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa):

Created directory '/root/.ssh'.

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /root/.ssh/id_rsa.

Your public key has been saved in /root/.ssh/id_rsa.pub.

The key fingerprint is:

SHA256:rm4L5a3Of3URrgcywqOKZtsda5eWoBzZiBsJn/HFztE root@jenkins

The key's randomart image is:

+---[RSA 2048]----+

| |

| . |

| . o . . |

|. . + E o . o |

| o * B.oSo o o . |

| * =o*o o o |

| =.+o.oo . o |

| =.++o== . |

| o...=X=.. |

+----[SHA256]-----+

查看公钥

[root@jenkins ~]# cat .ssh/id_rsa.pub

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDHKs/orwn138ROGQicn8yiku6xB0Sn7dqty5KRpE9kc7Z6QFHMms/XWiZetsaGv+uKq9XDExF+5Tt1J6nCHEmrImstr17/u5uSr+YH/9LWxxv5SDJphdwwkUeoN+xMcQ/uJ5r8aWnCfS4wKoPXpoYe22AokkQ4RuxoAud6ZxLU5Bo0rJx3Q8WI0ew67SBI6bxRkwdgjmJhNsZiI8vsEKhZDW8kNlYTz8WuW9jBI/V+qewUeKDiS0O+zbrE7qMhtB+Rj9R/jEHOgOi2ucINWKaOkL7H8rmlhK3WFi3gVmX8Bj6otg2q7HfjZlBXY9sx28U2f8vzOEoGYiM+546PKM6F root@jenkins

把公钥给gitlab

0dd13e06474cfa76ead9cc171d1d79f8.png
eb29334344524334987c584786a85fb4.png

这里报错原因是第一次连接他会有一个确认服务器主机的操作,我们需要确认一下

e8eac28e50e2a7a1c4287359033dca48.png

复制上面的报错,如果出现确认主机情况就输入yes

[root@jenkins ~]# git ls-remote -h git@10.0.0.200:zeq/monitor.git

742c1e0055ccdd69c9626052b5463ed5337ad0c9 refs/heads/master

然后我们删除url重新粘贴一遍就好了

06e4dd077008306b1abe21c14850ed2f.png

3、构建触发器

选择第四个,点击高级

2af61e3b01c97b1f58400efa444052ad.png

过滤master分支,生成token

ae276e55db416824ea69b1d8cf2d8424.png

4、添加gitlab端web钩子

复制jenkins项目url和token

0a0a367c875028d70522be551bec8144.png

添加到gitlab

6b8dedf01242848437cb5db2e029bf7e.png

5、添加构建

在jenkins服务器上创建一个脚本目录

[root@jenkins ~]# mkdir /server/scripts -p

编写一个脚本,把从gitlab拉取过来的代码推送到web服务器上

[root@jenkins ~]# vim /server/scripts/do.sh

#!/bin/sh

DATE=$(date +%Y-%m-%d-%H-%M-%S)

CODE_DIR="/var/lib/jenkins/workspace/freestyle-job"

WEB_DIR="/code"

IP=10.0.0.7

get_code_tar(){

cd $CODE_DIR && tar zcf /opt/web-$DATE.tar.gz ./*

}

scp_code_web(){

scp /opt/web-$DATE.tar.gz $IP:$WEB_DIR

}

code_tarxf(){

ssh $IP "cd $WEB_DIR &&mkdir web-$DATE && tar xf web-$DATE.tar.gz -C web-$DATE"

}

ln_html(){

ssh $IP "cd $WEB_DIR && rm -rf html && ln -s web-$DATE html"

}

main(){

get_code_tar;

scp_code_web;

code_tarxf;

ln_html;

}

main

因为要推送到web服务器上,我们要把公钥给web服务器

[root@jenkins ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.0.0.7

增加构建步骤

ddd68c0268179326943ed34dff0dedb2.png
4acd82e77227e2dd53b7c6176f790d5f.png

jenkins自由风格项目创建完成,接下来我们开始配置web服务器

web服务器操作

因为我们最终操作是实现代码自动上线到web服务器,我们要配置web服务器

1.安装nginx扩展源

[root@web01 ~]# vim /etc/yum.repos.d/nginx.repo

[nginx]

name=nginx repo

baseurl=http://nginx.org/packages/centos/7/$basearch/

gpgcheck=0

enabled=1

2、安装nginx

[root@web01 ~]# yum install nginx -y

3、配置nginx

[root@web01 ~]# vim /etc/nginx/conf.d/git_jenkins.conf

server {

server_name 10.0.0.7;

listen 80;

root /code/html;

index index.php index.html;

}

4.创建代码存放目录

[root@web01 ~]# mkdir /code

5、启动nginx并加入开机自启动

[root@web01 ~]# systemctl start nginx

[root@web01 ~]# systemctl enable nginx

进行代码自动上线测试

为了直观的看到代码变化,我们修改主页index.html文件,这里我们方便演示,直接在root用户的master分支进行修改,实际生产环境中是不允许这样做的,切记。
修改步骤和上面讲解gitlab的分支保护步骤一样,我们修改43行的文字改成张恩清ichn.me

28825be796072b5f5d78626eba34864b.png
eec55b217806e5ef51d03b000cae4285.png

2、修改完成后查看jenkins端

这里我们已经自动构建成功了,蓝色代表成功,红色代表失败

43d142f429ec448816032fe2ca37bb2a.png

3、web端操作

在浏览器上输入web服务器地址http://10.0.0.7查看效果

这样一个自由风格的jenkins代码自动上线就创建完成了,接下来我们做一个Pipeline项目

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值