🤖
BOKE
  • 😇一个博客
  • Group 1
    • 🚗ALL
      • 😁一文搞懂Yum命令:红帽系的包管理器
      • 😆到底什么是云计算
      • 😅反弹Shell大全与原理
      • 😂SHELL基础
      • 🤣iptables
      • ☺️阿里云YUM源
      • 😉CentOS系统版本升级
      • 🥲bat笔记
      • 😍ELK
      • 🥰黑马k8s
      • 😋supervisor
      • 🤨Bash 中的 ${} 和 $() 有什么区别
      • 🧐ansible+playbook
      • 👍给ELK的kibana设置密码
      • 😁prometheus
      • 😃Linux或Windows上实现端口映射
      • 😄shell脚本大全
      • 🤪linux修改网卡名
      • 😆Openvpn问题导致我掉了三根头发
      • 😅Iptables实现阿里云NAT网关效果
    • 🚕docker
      • 😇docker搭建MySQL主从
      • 😊docker命令
      • 🙂docker文件分层与数据挂载
      • 🙃dockerfile
      • 😘B站狂神-docker
    • 🚙DevOps
      • 😌DevOps(Git+Jenkins)
      • 😛python配置git
由 GitBook 提供支持
在本页
  • Git
  • 一、gitlab部署
  • 二、jenkins部署

这有帮助吗?

  1. Group 1
  2. DevOps

DevOps(Git+Jenkins)

实验环境为局域网内

主机:

主机名/ip

jenkins

192.168.2.40

gitlab

192.168.2.50

Git

一、gitlab部署

可以从清华源下载相应版本

`rpm包下载地址
# https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/	
`我这里选择的是12.0版本的,这是下载地址
#https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.0.0-ce.0.el7.x86_64.rpm

1、下载gitlab安装包.rpm

`安装依赖
[root@gitlab ~]# yum install -y curl policycoreutils openssh-server openssh-clients postfix policycoreutils-python
`安装命令   要保证centos主机有网,并且有配置yum源
[root@gitlab ~]# ls /usr/bin/wget || yum -y install wget && wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.0.0-ce.0.el7.x86_64.rpm --no-check-certificate

2、安装gitlab

`rpm包安装命令比较简单
[root@gitlab ~]# rpm -ivh gitlab-ce-12.0.0-ce.0.el7.x86_64.rpm
`出现下面这个狐狸图像表示安装成功
`修改配置文件`
[root@gitlab ~]# sed -i "/^external_url/cexternal_url 'http://192.168.1.1'" /etc/gitlab/gitlab.rb
`重置gitlab,过程比较慢`
[root@gitlab gitlab]# gitlab-ctl reconfigure
`重置完之后会默认启动几个服务,这些都是gitlab必须的服务,包里面自带,如果重置没有成功的话,查看一下自己端口有没有被占用,尽量还是在新环境下部署gitlab`

gitlab启动成功

设置新的管理员密码

3、登录

注意:在 GitLab 中配置的中文并不是全部都是中文,你们可以安装中文插件,我这边使用的是谷歌浏览器转换。

4、配置邮箱报警

[root@gitlab ~]# vim /etc/gitlab/gitlab.rb								# 在第 57 行后添加以下内容
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = 'smtp.qq.com'							# SMTP 服务器
gitlab_rails['smtp_port'] = 465											# SMTP 服务器端口号
gitlab_rails['smtp_user_name'] = '2261665821@qq.com'					# 邮件账号
gitlab_rails['smtp_password'] = '保密'				 						# 邮件授权码
gitlab_rails['smtp_authentication'] = 'login'
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = '2261665821@qq.com'
`重置gitlab`
[root@gitlab ~]# gitlab-ctl reconfigure

登录控制台发送测试邮件

[root@gitlab ~]# gitlab-rails console
irb(main):001:0> Notify.test_email('接收人的邮箱@qq.com','Test','Hello ZhangYan').deliver_now

5、创建群组

创建一个群组 ,设置为内部群组

6、创建一个账号

设置账户名和邮箱,使用权设置为root,密码需要用户收到邮件后自己设置

7、创建一个新项目

8、配置免密克隆

`生成秘钥`
[root@gitlab ~]# ssh-keygen
`查看秘钥并复制秘钥内容`
[root@gitlab ~]# cat /root/.ssh/id_rsa.pub

验证(克隆过程中不需要输入密码即可)

[root@gitlab ~]# git clone git@192.168.2.50:zhangyan/web-zhangyan
[root@gitlab ~]# ls
anaconda-ks.cfg  web-zhangyan
[root@gitlab ~]# 

`如果输入命令显示git命令找不到,直接yum -y install git就可以安装`

9、gitlab部署完成

二、jenkins部署

1、安装JDK

