但安装好GitLab之后面临一个问题,如何将服务器上的git项目直接导入到GitLab,之前的Git服务器是由是git+apache搭建的(详见在Linux上用Apache搭建Git服务器)。
在网上发现了这篇文档——Import bare repositories into your GitLab instance,并按之进行了 *** 作。
1)设置存放代码库的主目录
vi /etc/gitlab/gitlab.rb
比如这里设置为:git_data_dir "/gitlab/repos"
2)访问刚搭建的GitLab站点,创建一个group,比如cnblogs。
这时会在 /gitlab/repos 下创建 /gitlab/repos/repositories/cnblogs 文件夹。
然后在/gitlab/repos/repositories/创建一个文件夹,比如cnblogs
3)将现有的所有git项目文件复制到这个文件夹
cp -r /data/git/* /gitlab/repos/repositories/cnblogs
4)修改一下复制过来的文件夹的所有者:
chown -R git:git /gitlab/repos/repositories/cnblogs
5)运行GitLab导入命令
cd /var/opt/gitlab
gitlab-rake gitlab:import:repos
等了一段时间之后,显示done,却一个项目也没导入进来。
经研究发现,在导入时,GitLab只认文件夹名以.git结尾的项目。于是,将要导入的项目文件夹名称加上.git后缀,再次进行导入。
结果显示导入成功,比如:
Processing cnblogs/CNBlogsJob.git
* Created CNBlogsJob (cnblogs/CNBlogsJob.git)
Done!
可以是GitLab站点上却看不到已导入的项目。多次努力,也没能解决这个问题。
后来,实在没办法,改为手动导入,导入方法如下:
1)在GitLab站点上创建与要导入的项目同名的项目。
2)进入刚创建的项目文件夹
cd /gitlab/repos/repositories/cnblogs/项目名称.git
3)删除该文件下的所有文件
rm -rf *
4)将要导入的项目文件夹下的所有文件复制过来
cp -r /data/git/CNBlogsJob/* /gitlab/repos/repositories/cnblogs/CNBlogsJob.git
就这样将项目一个一个地导入进来。
5)导入完成后,修改一下导入的所有项目的文件所有者
chown -R git:git /gitlab/repos/repositories/cnblogs
如果不修改所有者,客户端无法进行git push。
就这样手动地完成了现有Git项目的导入。
备注: *** 作系统是CentOS 6.2,GitLab版本是7.8.4。
github帐号添加SSH keys1
生成 ssh keys
1、任意目录下右击鼠标选择Git Bash Here或者win+r输入cmd回车打开终端;
2、在改终端下输入命令:
ssh-keygen -t rsa -C "youname@example.com"
这时可以一路回车,不输入任何字符,将会在C:\Users\Administrator\.ssh下自动生成id_rsa和id_rsa.pub文件。
注意:双引号换成自己的邮箱,如果linux下遇到权限问题,只需在前面加上sudo
2
github添加SSH keys
将id_rsa.pub里面的内容复制下来,在github上的settings里面找到add keys,将其粘贴到key即可,title唯一即可随便填,建议写有意义的
具体过程如图:
3
测试
在控制台上测试一下,输入:
ssh -T git@github.com
只要看到最后一行Hi chenlianjiang! You've successfully authenticated, but GitHub does not provide shell access,说明验证成功了
END
gitlib帐号添加SSH keys
生成 ssh keys
这时候在生成ssh key时候要注意了这时一路回车,不输入任何字符在绑定gitlibng的ssh key时,会发现将github的ssh key覆盖了;不要着急,下面跟着我一起 *** 作。
打开终端,终端下输入命令:
ssh-keygen -t rsa -C "youname@example.com"
这时,给这个文件起一个名字, 比如叫C:\Users\Administrator\.ssh\ id_rsa_gitlib, 所以相应的也会生成一个 id_rsa_gitlib.pub 文件。
注意这里如果只输入文件名会在终端的当前目录下生成,拷贝到对应位置即可;
添加私钥
终端输入一下命令:
$ ssh-add ~/.ssh/id_rsa
$ ssh-add ~/.ssh/id_rsa_gitlib
ssh-add命令是把专用密钥添加到ssh-agent的高速缓存中。该命令位置在/usr/bin/ssh-add
如果出现Could not open a connection to your authentication agent.错误提示先执行$ ssh-agent.exe bash,然后执行上面命令;
-D:删除ssh-agent中的所有密钥.
-d:从ssh-agent中的删除密钥
-e pkcs11:删除PKCS#11共享库pkcs1提供的钥匙。
-s pkcs11:添加PKCS#11共享库pkcs1提供的钥匙。
-L:显示ssh-agent中的公钥
-l:显示ssh-agent中的密钥
-t life:对加载的密钥设置超时时间,超时ssh-agent将自动卸载密钥
-X:对ssh-agent进行解锁
-x:对ssh-agent进行加锁
添加配置文件
在~/.ssh/目录下新建config文件,并添加如图所示内容:
gitlib添加SSH keys
将id_rsa_gitlib.pub里面的内容复制下来,在gitlib上的账户里面找到所示SSH keys,将其粘贴到key内容即可,Title唯一即可随便填,,点击添加需要输入登录密码;
具体过程如图:
测试
在控制台上测试一下,输入:
ssh -T git@域名
只要看到最后一行Welcome to GitLab, chenlj!,说明验证成功了
在linux上玩过kvm的朋友基本都晓得,在宿主机上运行了虚拟主机以后,我们无法直接看到某一个虚拟主机IP地址。比如:[root@21yunwei /]$virsh list --all
Id名称 状态
----------------------------------------------------
3 geoip running
4 tomcat running
5 jenkinsrunning
18gitlab running
19win7 running
如果我们想知道gitlab这个虚拟机的IP地址,那么是无法直接看到的。这里就需要一个小方法做排查,很简单的,就两步骤:
1,编辑虚拟主机配置文件。
[root@21yunwei /]$virsh edit gitlab
进去以后直接查找mac 可以定位到如下地址信息,记录下mac后退出:
<mac address='52:54:00:FA:61:75'/>
2,通过arp -a判定虚拟机器IP地址。
[root@21yunwei /]$arp -a | grep -i 52:54:00:FA:61:75
? (192.168.1.101) at 52:54:00:fa:61:75 [ether] on br1
注意这里一定要加上-i 忽略大小写。不然因为大小写问题有可能查不到。
说明:这里只根据通信缓存记录的mac 、IP地址手段做排查。也有可能找不到。最好的办法是自己写一个脚本跟网段内的所有服务器都ping一次,记录下mac、ip地址以后再查找就没问题。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)