0、环境说明
1 2 3 4 5 |
OS: CentOS-7-x86_64-Minimal GitLab: gitlab-10.0.0 附上gitlab下载地址: https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm |
1、centos 7安装gitlab
1.1、安装gitlab所依赖的软件包
1 |
[root@gitlab ~]# yum -y install policycoreutils-python openssh-server openssh-clients postfix |
1.2、启动postfix并设置开机自启动(用于gitlab发送邮件)
1 2 |
[root@gitlab ~]# systemctl start postfix [root@gitlab ~]# systemctl enable postfix |
1.3、安装gitlab软件包
1 |
[root@gitlab ~]# rpm -ivh gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm |
1.4、修改配置文件中gitlab的访问地址(可以设置为域名方式访问,端口修改为未在用的端口即可)
1 2 |
[root@gitlab ~]# vim /etc/gitlab/gitlab.rb 13 external_url 'http://192.168.0.126:888' |
1.5、重新读取配置文件配置并重启gitlab(这个时间有点长,可能要好几分钟,可以先做下面第2项给客户端先生成密钥对)
1 2 |
[root@gitlab ~]# gitlab-ctl reconfigure [root@gitlab ~]# gitlab-ctl restart |
2、先在linux客户端创建一个ssh key,等下gitlab使用
1 2 3 4 5 6 7 8 |
#2.1、先看下.ssh目录下有没有创建好的key,如果没有的话新建一对 [root@imzcy ~]# ls -al ~/.ssh/ #2.2、使用ssh-keygen命令创建一个密钥对,指定算法为rsa,邮箱为指定邮箱,然后一直敲回车就行 [root@imzcy ~]# ssh-keygen -t rsa -C "zhangsan@imzcy.cn" #2.3、生成的密钥对默认放到家目录下的.ssh文件夹中,查看id_rsa.pub公钥文件,等下要复制到giblab上 [root@imzcy ~]# cat ~/.ssh/id_rsa.pub |
3、设置管理员密码并创建一个普通用户创建一个测试项目用来测试ssh连接
3.1、使用浏览器访问gitlab地址,刚安装好gitlab第一次登陆会让更改管理员的密码,默认管理用户是root
3.2、修改完密码,先不要使用root用户登录,注册一个普通用户张三
3.3、注册好登录进去后,点击New Project新建一个项目
3.4、设置好项目名称,然后点击创建
3.5、接下来在创建好的zcy-test项目里,点击下拉倒三角,然后点击New file新建一个测试文件
3.6、然后设置文件名称,随便编写一些内容,然后鼠标向下滚动,找到Commit Changer提交更改
3.7、可以看到我们创建好的20180604-test.txt文件,然后在项目名称下面点击倒三角,切换连接方式为ssh
3.8、点击右上角账号设置
3.9、点击SSH Keys,复制2中创建好的id_rsa.pub公钥文件内容到文本框,然后点击Add key
4、linux客户端使用ssh key下载测试项目到本地
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
#4.1、先创建一个本地文件夹,用来存放项目 [root@imzcy ~]# mkdir project [root@imzcy ~]# cd project/ #4.2、使用git clone命令把gitlab上的项目拉取下来(第一次会有一无法确认真实性的提示,输入yes继续) [root@imzcy project]# git clone git@192.168.0.126:zhangsan/zcy-test.git Cloning into 'zcy-test'... The authenticity of host '192.168.0.126 (192.168.0.126)' can't be established. ECDSA key fingerprint is b7:59:cc:bd:5e:c9:9d:0b:d2:09:b5:ac:fa:f9:dd:1d. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.0.126' (ECDSA) to the list of known hosts. remote: Counting objects: 3, done. remote: Total 3 (delta 0), reused 0 (delta 0) Receiving objects: 100% (3/3), done. #4.3、这时候我们看到刚才gitlab上创建的测试项目已经拉取下来了 [root@imzcy project]# ls zcy-test [root@imzcy project]# cd zcy-test/ [root@imzcy zcy-test]# ls 20180604-test.txt [root@imzcy zcy-test]# |
5、接下来我们测试上传一个文件到gitlab
5.1、因为gitlb默认对master分支有保护,所以要先解除保护才能向master分支提交内容,我们先回到zcy-test项目,然后点击左侧Settings-->Repository
5.2、然后在Protected Branches那一栏后面点击Expand
5.3、然后鼠标乡下滚动点击Unprotect解除保护
5.4、然后回到linux客户端,新建一个文件测试上传
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
#5.4.1、创建一个用于push的文件 [root@imzcy zcy-test]# touch imzcy.txt #5.4.2、使用git push一个创建的文件,发现并没有让输入密码,直接就使用ssh提交上去了。 [root@imzcy zcy-test]# git config --global user.name "zhangsan" [root@imzcy zcy-test]# git config --global user.email "zhangsan@imzcy.cn" [root@imzcy zcy-test]# git init Reinitialized existing Git repository in /root/project/zcy-test/.git/ [root@imzcy zcy-test]# git remote add zcy-test git@192.168.0.126:zhangsan/zcy-test.git [root@imzcy zcy-test]# git add imzcy.txt [root@imzcy zcy-test]# git commit -m "add imzcy.txt" [master dc754e0] add imzcy.txt 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 imzcy.txt [root@imzcy zcy-test]# git push zcy-test master Counting objects: 3, done. Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 274 bytes | 274.00 KiB/s, done. Total 3 (delta 0), reused 0 (delta 0) To 192.168.0.126:zhangsan/zcy-test.git a4adbc5..dc754e0 master -> master [root@imzcy zcy-test]# |