gitlab 增加组 gitlab怎么新建项目_git


一:首先安装docker:


admin:Docker详细安装教程zhuanlan.zhihu.com



二:其次安装gitlab:


admin:自己架构gitlab教程zhuanlan.zhihu.com



三:安装jenkins:


admin:jenkins详细安装教程zhuanlan.zhihu.com

gitlab 增加组 gitlab怎么新建项目_字符串_02



四:持续集成测试:

1.新建SSH密匙

a.我这边是把密匙放在jenkins主目录里面的


cd /usr/local/jenkins_home


b.在jinkens_home里面新建一个.ssh文件夹


mkdir .ssh


c.先查看本机有没有安装git,输入git命令,返回-bash: git: command not found,就需要安装。用yum来安装:


sudo yum install -y git


d.安装完运行,输入git --version,出现以下返回代表安装成功:


git --version
git version 1.8.3.1


e.配置git,分别执行以下代码,注意名字和邮箱改成自己的。


$ git config --global user.name "Your Name"

$ git config --global user.email "email@example.com"


f.接下来输入以下口令,生成密匙:


ssh-keygen -t rsa -b 4096 -C "your_email@example.com"


回车后,输入密匙存放目录/usr/local/jenkins_home/.ssh/id_rsa

然后输入密码部分,我们不输入,直接回车,回车

出现以下画面即代表成功:


Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): /usr/local/jenkins_home/.ssh/id_rsa 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /usr/local/jenkins_home/.ssh/id_rsa.
Your public key has been saved in /usr/local/jenkins_home/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:/2eGscYusCecc28ktLQdnL695AwcuLK7O+VxI9ucoAU your_
The key's randomart image is:
+---[RSA 4096]----+
|                 |
|                 |
|           . .   |
|        E o.+    |
|        S+.=..   |
|        ..XoB.   |
|       ..Oo%oO.  |
|        Oo*.@==  |
|        =X *+++. |
+----[SHA256]-----+


2.新建gitlab项目

a.到SSH密钥存放的文件夹,查看id_rsa.pub里面的字符串,并复制。


cat /usr/local/jenkins_home/.ssh/id_rsa.pub


b.来到gitlab个人中心,点设置,左边点SSH密钥,右边填入id_rsa.pub里面的字符,然后点添加密钥即可。


gitlab 增加组 gitlab怎么新建项目_gitlab 增加组_03


c.新建一个gitlab项目


gitlab 增加组 gitlab怎么新建项目_gitlab新建项目_04

点第一个create a project

gitlab 增加组 gitlab怎么新建项目_gitlab 增加组_05

然后随便起个名字,点创底部建项目

gitlab 增加组 gitlab怎么新建项目_git_06

如图这样就创建好了

3.创建一个jenkins项目

a. 点新建任务


gitlab 增加组 gitlab怎么新建项目_gitlab 增加组_07


b. 输入一个任务名称,下边选择第一个选项


gitlab 增加组 gitlab怎么新建项目_字符串_08


c. 回到gitlab我们刚刚创建的项目,然后点克隆,复制SSH地址


gitlab 增加组 gitlab怎么新建项目_gitlab新建项目_09


d. 再回到jenkins刚刚创建的项目那边,顶部点源码管理,然后左边点Git,然后Repository URL里面填gitlab的项目SSH链接,此时下边会报错。

无法连接仓库:Command "/usr/bin/git ls-remote -h -- ssh://git@192.168.200.129:13822/root/test001.git HEAD" returned status code 128:
stdout:
stderr: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights and the repository exists.


gitlab 增加组 gitlab怎么新建项目_gitlab 增加组_10


e.来到密钥文件夹,查看私钥,并复制


cat /usr/local/jenkins_home/.ssh/id_rsa


f.点下边的添加,下拉里面的jenkins


gitlab 增加组 gitlab怎么新建项目_git_11


g.类型选择SSH Username with private key,username里面填root,下边

Private Key

Enter directly

a 点选Enter directly,然后点Add,将私钥粘贴进去,然后点添加即可。

gitlab 增加组 gitlab怎么新建项目_安装教程_12


h.然后点左边那个下拉,可以选择我们刚刚创建的私钥,选择后,警告就没了。


gitlab 增加组 gitlab怎么新建项目_字符串_13


i.构建触发器设置,

点Build when a change is pushed to GitLab. GitLab webhook URL: http://192.168.200.129:11005/project/test-jenkins-1

