配置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 | sudo apt-get update |
注册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 | before_script: |
在项目中写完之后,push到服务器上
开启服务
执行
1 | gitlab-ci-multi-runner start runner的名字 |