热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

gitlabrun成功但无法访问_gitlab部署管理

目录1、gitlab基本介绍2、安装前的准备3、gitlab安装4、gitlab管理gitlab基本介绍GitLab概述:是一个利用RubyonRails开发的开源应

目录

1、gitlab基本介绍

2、安装前的准备

3、gitlab安装

4、gitlab管理

gitlab基本介绍

GitLab概述:

是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。

Ruby on Rails 是一个可以使你开发、部署、维护 web 应用程序变得简单的框架。

GitLab拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。

GitLab官网:https://about.gitlab.com/

gitlab与github区别:

相同点: 二者都是基于web的Git仓库,在很大程度上GitLab是仿照GitHub来做的,它们都提供了分享开源项目的平台,为开发团队提供了存储、分享、发布和合作开发项目的中心化云存储的场所。

不同点:

1、GitHub如果要使用私有仓库,是需要付费的。GitLab可以在上面创建私人的免费仓库。

2、GitLab让开发团队对他们的代码仓库拥有更多的控制,相比于GitHub,它有不少的特色:允许免费设置仓库权限;允许用户选择分享一个project的部分代码;允许用户设置project的获取权限,进一步的提升安全性;可以设置获取到团队整体的改进进度;通过innersourcing让不在权限范围内的人访问不到该资源。

从代码私有性方面来看,有时公司并不希望员工获取到全部的代码,这个时候GitLab无疑是更好的选择。但对于开源项目而言,GitHub依然是代码托管的首选。

Github正确使用姿势

https://mp.weixin.qq.com/s/cUz9_UDe2FsvBt2M9xp4FA

git相关概念:

git 是一种版本控制系统,是一个命令,是一种工具

gitlib 是用于实现git功能的开发库

github 是一个基于git实现的在线代码托管仓库,包含一个网站界面,向互联网开放

gitlab 是一个基于git实现的在线代码仓库托管软件,一般用于在企业内网搭建git私服

注:gitlab-ce 社区版 ;gitlab-ee是企业版,收费

安装前的准备

系统:CentOS Linux release 7.2.1511 (Core)

内核:3.10.0-327.13.1.el7.x86

配置:2核4G40G(生产环境建议4核8G100G以上。大内存:pull和push代码特别吃内存,特别是jenkins同一时间集中构建push代码的时候,内存消耗很大;大磁盘用于存放前后端代码)

服务器:

2ee5cad985613c7b985fffab8419adfc.png

环境设置:此处直接关掉firewalld、iptables

引用阿里云yum源:

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

yum makecache

安装相关依赖:

yum install curl policycoreutils openssh-server openssh-clients postfix -y

systemctl status postfix.service #查看状态是否有错误

systemctl start postfix.service #启动

systemctl enable postfix.service #开机自启

systemctl status postfix.service时,可能出现错误:

1.fatal: parameter inet_interfaces: no local interface found for ::1

#vim /etc/postfix/main.cf

...

inet_interfaces = all

inet_protocols = all

...

2.fatal: unable to use my own hostname

#vim /etc/postfix/main.cf

...

myhostname = mail.mydomain.com #不能为IP

...

gitlab安装

下载最新版本:https://packages.gitlab.com/gitlab/gitlab-ce/,下面是文章编写时的最新版本

curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | bash

yum -y install gitlab-ce-11.0.4-ce.0.el7.x86_64.rpm/download.rpm

sed -i '/^external_url/s/gitlab.example.com/10.120.126.28/' /etc/gitlab/gitlab.rb #将10.120.126.28修改成自己的gitlab域名

gitlab-ctl reconfigure #初始化、启动服务

)若gitlab-ctl reconfigure报错:

initdb.bin: invalid locale settings; check LANG and LC_* environment variables

)使用以下两条命令解决

LC_ALL="en_US.UTF-8"

LC_CTYPE="en_US.UTF-8"

gitlab常用命令

gitlab-ctl start # 启动所有 gitlab 组件;

gitlab-ctl stop # 停止所有 gitlab 组件;

gitlab-ctl restart # 重启所有 gitlab 组件;

gitlab-ctl status # 查看服务状态;

gitlab-ctl reconfigure # 启动服务;

vim /etc/gitlab/gitlab.rb # 修改默认的配置文件;

gitlab-rake gitlab:check SANITIZE=true --trace # 检查gitlab;

gitlab-ctl tail # 查看日志;

查看一下服务确认一下,可以看到gitlab是通过nginx来web展现的

# gitlab-ctl status

run: alertmanager: (pid 11534) 15723s; run: log: (pid 11543) 15723s

run: gitaly: (pid 11478) 15725s; run: log: (pid 11490) 15724s

run: gitlab-monitor: (pid 11507) 15724s; run: log: (pid 11515) 15724s

...

# lsof -i :80

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

nginx 11028 root 7u IPv4 42791 0t0 TCP *:http (LISTEN)

nginx 11029 gitlab-www 7u IPv4 42791 0t0 TCP *:http (LISTEN)

nginx 11030 gitlab-www 7u IPv4 42791 0t0 TCP *:http (LISTEN)

屏蔽掉注册功能【不想让人随便注册使用】

https://blog.csdn.net/ouyang_peng/article/details/78562125

gitlab管理

访问gitlab:http://10.120.126.28

默认用户:root,设置root密码

进入之后,点击扳手图标,进入admin管理页面,然后可以看到“项目创建”、“用户创建”、“组创建”选项

