必威体育Betway必威体育官网
当前位置:首页 > IT技术

持续集成和发布工具(CI/CD)

时间:2019-10-08 06:44:32来源:IT技术作者:seo实验室小编阅读:73次「手机版」
 

ci

需要用到的工具:git & gitlab & jenkins

gitlab的安装和部署:

一、gitlab部署

1.gitlab安装:

首先配置yum源:

vim /etc/yum.repos.d/gitlab.repo

[gitlab]
name=gitlab-ce
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever
enabled=1
gpgcheck=0

配置好yum源后,yum repolist后直接安装

yum list |grep gitlab       //查看有没有gitlab包
yum install -y  gitlab-ce  //直接安装
gitlab-ctl reconfigure     //gitlab初始化
gitlab-ctl status  //查看gitlab状态

修改gitlab的配置文件:

gitlab-ctl stop  //修改配置文件之前停止gitlab
vim /etc/gitlab/gitlab.rb    
external_url 'http://192.168.48.132'      //修改为本机url
gitlab-ctl reconfigure   //改完后重新配置
gitlab-ctl start   //启动gitlab

然后浏览器直接输入ip进行访问:

修改密码

输入两次修改你的密码之后,用root直接登录即可,登录成功即可看到以下界面:

登陆成功

然后选择create a project,看下图添加即可

命名项目

完成后点击Create project,至此,我们的一个项目就添加完成了。

然后就会出现下图的界面:

创建成功

接着我们来添加邮箱和上传公钥:

添加邮箱

添加邮箱

添加后需要到自己的邮箱里认证,认证成功后下面会出现已认证图标!

下面我们来进行公钥上传:

ssh-keygen -t rsa -f /root/.ssh/id_rsa  -C "[email protected]" -N ''  //在客户端生成一个密钥对,此处为了免密登录到github
cat /root/.ssh/id_rsa.pub   //将屏幕上输出的公钥拷贝到github上,点击setting,SSH and GPG keys,然后New SSH key

添加自己生成的公钥

然后就可以在开发端克隆这个仓库到本地了

在这里插入图片描述

[root@localhost ~]# git config --global user.name "smartdevops"
[root@localhost ~]# git config --global user.email "[email protected]"
[root@localhost ~]# git clone git@IP:root/myfirstproject.git
[root@localhost ~]#cd myfirstproject
[root@localhost myfirstproject]# touch README.md
[root@localhost myfirstproject]# vim README.md 
[root@localhost myfirstproject]# git add README.md
[root@localhost myfirstproject]# git commit -m "add README"
[root@localhost myfirstproject]# git push -u origin master

然后在Gitlab服务器Web前端进行验证:

gitlab前端

在开发端计算机上传项目代码linux

[root@localhost myfirstproject]# vim hello.py 
[root@localhost myfirstproject]# git add hello.py
[root@localhost myfirstproject]# git commit -m "add hello.py"
[root@localhost myfirstproject]# git push -u origin master

至此,就已经成功提交到gitlab服务器上了

Jenkins的安装和部署:

1、Jenkins部署:

1.1 Jenkins安装包获取:

wget -O/etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo  //获取jenkins源
ls /etc/yum.repos.d/
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key   

1.2 Jenkins部署:

yum install -y jenkins
rpm -ql jenkins

/etc/sysconfig/jenkins //默认使用的是TCP 8080端口,如有冲突可以在此文件中修改端口。

systemctl start jenkins    //启动jenkins
systemctl status jenkins   //查看jenkins状态

输入自己的IP访问jenkins的8080端口

解锁jenkins

less /var/lib/jenkins/secrets/initialAdminPassword   //复制粘贴到管理员密码处即可

自定义插件

新手入门

1.3 使用admin管理员登录:

创建用户

1.4实例配置:

实例配置

然后就可以使用了

开始使用

2.Jenkins与gitlab进行集成:

