Centos 7搭建Gitlab服务器超详细

Centos 7搭建Gitlab服务器超详细Centos 7搭建Gitlab服务器超详细(搭建成功) - believe66 - 博客园

一、 安装并配置必要的依赖关系

在CentOS系统上安装所需的依赖:ssh,防火墙,postfix(用于邮件通知) ,wget,以下这些命令也会打开系统防火墙中的HTTP和SSH端口访问。

1.安装ssh

sudo yum install -y curl policycoreutils-pythonopenssh-server

 

Centos 7搭建Gitlab服务器超详细_第1张图片

若出现以下图片的信息则表示成功

Centos 7搭建Gitlab服务器超详细_第2张图片

2.将SSH服务设置成开机自启动,安装命令:sudo systemctl enable sshd  

3.启动SSH服务,安装命令:sudo systemctl start sshd

4。安装防火墙(如果已经安装了防火墙并且已经在运行状态,则可直接进行第6步)

yum install firewalld systemd -y

若出现“完毕!”的字样,则表示安装成功

Centos 7搭建Gitlab服务器超详细_第3张图片

5.开启防火墙,安装命令:service firewalld  start

 

6.添加http服务到firewalld,pemmanent表示永久生效,若不加--permanent系统下次启动后就会失效。

sudo firewall-cmd --permanent --add-service=http

7.重启防火墙,安装命令:sudo systemctl reload firewalld

8.接下来,安装Postfix以发送通知邮件,安装命令:sudo yum install postfix

Centos 7搭建Gitlab服务器超详细_第4张图片

9.将postfix服务设置成开机自启动,安装命令:sudo systemctl enable postfix

10.启动postfix,安装命令:sudo systemctl start postfix

在安装Postfix期间,可能会出现配置屏幕。选择“Internet Site”并按enter键。使用您的服务器的外部DNS以“mail name”并按enter。如果出现额外的屏幕,继续按enter键接受默认值。

11.wget 用于从外网上下载插件

检查系统中是否已经安装wget,使用命令若出现下图wget相关版本描述则说明系统中已经安装wget 若报系统找不到命令说明wget未安装

若wget未安装则进行安装,安装命令:yum -y install wget

12.安装vim编辑器  安装命令:yum install vim -y

二、添加GitLab镜像源并安装gitlab服务器

1.添加gitlab镜像

wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm

2.安装gitlab 安装命令:rpm -ivh gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm

4.修改gitlab配置文件指定服务器ip和自定义端口:

vim  /etc/gitlab/gitlab.rb

Centos 7搭建Gitlab服务器超详细_第5张图片

进入编辑器后按“i”键进入编辑状态,ESC键退出编辑状态

退出并保存,命令输入“:wq”

ps:注意这里设置的端口不能被占用,默认是80端口,如果80已经使用,请自定义其它端口,并在防火墙设置开放相对应得端口

5.重置并启动GitLab

gitlab-ctl reconfigure

Centos 7搭建Gitlab服务器超详细_第6张图片

 gitlab-ctl restart

提示  "ok: run:"表示启动成功

6.访问 GitLab页面

如果没有域名,直接输入服务器ip和指定端口进行访问

初始账户: root 密码:5iveL!fe

第一次登录修改密码

Centos 7搭建Gitlab服务器超详细_第7张图片

 Centos 7搭建Gitlab服务器超详细_第8张图片

 为了安全性考虑,需要创建public key

ssh-keygen

Centos 7搭建Gitlab服务器超详细_第9张图片

 复制id_rsa.pub公钥

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCubA5EeiK7Z0yS5i0WYXbL7BEe0RG7v4gi4OR//ebWeMN2yZHqpMP2U2tV7rMbIZiII5Z7Bb8STxrnc/GMZ83HSTvV//Ran02ktXCfulQjrEljKFGzdg0a/MDlIFp/fj+9zLBOQOoz891FsON3WJr7dcAG/xf8oa3kuecKWt49+SWOayBXJ46KQuS2Lv3oRvyuYNFbXd1ISYG67gwj2ROIaIpOoSq9TSQlNhUnrumwmiqLgaBoaS7nmQBxhp76zZS5PGaFvk+3DnLAeG8EbwfLNLN6rHvhQxepqcGcERkKFjcqIBSR0T+3gcTGn9Y5H7kaApnWmxcj0hOJAMVoY6bx [email protected]