`因为jenkins是需要在java上运行的,所以要安装java
[root@jenkins ~]# ls
anaconda-ks.cfg  jdk-8u171-linux-x64.tar.gz
`解压缩`
[root@jenkins ~]# tar -xf jdk-8u171-linux-x64.tar.gz -C /usr/local/

[root@jenkins ~]# ls /usr/local/
bin  etc  games  include  jdk1.8.0_171  lib  lib64  libexec  sbin  share  src
`编写环境变量`
[root@jenkins ~]# cat /etc/profile.d/java.sh 
JAVA_HOME=/usr/local/jdk1.8.0_171/
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar
export PATH JAVA_HOME CLASSPATH
`生效环境变量`
[root@jenkins ~]# source /etc/profile.d/java.sh 
`查看版本,无问题`
[root@jenkins ~]# java -version
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)

2、安装jenkins

`我这里下载的jenkins也是从清华源网站下载的`
[root@jenkins ~]# ls /usr/bin/wget || yum -y install wget && wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/jenkins-2.331-1.1.noarch.rpm --no-check-certificate
`安装包下载好了`
[root@jenkins ~]# ls
anaconda-ks.cfg  jdk-8u171-linux-x64.tar.gz  jenkins-2.332.3-1.1.noarch.rpm

`安装依赖`
[root@jenkins ~]# yum install java-1.8.0-openjdk* -y
[root@jenkins ~]# yum -y install jenkins-2.332.3-1.1.noarch.rpm
`安装完成`
`修改配置文件`
[root@Jenkins ~]# sed -i '/^JENKINS_USER/cJENKINS_USER="root"' /etc/sysconfig/jenkins

jenkins启动时卡在启动界面解决方案 把/var/lib/jenkins/hudson.model.UpdateCenter.xml文件里的默认地址改为 http://mirror.xmission.com/jenkins/updates/update-center.json

3、进入jenkins

4、创建用户

这里忘记截图了,从网上找了一张,这一步的截图

进入jenkins

5、安装相关插件

Credentials						# 签名证书管理插件
Gitlab							# 安装后从 GitLab 获取代码
Git	和 Git Client               # 用于 Jenkins 在 GitLab 中拉取源码
GitLab Hook						# GitLab 触发 Jenkins 构建项目
Gitlab Authentication			# GitLab 和 Jenkins 认证插件
SSH Plugin						# 进程执行 Shell 脚本
Publish Over SSH				# 用于通过 SSH 部署应用

6、配置jenkins免密拉取gitlab

`生成秘钥`
[root@jenkins jenkins]# ssh-keygen
`查看`
[root@jenkins jenkins]# cat /root/.ssh/id_rsa.pub

7、将私钥上传到jenkins

`查看私钥`
[root@jenkins jenkins]# cat /root/.ssh/id_rsa

8、在jenkins上创建项目

测试构建无问题

9、测试发布到web

**大概意思就是在gitlab上修改内容,通过jenkins重新构建到web的工作目录 **

`安装httpd服务`
[root@jenkins ~]# yum -y install httpd

`写个脚本`
[root@jenkins ~]# cat web.sh 
#!/bin/bash
scp /var/lib/jenkins/workspace/web/* root@192.168.2.30:/var/www/html/

`配置免密,使scp的时候免密拷贝`
[root@jenkins ~]# ssh-copy-id 192.168.2.30

#最后运行脚本测试是否能够免密拷贝

测试构建成功

拷贝也成功了

10、配置jenkins自动部署

`安装插件
Gitlab Hook Plugin
Build Authorization Token Root
Build Token Trigger
`配置身份令牌
[root@jenkins ~]# openssl rand -hex 12
44ede7a7f0d497cf6521b2ff
# -hex 输出结果为 16 进制数据,数字 12 是指定生成的随机字符为 12 字节,即 24 个 16 进制个数。

构建触发器

11、推送失败解决方案

12、网页测试

上一页DevOps下一页python配置git

这有帮助吗?

image-20220708234033720
image-20220708234727848
image-20220708234929951
image-20220708235058678
image-20220708235211682
在这里插入图片描述
image-20220709000417884
image-20220709000430532
image-20220709000606366
image-20220709000643354
image-20220709000915087
image-20220709001030436
image-20220709001135955

点进去设置密码

设置新密码

将两个用户都添加到刚刚创建的test_grup群组中

创建一个新项目,使用的是刚刚创建的zhangyan用户

需要选择的只有下面这两项

创建成功了之后,创建一个新文件

写上文件名,写一些内容,点击完成

image-20220709002953896

image-20220709013520196
image-20220709013649482
在这里插入图片描述
image-20220709155000841
image-20220709160429747
image-20220709160651547
image-20220709160912934
image-20220709161040575
image-20220709161617828
image-20220709161642251
image-20220709162101784
image-20220709163405285
image-20220709163509962
image-20220709163551593
image-20220709163623476
image-20220709163950103
image-20220709164422726
image-20220709164901367
image-20220709171412895

推送测试

image-20220709171451098

测试推送失败的话,可以到jenkins端配置下面这些

点进去往下拉找到 Enable authentication for '/project' end-point

如果再不行的话 就把匿名用户可读权限勾选上

现在是这样的网页

我在gitlab上进行修改

这时候jenkins会出现一个正在构建的队列

再次刷新网页 网页已经变化了

🚙
😌
教程
jenkins启动报错解决方案
image-20220709171438775
image-20220709001319596
image-20220709001405473
image-20220709001828092
image-20220709001944691
image-20220709002131776
image-20220709002252134
image-20220709002425302
image-20220709171207801
image-20220709171306036
image-20220709171601152
image-20220709171851099
image-20220709171924747
image-20220709171959604
image-20220709172031418