gitlab相关

配置gitlab服务器

使用的是ubuntu系统

第一步:安装依赖

执行命令:

1
sudo apt-get install curl openssh-server ca-certificates postfix

即安装curl,openssh-server,ca-certificates和postfix

curl是是一个利用URL语法在命令行下工作的文件传输工具,在很多地方都可以见到它的身影

openssh-server可以让远程主机可以通过网络访问sshd服务,开始一个安全shell

ca-certificates是在linux下管理ca证书的工具

实际上很多ubuntu系统中已经预装了前三项,只需要重点关注一下postfix就可以

postfix是邮件服务器,安装postfix时,还需要配置一下相关选项。邮件配置时,选择Internet选项

邮件名随便起一个就可以

配置成功,进入下一步

第二步:安装gitlab

官方教程:

https://about.gitlab.com/install/#ubuntu

1
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash

然后

1
sudo apt-get install gitlab-ee

直接装好了

第三步:修改配置文件

修改external_url为本机的ip地址或者域名:

1
sudo vim /etc/gitlab/gitlab.rb

启动:

1
sudo gitlab-ctl reconfigure

这一步会遇到各种各样的问题,见招拆招,心态要平稳

遇到了再说

通过命令;

1
sudo gitlab-ctl status

检查gitlab的启动状态

登录并配置

用浏览器打开刚刚配置时修改的域名,会出现登录界面,第一次登录的用户名是root,密码在服务器的/etc/gitlab/initial_root_password文件中

登录之后,可以创建一些用户和项目等

我们创建一个用户,并使用该用户的身份建立一个项目

在项目的右边可以看到clone按钮,点开有链接,和github等一些工具是一样的

添加自己的sshkey

默认会在~目录的.ssh文件夹中,windows可能会在C盘里与当前用户同名的文件夹下的.ssh中

如果没有,使用命令:

1
ssh-keygen -t rsa -C “某个注释”

来生成一对密钥

“”里面的东西主要是用来区分密钥的,很多人的习惯是设置成邮箱

这条命令会生成.ssh文件,默认在家目录下即~目录,.ssh文件夹内部至少会有两个文件,id_rsa是私钥,id_rsa.pub是公钥

在gitlab的网页里面,点右上角自己的头像,settings,左边ssh keys,我们把公钥里面的所有内容复制粘贴到这里,点add key

上传代码

1
git remote add origin 地址

地址是在gitlab项目里面clone按钮内

在本地用git add或者git commit等命令把相关的内容提交后,执行:

1
git push -u 远程仓库名 本地仓库名:分支名

添加runner

下载gitlab-ci-multi-runner

执行命令:

1
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.deb.sh | sudo bash

然后执行:

1
2
sudo apt-get update
sudo apt-get install gitlab-ci-multi-runner

注册runner

执行:

1
gitlab-ci-multi-runner register

会出现一些配置项

第一个是URL和token,打开gitlab,从网页,要绑定runner的project的setting中找到CI/CD选项,点开Runner的expand,找到下图:

之后复制URL,token

然后是descrption,随便写,tags也可以随便写,之后可以改

最后选择执行器,简单起见选shell

做完这些,从runner设置里面应该有了runner

启动runner

runner还无法启动,执行命令:

1
gitlab-ci-multi-runner verify

执行完,runner前面的标志已经变为绿色,表示可以运行

写.gitlab-ci.yml

语法https://www.cnblogs.com/sanduzxcvbnm/p/13891757.html

可以理解为这个文件中存放着让runner执行的命令,runner通过这个文件来确定做什么

样例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
before_script:
- echo "before-script!!"

stages:
- build
- test
- deploy

job1:
stage: build
script:
- echo "hello build"

job2:
stage: test
script:
- echo "hello test"

job3:
before_script:
- echo "before-script in job"
stage: deploy
script:
- echo "mvn clean "
- echo "mvn install"
after_script:
- echo "after script in job"

after_script:
- echo "after-script"

在项目中写完之后,push到服务器上

开启服务

执行

1
gitlab-ci-multi-runner start runner的名字