添加公钥至gitlab

Centos 7搭建Gitlab服务器超详细_第10张图片

 添加公钥至gitlab

Centos 7搭建Gitlab服务器超详细_第11张图片

服务器本地git安装

yum install git

Centos 7搭建Gitlab服务器超详细_第12张图片

添加远程仓库

1.gitlab创建仓库,进行远程同步

创建GROUP,创建项目,创建用户Add user
 

Centos 7搭建Gitlab服务器超详细_第13张图片

Centos 7搭建Gitlab服务器超详细_第14张图片

 Centos 7搭建Gitlab服务器超详细_第15张图片

 Centos 7搭建Gitlab服务器超详细_第16张图片

 Centos 7搭建Gitlab服务器超详细_第17张图片

 Centos 7搭建Gitlab服务器超详细_第18张图片Centos 7搭建Gitlab服务器超详细_第19张图片

Command line instructions

Git global setup

git config --global user.name "Administrator"
git config --global user.email "[email protected]"

Create a new repository

git clone [email protected]:uiddevelop/testProj1.git
cd testProj1
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master

Existing folder

cd existing_folder
git init
git remote add origin [email protected]:uiddevelop/testProj1.git
git add .
git commit -m "Initial commit"
git push -u origin master

Existing Git repository

cd existing_repo
git remote add origin [email protected]:uiddevelop/testProj1.git
git push -u origin --all
git push -u origin --tags

2.使用git remote 添加远程仓库地址,选择SSH方式克隆。

  1. [root@git-node1 ~]# cd demo/ //必须是git init 初始化仓库目录
  2. [root@git-node1 demo]# git remote add origin git@git-node1:root/git_demo.gitxxx

四 、修改远程仓库

由于刚开始添加的远程仓库写错了url,现在通过如下命令进行url修改

  1. [root@git-node1 demo]# git remote set-url origin git@git-node1:root/git_demo.git

五、查看远程仓库

如果已经配置了远程仓库服务器,可以运行 git remote命令。它会列出你指定每一个远程服务器的简写。

  1. [root@git-node1 demo]# git remote
  2. origin

也可以指定-v选项,会显示需要读写远程仓库git保存简写名称以及对应的URL地址。

  1. [root@git-node1 demo]# git remote -v
  2. origin git@git-node1:root/git_demo.git (fetch)
  3. origin git@git-node1:root/git_demo.git (push)

六、推送远程仓库

将本地库更新内容推送至远程,用git push命令,实际上是将当前分支推送至远程仓库。 
由于远程库是新建立空的,我们在第一次推送时候,git默认是不会把本地master关联至远端的master,所以我们需要加上-u参数,这样git不但会把本地的master分支内容推送至远程仓库的master分支,并且还会将本地的master分支和远程master分支关联起来。在以后推送或者拉取时就可以简化命令。

  1. [root@git-node1 demo]# git push -u origin master
  2. Counting objects: 5, done.
  3. Compressing objects: 100% (2/2), done.
  4. Writing objects: 100% (5/5), 432 bytes | 0 bytes/s, done.
  5. Total 5 (delta 0), reused 0 (delta 0)
  6. To git@git-node1:root/git_demo.git
  7. * [new branch] master -> master
  8. 分支 master 设置为跟踪来自 origin 的远程分支 master。

如果推送冲突可以选择--force强行推送

  1. [root@git-node1 xuliangwei]# git push origin --force
  2. 如果一次都没有推送数据,可以选择—all一次全部推送至远程服务器
  3. [root@git-node1 xuliangwei]# git push origin --all

七、克隆远程仓库

如果现在仓库已经有开发好的项目,需要加入进来开发,可以先clone整个项目。

  1. [root@git-node1 tmp]# git clone git@git-node1:root/git_demo.git
  2. 正克隆到 'git_demo'...
  3. remote: Counting objects: 5, done.
  4. remote: Compressing objects: 100% (2/2), done.
  5. remote: Total 5 (delta 0), reused 0 (delta 0)
  6. 接收对象中: 100% (5/5), done.

八、拉取远程仓库

简单的说,这个命令会访问远程仓库,从中取出你还没有的数据,或者git pull之后还是没有的数据。 
此前在添加的远程仓库的时候指定了仓库名origin,命令会自动将其添加为远程仓库并默认以origin为简写。 
所以,git fetch origin相当于从远程获取最新版本到本地,然后比较本地master分支和远程master分支差别最后进行合并。

  1. [root@git-node1 demo]# git fetch origin //拉取主分支最新版本(可以拉取其他分支)
  2. [root@git-node1 demo]# git fetch origin dev //获取dev分支最新数据