cf0c1fd4da4b73f80977d7c442804433.png

user创建:其他默认

c7ec361eea30b96625912a1721f4d0c6.png

可以看到我们刚创建的用户,点击edit设置统一的用户初始密码,后面新创建的用户第一次登录需更改密码

c120054396c31beb9b5d8f67b858bfec.png

新用户首次登录更改密码后,将自己的开发机的公钥上传(先将gitlab本身的root公钥上传)

500b55398662291b948ae479b3d87c2e.png

group创建:其他默认

创建一个叫test项目的分组,下面的private/internal/public,根据情况选择,默认为private私有

4443aaba67834f7d7ddf30e739a31faa.png

为项目组分配组员、分配权限(后面可以点组名进入此分配权限页面)

2494b12feafa8b9bf1730aa4d13d7c5c.png

project创建

选择项目组,设置项目名称,其他默认

#Private私有状态或Internal状态,只能通过ssh方式连接(推荐此种方式,比较安全),这两种模式下是不能通过http方式连接

#public公开状态,就可以直接通过http连接(http连接只能在这种模式下才能成功!要保证gitlab机器的http端口对客户机开放)

993e5bb8bcc63d445c25b18ed3a21c80.png

可以看到创建成功后的git地址,以及git基本的操作命令

918509addcbfbbb7c8331f4444e8a315.png

项目操作模拟

服务端操作:10.120.126.28,gitlab_first_push.sh

#!/bin/bash

# gitlab_first_push.sh

#本脚本用于以管理员首次提交项目,并更改"Protected Branches",将"Allowed to push"设置为"Developers+maintainers",这样其他用户如abc将不会出现以下错误:

# ! [remote rejected] master -> master (pre-receive hook declined)

#error: failed to push some refs to 'git@10.120.126.28:test/solo.git'

project_dir=`date "+%Y-%m-%d/%H:%M:%S"`

mkdir -p /root/${project_dir}

group_name="test"

project_name="solo"

git config --global user.name "Administrator"

git config --global user.email "admin@example.com"

cd /root/${project_dir}

git clone git@10.120.126.28:${group_name}/${project_name}.git

cd ${project_name}

touch README.md

git add README.md

git commit -m "add README"

git push -u origin master

rm -rf /root/${project_dir}

报错解决:remote: GitLab: You are not allowed to push code to protected branches on this project.

53de3bb37e66e81352f37e48771da4d7.png
c45ca803fd3683923f496f3ee7ac3775.png

git用户端操作:10.120.126.29

mkdir -p /root/soft/

cd /root/soft/

git clone https://github.com/b3log/solo.git

git config --global user.email "abc@163.com"

git config --global user.name "abc"

mkdir -p /root/project

cd /root/project

git clone git@10.120.126.28:test/solo.git

cp -rf /roo/soft/solo/* /root/project/solo/

cd /root/project/solo/src/main/resouces/

sed -i '/^serverhost/s/localhost/10.120.126.29/' latke.properties

cd /root/project/solo/

git add .

git commit -m "all"

#这步如果以abc用户操作报错,参考上面

git push origin master

git clone 服务内存飙升:因为gitlab本身上传下载特别耗资源,如果gitlab服务器报负载高或者内存占用高,直接提高给机器配置吧



推荐阅读
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • Centos下安装memcached+memcached教程
    本文介绍了在Centos下安装memcached和使用memcached的教程,详细解释了memcached的工作原理,包括缓存数据和对象、减少数据库读取次数、提高网站速度等。同时,还对memcached的快速和高效率进行了解释,与传统的文件型数据库相比,memcached作为一个内存型数据库,具有更高的读取速度。 ... [详细]
  • Linux下安装免费杀毒软件ClamAV及使用方法
    本文介绍了在Linux系统下安装免费杀毒软件ClamAV的方法,并提供了使用该软件更新病毒库和进行病毒扫描的指令参数。同时还提供了官方安装文档和下载地址。 ... [详细]
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
  • CentOS7.8下编译muduo库找不到Boost库报错的解决方法
    本文介绍了在CentOS7.8下编译muduo库时出现找不到Boost库报错的问题,并提供了解决方法。文章详细介绍了从Github上下载muduo和muduo-tutorial源代码的步骤,并指导如何编译muduo库。最后,作者提供了陈硕老师的Github链接和muduo库的简介。 ... [详细]
  • 本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ... [详细]
  • 本文介绍了在Ubuntu系统中清理残余配置文件和无用内容的方法,包括清理残余配置文件、清理下载缓存包、清理不再需要的包、清理无用的语言文件和清理无用的翻译内容。通过这些清理操作可以节省硬盘空间,提高系统的运行效率。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • 本文详细介绍了git常用命令及其操作方法,包括查看、添加、提交、删除、找回等操作,以及如何重置修改文件、抛弃工作区修改、将工作文件提交到本地暂存区、从版本库中删除文件等。同时还介绍了如何从暂存区恢复到工作文件、恢复最近一次提交过的状态,以及如何合并多个操作等。 ... [详细]
  • LINUX学习之centos7营救模式
    今天卸载软件的时候,不小心把GNOME的一些组件给卸了,导致桌面无法正常开启,会卡在启动过程中,而我的开机启动模式又是设置为图形界面,所以一开LINUX就卡住了,进入不了命令行界面 ... [详细]
author-avatar
一腕儿本人
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有