2.1 Jenkins服务器生成SSH密钥对:

ssh-keygen -t rsa -C "[email protected]   //把生成的公钥拷贝出来

2.2 添加Jenkins服务器公钥到Gitlab Web前端:

生成密钥对

2.3 Gitlab服务器添加项目:

添加项目

创建项目

复制SSH

2.4 Jenkins服务创建任务:创建一个自由风格的软件项目

创建任务

把我们上面拷贝gitlab的ssh代码仓库扔过来

源码管理

管理

凭证

注意:下面填的是jenkins服务器端生成的私钥

私钥

私钥

注意:从gitlab代码仓库拷贝的时候要http协议地址,然后再切回ssh

gitlab版本

构建测试

测试成功

至此,Jenkins就可以从gitlab上获取到代码了。但是还无法自动发布。并且/var/lib/jenkins/workspace 目录生成。

2.5 系统设置:(需要安装插件)

安装插件

安装插件

2.6 我们接下来接着打开上面的项目构建触发器:下面http的地址拷贝并保存到一个地方,一会gitlab中需要用到

构建触发器

点击高级,生成一个token,并保存下来,一会gitlab中需要用到

高级

生成token

2.7 接着写构建的shell:

执行shell

#!/bin/bash
SOURCE_DIR=/var/lib/jenkins/workspace/${JOB_NAME}/
DEST_DIR=/usr/share/nginx/html    
REMOTE_IP=192.168.48.133       //推到需要发布代码的服务器中 ,这里需要用到免密登录
/usr/bin/rsync -avpgolr --delete-before $SOURCE_DIR root@$REMOTE_IP:$DEST_DIR

执行shell

在jenkins服务器中生成的公钥拷贝到web服务器中:

ssh-copy-id [email protected]   //把公钥推到web代码发布端

2.8 jenkins系统管理-安全配置中,允许所有用户有可读可写权限:

匿名用户权限授予

最后一步直接点保存即可!

2.8 在Gitlab服务器配置Web Hook:

配置之前需要设置允许钩子和服务访问本地网络

允许钩子访问本地网络

配置钩子:如果钩子不配置也可以手动在Jenkins端点击立即构建进行代码发布

配置钩子

增加钩子

点击测试,提示确保你的项目已经提交,我们来git clone 到开发端,然后add、commit、push再次测试

万事大吉了?还没,接下来我们需要做两件事:

第一:在jenkins服务器端切换到jenkins用户推送公钥到

[root@localhost ~]#su - jenkins
[root@localhost ~]#ssh-keygen
[root@localhost ~]#ssh-copy-id root@需要发布代码的服务器   //必须是jenkins用户生成的公钥

第二:修改/etc/passwd里的jenkins用户的默认bash改成/bin/bash

usermod -s /bin/bash jenkins

至此,可以在开发端push代码了,jenkins直接就勾到并实现自动发布了!!!

如有错误之处欢迎指出,谢谢大家。

相关阅读

SPSS工具:聚类分析(1)快速聚类---绩效评估

至此,K均值聚类步骤结束。下面分析结果: 聚类分析其一结束。

css的文字间距letter-spacing的应用以及应用后不居中

<html> <head>     <style type="text/css">     body {         text-align: center;     }     h1 {  

win7电脑自带的小工具快速去掉快捷方式上的箭头

我们每次安装一个小程序都会在桌面生成一个图标,但是我们也会看到小图标上面还有一个小箭头,看起来很不美观,很多人都想去掉,而要去做

八款最佳的远程桌面工具

远程桌面是微软公司为了方便网络管理员管理维护服务器而推出的一项服务。从windows 2000 server版本开始引入,网络管理员使用远程

自动化运维工具——【ansible详解 一】

目录 ansible 简介 ansible 是什么? ansible 特点 ansible 架构图 ansible 任务执行 ansible 任务执行模式 ansible

分享到:

栏目导航

推荐阅读

热门阅读