拉取数据,在生产环境中见到比较多的还是git pull相当于是从远程获取最新版本并merge到本地

  1. [root@git-node1 xuliangwei]# git pull origin master #拉取主分支最新版本(可以拉取其他分支)
  2. [root@git-node1 xuliangwei]# git pull origin dev //获取dev分支最新数据

上述命令其实相当于git fetch 和 git merge在实际使用中,git fetch更安全一些,因为在merge前,我们可以查看更新情况,然后再决定是否合并 
1.6.8更改远程仓库

如果想重新命名一个远程仓库名称。将test重命名为rainbow,可以通过git remote rename进行修改。 
注意:这同时会修改你的远程分支名字。之前引用test/master的现在会引用rainbow/master 
1.添加新远程分支,并赋予test为远程仓库名称

  1. [root@git-node1 git_demo]# git remote add test git@git-node1:root/git_demo.git
  2. [root@git-node1 git_demo]# git remote -v
  3. origin git@git-node1:root/git_demo.git (fetch)
  4. origin git@git-node1:root/git_demo.git (push)
  5. test git@git-node1:root/git_demo.git (fetch)
  6. test git@git-node1:root/git_demo.git (push)

2.修改test名称为rainbow名称

  1. [root@git-node1 git_demo]# git remote rename test rainbow
  2. [root@git-node1 git_demo]# git remote -v
  3. origin git@git-node1:root/git_demo.git (fetch)
  4. origin git@git-node1:root/git_demo.git (push)
  5. rainbow git@git-node1:root/git_demo.git (fetch)
  6. rainbow git@git-node1:root/git_demo.git (push)

九、移除远程仓库

因为一些变动不再使用一些特定的镜像,可以通过git remote remove 远程仓库名称,移除远程仓库 
1.查看远程仓库

  1. [root@git-node1 git_demo]# git remote -v
  2. origin git@git-node1:root/git_demo.git (fetch)
  3. origin git@git-node1:root/git_demo.git (push)
  4. rainbow git@git-node1:root/git_demo.git (fetch)
  5. rainbow git@git-node1:root/git_demo.git (push)

2.移除不再使用的rainbow远程仓库

  1. [root@git-node1 git_demo]# git remote remove rainbow
  2. [root@git-node1 git_demo]# git remote -v
  3. origin git@git-node1:root/git_demo.git (fetch)
  4. origin git@git-node1:root/git_demo.git (push)

十、Git远程仓库小结

  要添加一个仓库,首先必须知道仓库的地址,然后使用git remote add 命令添加远程仓库,也可使用git clone命令克隆。(Git支持多种协议,包括http、https,但通过ssh支持的原生git协议速度最佳。) 


  要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git,关联后,使用命令git push -u origin master第一次推送master分支的所有内容,此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改

    1. # git remote add [remote] [url]#添加(关联)远程库
    2. # git remote set-url [remote] [url] #修改远程仓库
    3. # git clone [url] #克隆远程仓库项目
    4. # git remote #查看指定远程仓库命名简写
    5. # git remote –v #查看远程仓库详细信息以及名称对应URL
    6. # git push -u remote master #第一次推送master分支的所有内容
    7. # git fetch remote [branch/tag] #下载远程仓库的所有变动
    8. # git pull remote [branch/tag] #拉取主分支最新版本(可以拉取其他分支)
    9. # git push remote [branch/tag] --force #强行推送当前分支至远程分支,及时冲突
    10. # git push remote [branch/tag] --all #推送所有分支到远程仓库
    11. # git remote rename [oldname] [newname] #修改远程仓库名称
    12. # git remote remove [name] #删除远程仓库名称以及URL地址


安装过程遇见的那些坑

一、在CentOS里面安装软件,提示软件已安装,但是rpm -q和-e都是提示包没有安装

   查看与rpm包相关的文件和其他信息   rpm -qa | grep 包名

查询包是否被安装,命令:rpm -q 包名

删除软件包,命令:rpm -e 包名

运行以上三步,把原来的包删除掉重新下载和安装

你可能感兴趣的:(devops,gitlab,git)