搭建Gitlab GitlabCICD服务
title: dockerdate: 2018-10-25 22:50:21categories: “大数据”tags:- dockerdescription: docker学习docker容器是镜像的运行状态比如 启动nginx 将端口映射到本机8080 -d为立即返回,采用守护线程方式执行docker run -p 8080:80 -d nuginx将docker c...
Gitlab安装
- 官网下载rpm包手打进行安装
yum install postfix
systemctl enable postfix
systemctl start postfix
rpm -i gitlab-ce-11.3.4-ce.0.el7.x86_64.rpm
修改gitlab配置文件的服务器地址和端口,配置项:external_url,配置文件路径:/etc/gitlab/gitlab.rb(可选)
修改后运行gitlab-ctl reconfigure gitlab-ctl start
- yum安装(推荐)
yum install curl policycoreutils openssh-server openssh-clients postfix -y
使用清华大学镜像源进行安装
vim /etc/yum.repos.d/gitlab-ce.repo
[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1
安装依赖
yum install curl openssh-server openssh-clients postfix cronie
service postfix start
chkconfig postfix on
yum makecache
安装gitlab
yum install gitlab-ce -y
给gitlab设置一个域名,当然你也可以后期再设置,设置后需要重启
vim /etc/gitlab/gitlab.rb
external_url ‘http://192.168.0.6’
更改gitlab默认端口
cd /var/opt/gitlab/nginx/conf
vim gitlab-http.conf
把80端口修改为8010
server {
listen *:8010; --修改端口(避免与已经存在的80冲突)
}
编辑 vim /etc/gitlab/gitlab.rb
命令状态输入/unicorn[‘port’],按Enter进入查找状态,按n往下查找,直到看到unicorn[‘port’] =8080,修改端口,删除#号,解除注释状态
unicorn[‘port’] = 9090
启动 gitlab-ctl reconfigure gitlab-ctl start
异常502解决
gitlab安装完成后 出现502的原因一般是内存不足导致
Linux(CentOS) 如何查看当前占用CPU或内存最多的K个进程
ps -aux | sort -k3nr | head -K
解决办法,启用swap分区,步骤如下
关于swap分区
推荐设置:
4G以内的物理内存,SWAP 设置为内存的2倍。
4-8G的物理内存,SWAP 等于内存大小。
8-64G 的物理内存,SWAP 设置为8G。
64-256G物理内存,SWAP 设置为16G。
创建交换区原则:
1.创建的swap交换区大小应该大于实际物理内存的容量大小,但是不要过大,以免造成硬盘空间浪费。
2.如果内存IO请求频繁,而单一swap交换区IO队列等待时间过长的话,可以多创建几个swap交换区。
查看swap分区是否启动
cat /proc/swaps
2.创建SWAP交换区空白文件 通常创建物理内存2~2.5倍大小的文件作为交换区:
dd if=/dev/zero of=/data/swap bs=512 count=8388616
创建swap大小为bs*count=4294971392(4G);
3.通过mkswap命令将上面新建出的文件做成swap分区
mkswap -f /data/swap
4.查看内核参数vm.swappiness中的数值是否为0,如果为0则根据实际需要调整成10
查看: cat /proc/sys/vm/swappiness
设置: sysctl -w vm.swappiness=10
若想永久修改,则编辑/etc/sysctl.conf文件
比如centos系统 swappiness配置的路径: /proc/sys/vm/swappiness
该文件中有vm.swappiness变量配置,默认为0 echo ‘vm.swappiness=10’ >>/etc/sysctl.conf
避免linux没有用完物理内存时,直接用交换分区
使用命令对swap进行监控:vmstat 1 5 每隔一秒 打印5次 swap分区的使用情况
swapon -s 查看swap的使用
5.启用分区
swapon /data/swap
echo “/data/swap swap swap defaults 0 0” >> /etc/fstab
再次使用cat /proc/swaps 查看swap分区是否启动
6.如果有必要可以设置开机自动启用swap文件交换区,修改/etc/fstab,增加一行
/swap swap swap defaults 0 0 #开机即启用swap
关闭swap: swapoff /swap
Gitlab CI Runner(CICD)安装配置
安装docker curl -SSL https://get.docker.com/ | sh (为什么要装docker?因为cirunner操作的对象就是docker容器,应用都被打包为docker镜像)
安装 gitllab ci runner: curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.rpm.sh | bash
yum -y install gitlab-ci-multi-runner -y
为了能让ci 执行docker命令 需要ci用户添加到dockergouop 然后重启
usermod -aG docker gitlab-runner
service docker restart
gitlab-ci-multi-runner restart
注册runner 到gitlab服务器
gitlab-ci-multi-runner register 跟着提示一步步走, 其中用到的token在gitlab页面的 settings /CICD /Runners/ 下面
查看运行状态:gitlab-ci-multi-runner status
成功安装后 到gitlab服务验证是否注册到gitlab成功
点击 Expand
出现如图的绿色的runners即代表成功安装并注册到gitlab,上面的token就是在安装gitlabcirunner所要用到的信息
为项目配置.gitlab-ci.yml文件(这里只是一个示例),当项目每次代码提交时都会根据这个文件触发CICD,实现项目的自动部署上线
···
stages:
- bulid
- test
- deploy
job1:
stage: test
tags:
- bogon //runner的tags 写一个即可
script:
- echo “I am job1”
- echo “i am in test stage”
job2:
stage: build
tags:
- bogon
script:
- echo “I am job1”
- echo “i am in buildstage”
job3:
stage: deploy
tags:
- bogon
script:
- echo “I am job3”
- echo “i am in deploy”
···
关于jenkins(jenkins的用途和gitlabcirunner一样)
jenkins下载地址:http://mirrors.jenkins-ci.org/war/2.129/
https://mirrors.tuna.tsinghua.edu.cn/jenkins/war/2.129/(清华镜像源)
安装jenkins
Jenkins的安装分为两种:rpm包安装和war包安装
mv jenkins.war /tomcat/webapps/
ls /tomcat/webapps/
/tomcat/bin/startup.sh
查看进程是否启动
netstat -lntup | grep java
浏览器http://10.0.0.8:8080/jenkins访问web界面继续完成安装
根据提示在日志或者/root/.jenkins/secrets/initialAdminPassword文件中找到密码输入解锁jenkins
点击安装推荐的插件,等待插件安装完成
插件安装完成设置管理员的账号密码等信息
登录jenkins,jenkins安装完成
jenkins配置
系统管理——>管理插件——>可选插件——>过滤
搜索maven插件Maven Integration plugin并等待成功安装,不能安装请重试,或者手动下载插件上传安装
配置jenkins全局工具配置
系统管理——>全局工具配置,配置jdk和maven,配置为自己安装的jdk和maven
使用jenkins构建项目
新建任务
输入项目描述,设置构建参数
源码管理选择git,需要填写url及选择密钥
Repository URL填写自建的gitlab上的项目地址
由于jenkins所在机器没有与gitlab服务器认证,需要生成密钥并将公钥添加至gitlab上
Credentials选项中点击add或者直接在主面板中找到凭据管理并添加凭据,将上面生成的私钥粘贴
回到项目参数配置源码管理界面,下拉选择相应的key,选择源码库浏览器为gitlab并填写http地址(gitlab上找到该地址)及项目名称
整个项目构建并自动上线的步骤为:拉取gitlab上面的java项目代码——>改配置文件——>导入数据库——>使用maven插件编译java项目——> 执行脚本(推送新编译好的war包文件到tomcat服务器,这里使用jenkins本机服务器)
项目要实现自动上线还需要做的是修改项目的配置文件中的数据库用户名及密码,导入数据库文件(导入前需要创库授权),脚本中的路径需要在jenkins相应路径中找到得出。
最后构建完成后即可访问网站,项目自动上线
更多推荐
所有评论(0)