然后点右下角“高级”


gitlab 增加组 gitlab怎么新建项目_安装教程_14


点Generate后,上边的Secret token会生成一串字符串。


gitlab 增加组 gitlab怎么新建项目_安装教程_15


刚刚上边的网址和下边的Secret token,我们后边要用:


gitlab 增加组 gitlab怎么新建项目_安装教程_16


j.来到gitlab,进入到项目,左下角点设置--webhooks。


gitlab 增加组 gitlab怎么新建项目_gitlab 增加组_17


将刚刚在jenkins里面得到的网址和Secret token,分别复制放在URL和Secret token里面

底部SSL verification下边Enable SSL verification勾选去掉,点Add webhook


gitlab 增加组 gitlab怎么新建项目_gitlab 增加组_18


添加完会出现下页面底部:


gitlab 增加组 gitlab怎么新建项目_安装教程_19


k.构建设置,增加构建步骤选择:执行shell


gitlab 增加组 gitlab怎么新建项目_gitlab新建项目_20


输入 echo 'Hello word' 。

然后点保存。


gitlab 增加组 gitlab怎么新建项目_git_21


l:配置完成我们来测试下

来到gitlab项目下边,左边点击设置--webhooks,右边拖到最下边。

点击测试里面的Push events


gitlab 增加组 gitlab怎么新建项目_安装教程_22


此时,我这边报错了~~~~~~~~~~~~~

顶部报这个错误:Hook executed successfully but returned HTTP 500

可能是500错误,也可能是别的错误。别慌,我们来解决下错误

j:解决错误

经过几天的百度,这个是个权限问题,然后各种方法都尝试了,最后终于找到解决方法。

我这边出现的问题是密钥访问权限问题,应该是gitlab访问不了我存放在jenkins_home里面的私钥。

好了,解决问题吧:

首先我们测试下,从gitlab服务器上拉仓库到本地:


#来到jenkins_home目录
cd /usr/local/jenkins_home

#新建一个文件夹
mkdir test-demo

#拉仓库到文件夹
git clone ssh://git@192.168.200.129:13822/root/test001.git

#报以下错误
Cloning into 'test001'...
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.


没错,没有权限。。。
我们输入:


ssh-agent -s


出现类似


SSH_AUTH_SOCK=/tmp/ssh-3jVEHO6R8Y6E/agent.91696; export SSH_AUTH_SOCK;
SSH_AGENT_PID=91697; export SSH_AGENT_PID;
echo Agent pid 91697;


继续输入


eval `ssh-agent -s`


然后再输入口令


ssh-add /usr/local/jenkins_home/.ssh/id_rsa


出现下边即代表成功


Identity added: /usr/local/jenkins_home/.ssh/id_rsa (/usr/local/jenkins_home/.ssh/id_rsa)


再次拉取测试


git clone ssh://git@192.168.200.129:13822/root/test001.git


出现了下边字符则表明成功:


Cloning into 'test-demo001'...
warning: You appear to have cloned an empty repository.


下边我们再测试下推送本地代码到gitlab服务器

下边代码,复制一行一行执行哦,汉字不要复制进去。


#新建一个文本文件
echo 'hell' > test.txt

#初始化一个git仓库
git init

#添加文件到仓库 

git add test.txt

#第一步

git commit -m "first commit"

#添加文件到仓库第二步
git remote add origin ssh://git@192.168.200.129:13822/root/test001.git

#推送仓库到远程

git push -u origin master


当提示下边字符则表示成功


Counting objects: 3, done.
Writing objects: 100% (3/3), 209 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To ssh://git@192.168.200.129:13822/root/test001.git
 * [new branch]      master -> master
Branch master set up to track remote branch master from origin.


至此,权限问题解决了。

k:重新来测试下

来到gitlab项目下边,左边点击设置--webhooks,右边拖到最下边。

点击测试里面的Push events。

当顶部出现:Hook executed successfully: HTTP 200

则表示成功了。


gitlab 增加组 gitlab怎么新建项目_安装教程_23


来到jenkins项目下边,点击左边构建历史下边的,日期有下拉的,点击里面的控制台输出。


gitlab 增加组 gitlab怎么新建项目_git_24


如果你看到下边字符,就成功了。


gitlab 增加组 gitlab怎么新建项目_gitlab 增加组_25



docker+gitlab+jenkins构建持续集成,踩了好多的坑。。。。。

激动的眼泪都快流下来了,今晚加跟鸡腿。