搭建Gitlab私有仓库
1. gitlab部署
1.1 部署环境
创建gitlab
我们采用docker镜像的方式来创建一个gitlab仓库
mkdir /data/gitlab/{config,logs,data} -p
docker image load < gitlab-12-3-1.tar.gz
docker run -d --hostname gitlab --restart=always -p 7080:80 -p 2222:22 -p 8443:443 --name gitlab -v /data/gitlab/config:/etc/gitlab -v /data/gitlab/logs:/var/log/gitlab -v /data/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:latest
注:gitlab-ce 镜像要求主机的内存大于2G,所以我们需要提前调整虚拟机容量;由于该镜像涉及的内容比较多,我们需要等待数分钟(3min)然后再来访问gitlab首页
gitlab基础配配置:
# vi /data/gitlab/config/gitlab.rb
external_url 'http://192.168.19.131'
gitlab_rails['gitlab_ssh_host'] = '192.168.19.131'
gitlab_rails['time_zone'] = 'Asia/Shanghai'
gitlab_rails['gitlab_shell_ssh_port'] = 22
重启gitlab:
docker restart gitlab
配置gitlab
浏览器访问gitlab:http://<gitlab私有仓库的ip>:7080
注:首次登陆,需要设置我们的密码,并同时创建一个账号,我们这里的密码为123456abc
点击 “Change your password”,然后进入登陆界面,输入用户名root,密码就是我们刚才输入的:
配置项目
点击 “Create a Project”,按照指示,输入项目名称"meiduo"后,选择项目类型"private":
点击最下面的"Create Project",效果如下:
1.2 关联仓库
根据提示,接下来配置ssh认证,点击黄色字体的"add an SSH key",将jenkins服务器里面的python账户下的 ~/.ssh/id_rsa.pub 文件里面的信息输入到SSH key界面里面,配置完毕后,点击"Add key",效果如下:
1.3 提交项目
点击gitlab的头像,进入到project的首页:
点击meiduo仓库名称,进入到仓库内容,下拉到最下面,会有仓库的一些基本操作命令,效果如下:
根据提示,我们将现有的文件内容提交到gitlab仓库里面,由于我们的gitlab是基于docker镜像的方式在内网主机来设置的,所以我们需要将gitlab默认提供的命令进行变通一下
因为gitlab镜像运行在192.168.8.152主机,而且映射的端口是2222,所以我们在192.168.203.152主机连接的时候,需要将该仓库地址修改为:git clone ssh://git@192.168.203.152:2222/root/meiduo.git
那么接下来在我们把本地代码上传到gitlab中;
cd <本地工程>
git init
git remote add origin ssh://git@192.168.203.152:2222/root/meiduo.git
git add .
git commit -m 'init'
git push -u origin --all
执行完毕后,在gitlab界面上查看项目效果:
2. 集成配置
2.1 插件配置
到插件管理界面,安装"GitLab Plugin":
同样的方式来安装gitlab的其他几个相关插件:Gitlab Authentication、Gitlab API、Build Authorization Token Root、Build Token Trigger等
2.2 认证配置
虽然我们可以借助于之前的两种认证方式来实现gitlab的正常构建任务,但是对于gitlab环境来说,jenkins提供了一个专门的认证方式"Gitlab API Token",接下来我们就完成以下这种专用的认证机制
生成API token:
登录Gitlab界面,点击右上角"图标",找到"Settings"选项,然后点击,效果如下:
点击左侧边栏的"Access Tokens",依次输入名称-jenkins,过期时间-选定,作用范围-api,效果如下:
选定完毕后,点击最下面的"Create personal access token",就会生成专用的gitlab访问的API token值:
可以看到,gitlab就会生成一个专用的token值"5qyixs-oDbuLQpxAK1D4",接下来我们就可以来定制jenkins认证了;
jenkins认证账号
进入到凭证界面:
点击"Add Credentials",在kind栏选择"Gitlab API token"一项,然后将我们刚才拷贝的token信息,输入到"API token"后面的输入框,随便输入一个id即可,效果如下:
点击"OK"后jenkins对gitlab的认证账号创建完毕了:
jenkins整合gitlab
点击jenkins的"Configure System",进入到jenkins的全局配置界面,找到"Gitlab",效果如下:
按照如下规格输入信息:
connection name:jenkins,即我们在gitlab生成API token时候,用到的用户名
Gitlab host URL:http://192.168.19.131:7080,即Gitlab的web界面登录地址
Jenkins Credentials:选择我们刚才创建的Gitlab API token账号即可
输入完毕后,点击右下角的"Test Connection",最终效果如下:
然后依次点击全局配置页面底下的"apply"和"save"即可。