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前端进行验证:
[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端口
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服务器添加项目:
2.4 Jenkins服务创建任务:创建一个自由风格的软件项目
把我们上面拷贝gitlab的ssh代码仓库扔过来
注意:下面填的是jenkins服务器端生成的私钥
注意:从gitlab代码仓库拷贝的时候要http协议地址,然后再切回ssh
至此,Jenkins就可以从gitlab上获取到代码了。但是还无法自动发布。并且/var/lib/jenkins/workspace 目录生成。
2.6 我们接下来接着打开上面的项目构建触发器:下面http的地址拷贝并保存到一个地方,一会gitlab中需要用到
点击高级,生成一个token,并保存下来,一会gitlab中需要用到
2.7 接着写构建的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
在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直接就勾到并实现自动发布了!!!
如有错误之处欢迎指出,谢谢大家。
相关阅读
至此,K均值聚类步骤结束。下面分析结果: 聚类分析其一结束。
css的文字间距letter-spacing的应用以及应用后不居中
<html> <head> <style type="text/css"> body { text-align: center; } h1 {
我们每次安装一个小程序都会在桌面生成一个图标,但是我们也会看到小图标上面还有一个小箭头,看起来很不美观,很多人都想去掉,而要去做
远程桌面是微软公司为了方便网络管理员管理维护服务器而推出的一项服务。从windows 2000 server版本开始引入,网络管理员使用远程
目录 ansible 简介 ansible 是什么? ansible 特点 ansible 架构图 ansible 任务执行 ansible 任务执行模式 ansible