gitlab部署

Gitlab部署

//配置yum源
[root@localhost ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
[root@localhost ~]# sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
[root@localhost ~]# rm -f /etc/yum.repos.d/
[root@localhost ~]# dnf clean all
[root@localhost ~]# dnf list all

//配置epel源
[root@localhost ~]# dnf -y install epel-release

//安装git
[root@localhost ~]# dnf -y install git

//安装依赖包
[root@localhost ~]# dnf -y install openssh-server openssh-clients postfix cronie

//启动postfix服务并设置开机自启
[root@localhost ~]# systemctl enable --now postfix.service 
Created symlink /etc/systemd/system/multi-user.target.wants/postfix.service → /usr/lib/systemd/system/postfix.service.

//下载gitlab的rpm包
[root@localhost ~]# wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-15.3.3-ce.0.el7.x86_64.rpm

//下载policycoreutils-python的rpm包
[root@localhost ~]# wget http://mirror.centos.org/centos/7/os/x86_64/Packages/policycoreutils-python-2.5-34.el7.x86_64.rpm


[root@localhost ~]# rpm -qa | grep policycoreutils
policycoreutils-2.9-9.el8.x86_64
//如果系统有这个报的话,请先卸载
[root@localhost ~]# rpm -e policycoreutils-2.9-9.el8.x86_64

//安装policycoreutils-python
[root@localhost ~]# rpm -ivh policycoreutils-python-2.5-34.el7.x86_64.rpm --nodeps
warning: policycoreutils-python-2.5-34.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...
   1:policycoreutils-python-2.5-34.el7################################# [100%]

//安装gitlab
[root@localhost ~]# rpm -ivh gitlab-ce-15.3.3-ce.0.el7.x86_64.rpm  --nodeps
warning: gitlab-ce-15.3.3-ce.0.el7.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID f27eab47: NOKEY
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...
…………
       *.                  *.
      ***                 ***
     *****               *****
    .******             *******
    ********            ********
   ,,,,,,,,,***********,,,,,,,,,
  ,,,,,,,,,,,*********,,,,,,,,,,,
  .,,,,,,,,,,,*******,,,,,,,,,,,,
      ,,,,,,,,,*****,,,,,,,,,.
         ,,,,,,,****,,,,,,
            .,,,***,,,,
                ,*,.
  


     _______ __  __          __
    / ____(_) /_/ /   ____ _/ /_
   / / __/ / __/ /   / __ `/ __ \
  / /_/ / / /_/ /___/ /_/ / /_/ /
  \____/_/\__/_____/\__,_/_.___/

//修改配置文件
[root@localhost ~]# vim /etc/gitlab/gitlab.rb 
external_url 'http://192.168.169.139'   //将此处设为gitlab的服务器ip地址亦或域名

//重载配置文件并重启gitlab
[root@localhost ~]# gitlab-ctl reconfigure   //时间有点久,请耐心等待
[root@localhost ~]# gitlab-ctl restart

//破解管理员密码
[root@localhost ~]# gitlab-rails console -e  production
--------------------------------------------------------------------------------
 Ruby:         ruby 2.7.5p203 (2021-11-24 revision f69aeb8314) [x86_64-linux]
 GitLab:       15.3.3 (c629a47f87f) FOSS
 GitLab Shell: 14.10.0
 PostgreSQL:   13.6
------------------------------------------------------------[ booted in 18.26s ]
Loading production environment (Rails 6.1.6.1)
irb(main):001:0> user = User.where(id: 1).first		//id为1是超级管理员
=> #<User id:1 @root>
irb(main):002:0> user.password = 'zic12345'			//设置密码,最少8位
=> "zic12345"
irb(main):003:0> user.password_confirmation = 'zic12345' 
=> "zic12345"
irb(main):004:0> user.save!			//保存,没问题会返回true
=> true
irb(main):005:0> exit			//退出

去浏览器输入ip访问

Gitlab的基本使用

新建项目

建立项目之前需要将gitlab服务器的ssh公钥添加到

如果本地有ssh公钥就直接进行使用,没有可以生成

[root@localhost ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:nrcevcXEAkfQd4JMgqqiGSFatYKmhmqzZGj8a59xUTA root@localhost.localdomain
The key's randomart image is:
+---[RSA 3072]----+
|       E .o=o.   |
|    .   +  o+ o .|
| . . . . .. .. o |
|+.o . . .  o .   |
|*o . . .S   . o  |
|B.. .  ... . +   |
|+O . . .o o . o  |
|Bo..  +  . o o   |
|..+ooo   .o .    |
+----[SHA256]-----+

查看/root/.ssh/id_rsa.pub文件的内容,将内容复制到如下位置,然后保存

新建项目

查看项目分支

使用命令行的方式管理项目

首先将gitlab项目克隆到本地来,使用如下命令

选择想要克隆的项目

选择克隆,复制ssh克隆

然后使用git clone命令

[root@localhost ~]# git clone git@192.168.169.139:gitlab-instance-63929587/zic.git
Cloning into 'zic'...
The authenticity of host '192.168.169.139 (192.168.169.139)' can't be established.
ECDSA key fingerprint is SHA256:h0JBqfyD7nmBvCwBazGyK6b50D/gE11IG/dW6E3J1Ug.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.169.139' (ECDSA) to the list of known hosts.
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (3/3), done.

//可以看到多了一个zic的目录
[root@localhost ~]# ls
anaconda-ks.cfg  gitlab-ce-15.3.3-ce.0.el7.x86_64.rpm  policycoreutils-python-2.5-34.el7.x86_64.rpm  zic
//进入项目
[root@localhost ~]# cd zic/
[root@localhost zic]# ls
README.md

上传文件

在上传文件之前,需要做两件事,指定本地访问项目的邮箱和用户

//指定邮箱
[root@localhost zic]# git config --global user.email "root@example.com" 
//指定用户
[root@localhost zic]# git config --global user.name "root"

上传文件

//新建文件
[root@localhost zic]# touch file1
[root@localhost zic]# ls
file1  README.md

//添加文件
[root@localhost zic]# git add file1		//如果想上传多个文件的话就直接指定,上传所有文件就使用‘.'代表整个目录
//提交,选项-m是描述信息
[root@localhost zic]# git commit -m "file1"
[main 228cd02] file1
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 file1
 //上传
 [root@localhost zic]# git push 
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 2 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 260 bytes | 260.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To 192.168.169.139:gitlab-instance-63929587/zic.git
   a6e2488..228cd02  main -> main

到gitlab的web管理界面进行验证,file1文件已经上传了上来

新建分支

//创建一个名为zic的分支
[root@localhost zic]# git branch zic

//进行同步
[root@localhost zic]# git push origin zic 
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
remote: 
remote: To create a merge request for zic, visit:
remote:   http://192.168.169.139/gitlab-instance-63929587/zic/-/merge_requests/new?merge_request%5Bsource_branch%5D=zic
remote: 
To 192.168.169.139:gitlab-instance-63929587/zic.git
 * [new branch]      zic -> zic

切换分支

//切换到分支zic
[root@localhost zic]# git checkout zic
Switched to branch 'zic'

//在分支zic里面上传一个文件
[root@localhost zic]# touch file2

[root@localhost zic]# git add file2 

[root@localhost zic]# git commit -m "file2"
[zic 6295df5] file2
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 file2
//在分支里推送不能直接使用push命令,直接使用他会提醒你使用'git push --set-upstream origin'
[root@localhost zic]# git push 
fatal: The current branch zic has no upstream branch.
To push the current branch and set the remote as upstream, use

    git push --set-upstream origin zic
//这条命令是将zic这个分支与前面的分支main进行合并处理


[root@localhost zic]# git push --set-upstream origin zic
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Delta compression using up to 2 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 256 bytes | 256.00 KiB/s, done.
Total 2 (delta 0), reused 0 (delta 0), pack-reused 0
remote: 
remote: To create a merge request for zic, visit:
remote:   http://192.168.169.139/gitlab-instance-63929587/zic/-/merge_requests/new?merge_request%5Bsource_branch%5D=zic
remote: 
To 192.168.169.139:gitlab-instance-63929587/zic.git
   228cd02..6295df5  zic -> zic
Branch 'zic' set up to track remote branch 'zic' from 'origin'.

拉取文件

//将分支zic里的文件都拉取到分支main里
//切换到main分支
[root@localhost zic]# git checkout main 
Switched to branch 'main'
Your branch is up to date with 'origin/main'.

//进行拉取,拉取到本地
[root@localhost zic]# git pull origin zic 
warning: Pulling without specifying how to reconcile divergent branches is
discouraged. You can squelch this message by running one of the following
commands sometime before your next pull:

  git config pull.rebase false  # merge (the default strategy)
  git config pull.rebase true   # rebase
  git config pull.ff only       # fast-forward only

You can replace "git config" with "git config --global" to set a default
preference for all repositories. You can also pass --rebase, --no-rebase,
or --ff-only on the command line to override the configured default per
invocation.

From 192.168.169.139:gitlab-instance-63929587/zic
 * branch            zic        -> FETCH_HEAD
Updating 228cd02..6295df5
Fast-forward
 file2 | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 file2

//推送
[root@localhost zic]# git push 
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
To 192.168.169.139:gitlab-instance-63929587/zic.git
   228cd02..6295df5  main -> main

posted @ 2022-09-22 21:08  Zic师傅  阅读(368)  评论(0编辑  收藏  举报