windows 浏览器下输入ubuntu上的gitlab服务器网址不能访问

windows 浏览器下输入ubuntu上的gitlab服务器网址不能访问,第1张

GitLab使用介绍这两天因为项目需求需要搭建一个GitLab服务器,遇到了很多问题,参考了很多网络资料,终于搭建成功,在此把这个过程记录一下,利人利己。最终目的1,在Linux下创建GitLab服务器,客户端能够完成git的clone,pull,commit,push *** 作。2,能够通过浏览器访问服务器上的GitLab主页,登录之后能够实现,创建工程,增加用户等 *** 作。

GitLab是由Ruby语言开发的基于Linux的Git服务器,是我见过的最强大的Git服务器。发现它之后,立即决定将Git服务器换成GitLab。
但安装好GitLab之后面临一个问题,如何将服务器上的git项目直接导入到GitLab,之前的Git服务器是由是git+apache搭建的(详见在Linux上用Apache搭建Git服务器)。
在网上发现了这篇文档——Import bare repositories into your GitLab instance,并按之进行了 *** 作。
1)设置存放代码库的主目录
vi /etc/gitlab/gitlabrb
比如这里设置为: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/CNBlogsJobgit
Created CNBlogsJob (cnblogs/CNBlogsJobgit)
Done!
可以是GitLab站点上却看不到已导入的项目。多次努力,也没能解决这个问题。
后来,实在没办法,改为手动导入,导入方法如下:
1)在GitLab站点上创建与要导入的项目同名的项目。
2)进入刚创建的项目文件夹
cd /gitlab/repos/repositories/cnblogs/项目名称git
3)删除该文件下的所有文件
rm -rf
4)将要导入的项目文件夹下的所有文件复制过来
cp -r /data/git/CNBlogsJob/ /gitlab/repos/repositories/cnblogs/CNBlogsJobgit
就这样将项目一个一个地导入进来。
5)导入完成后,修改一下导入的所有项目的文件所有者
chown -R git:git /gitlab/repos/repositories/cnblogs
如果不修改所有者,客户端无法进行git push。
就这样手动地完成了现有Git项目的导入。
备注: *** 作系统是CentOS 62,GitLab版本是784。

Step1 -安装copSSH
1将copSSH(basic edition 200)安装到路径 c:\SSH
2安装过程中写下SvcCOPSSH的密码,你可能永远不会用到,但写下也无伤大雅。
3启动copSSH,选择 开始->所有程序->copSSH->control panel;然后激活一个用户(假定为Administrator,选择Users->Add,下一步,选择一个用户,不要勾选Allow password authenticatin选项,点击forward,OK。
4其他关于public keys的事情无需 *** 作,后面还会讲到。
Step2-配置copSSH
1选择路径-C:\SSH\etc ,在记事本中打开ssh_config和sshd_config(注意:两个文件有一个字母“d”的区别)
2ssh_config -删除Port前的#号,设置端口号,这里采用默认端口22
3sshd_config -保证端口号一致
4确定系统防火墙中该端口未关闭。(这一点很重要)
5重启系统
Step3-安装Putty
1重启之后,继续回来,现在可以安装Putty Installer了。
2导航至你的安装路径,通常为c:\program files\Putty
3打开PuttyGenexe
4选择生成密钥的长度4096
5在空白面板处不停地晃动鼠标(用于生成随机种子),直到生成结束。(不要关闭PuttyGen)
6来到路径c:\SSH\Home\Administrator\ssh\ (这个路径在你使用copSSH激活用户时会产生,根据你激活的用户名,选择相应的路径),创建文件authorized_keys (注意没有后缀名)
7打开PuttyGen,复制Public Key(公钥)到文件authorized_keys ,并保存
8在PuttyGen中,将Private Key(私钥)保存为private_keyppk,保存在同一目录下。-比如,我的保存目录为c:\SSH\Home\Administrator\ssh\private_keyppk
9现在目录下应该有两个文件了,authorized_keys 和 private_keyppk
10为了测试连接,运行puttyexe
11在打开的界面中输入IP 地址(本机可以为localhost)和端口号
12打开左侧的菜单,选择Connection-SSH-Auth,选择你的私钥文件,c:\SSH\Home\<user>\ssh\private_keyppk
13点击Open,就会打开终端,让你输入Login Name,输入Administrator(注意大小写)
14你会看到显示接受你的公钥(Accept Public Key),客户端登陆成功,登陆信息也会缓存起来。
Step 4-安装 msysgit和TortiseGIT
1安装msysgit的过程中一路下一步即可,假定你的路径为C:\msysgit
2安装TortiseGIT,完成之后
1)在任意路径点右键,选择TortiseGIT-Settings,设置gitexe的路径为c:\msysgit\msysgit\bin,即为msysgit的安装路径
2)在左侧菜单中选择Network,选择SSH Client为putty中的plinkexe(如我的路径为C:\Program Files\PuTTY\plinkexe)
3将几个GIT运行中需要的文件复制到SSH服务器目录,当客户端远程登陆上来以后需要执行这些文件,文件源路径为c:\msysgit\msysgit\Git\libexec\git-core ,要复制的文件包括gitexe, git-receive-packexe, git-upload-archiveexe and git-upload-packexe,将以上文件复制到C:\SSH\Bin
Step5-配置用户环境
1对于copSSH来说,其默认的$HOME环境为c:\Documents and Settings\<user>,GIT也将会在该目录下寻找authorized_keys 文件。当然,这是咱要避免的事儿,我们要将GIT的路径重定向到C:\SSH\Home\<user>\ssh 。
2选择路径C:\SSH\Home\Administrator\,打开bashrc文件,在# User dependent bashrc file下面加上这样一段:export HOME=/c/SSH/home/Administrator Shell Options,(注意不要有其他空格出现),然后选择保存。
3把该文件复制到用户目录下,如: c:\Documents and Settings\Administrator\
Step7-使用GIT和Plink
1打开路径C:\SSH\home\Administrator,创建文件夹myappgit
2 在该文件夹上点右键,选择git create repository here,勾选make it bare,服务器文件仓库创建成功。
3导航至路径c:\Program Files\PuTTY ,打开pageantexe,选择add key,将你的私钥(private_keyppk)加载上。
4然后右键选择 git clone,url设为ssh://administrator@127001:22/SSH/Home/administrator/myappgit ,如果clone成功,恭喜你,大功告成!
关于git的 *** 作详见git的使用说明,这里推荐Pro Git 简体中文版,翻译的很不错。
注:在执行git clone时可能会报错(该错误在所参考的E文中未提及,把俺害得不轻),如果是关于某个dll文件的错(具体是哪个文件记不清了,遇到的朋友可以根据文件名,在msysigt目录下搜索即可找到),可以将该文件同样复制到C:\SSH\Bin下,然后就可以正常运行了。

java项目一般都是团队开发,当多人共同编写一个项目的时候。代码的整合就需要用到专门的源码管理工具了。另外java项目版本的不断更新,也需要版本的管理。所以源码管理与版本控制工具也是每个java程序员必须要熟练掌握的。目前比较流行的java版本控制工具主要有svn、git这两款软件。天通苑北大青鸟认为这两种工具也是每个java程序员必须要熟练掌握的。



SVN

SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。SVN的缺陷是过分依赖网络,不适合分布式开发。

使用svn的工作流程如下:1、早上从从服务器下载项目组最新代码。

2、进入自己的分支,进行工作,每隔一个小时向服务器自己的分支提交一次代码(很多人都有这个习惯。因为有时候自己对代码改来改去,最后又想还原到前一个小时的版本,或者看看前一个小时自己修改了哪些代码,就需要这样做了)。

3、下班时间快到了,把自己的分支合并到服务器主分支上,一天的工作完成,并反映给服务器。

Git

Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。

Git是LinusTorvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。与常用的版本控制工具CVS,Subversion等不同,它采用了分布式版本库的方式,不必服务器端软件支持(ps:这得分是用什么样的服务端,使用>

目前GIT已经可以在windows下使用,主要方法有二:msysgit和Cygwin。Cygwin和Linux使用方法类似,Windows版本的GIT提供了友好的GUI(图形界面),安装后很快可以上手使用。

git一般安装在本地服务器制定的目录下
安装msysgit
安装步骤此处略去。
END
安装CopSSH
安装步骤此处略去。
END
修改配置
修改CopSSH配置文件C:\Program Files\ICW\etc\sshd_config,确保如下行为非注释行,且设置为“no”:
END
生成用户帐号
1
在服务器上生成Windows用户,取消用户下次登录时须更改密码,设置密码永不过期:
2
将该用户隶属于GitUser组(如尚未生成改组,则先生成改组):
END
激活用户
1
在Windows启动程序组中,运行如下程序(C:\Program Files\ICW\bin\ copsshcpexe):
2
进入COPSSH Control Panel应用对话框,正常情况下服务应该为正在运行(图标为绿色,如为红色,则可尝试点选该按钮,启动该服务):
3
选择Users页面:
4
点选Add按钮,出现如下导航对话框:
5
选择Forward按钮,出现如下页面,选择欲激活的用户对应的域名及用户名:
6
选择Forward按钮,进入如下页面,选择Linux shell and Sftp,所有选项选中:
7
选择Forward按钮,进入确认页面,选择Apply:
8
回到如下页面,选择Apply后,关闭。
END
公钥文件上传
1
从用户处取得对应帐户的公钥文件authorized_keys,复制到C:\Program Files\ICW\home\ricky\ssh目录下(\ricky\是对应的用户名);
2
Windows启动程序组中运行Start a Unix BASH Shell(或Windows运行中运行命令:"C:\Program Files\ICW\bin\bashexe" --login -i):
3
运行如下unix命令行,如运行未出错,则完毕。
END
生成Git库容器目录
1
在服务器硬盘上生成一个目录,用来容纳Git库,比如生成E:\ GITTestRepo\目录;
2
鼠标右键点击该目录,选择共享和安全…;
3
在d出的该目录属性对话框的安全页中加入用户对应的组GitUser;
4
确认该用户组权限设置了允许修改、读取和运行、列入文件夹目录、读取、写入,选择确定后完毕。
END
确认防火墙开放了22端口
确认服务器的防火墙没有禁止22端口的TCP/IP通信。
END
修改用户登录运行脚本
1
修改C:\Program Files\ICW\home\ricky\bashrc文件(\ricky\是对应的用户名),在文件最后加入如下行:

扩展参考:Jenkins+Gitlab通过脚本自动部署回滚web项目至集群

1):Gitlab服务器:ubuntu 192168152131 ---参考搭建:Linux安装gitlab,docker安装gitlab教程

2):Jenkins服务器:ubunu 192168152130 ---参考搭建:linux安装Jenkins,或docker安装Jenkins教程

在服务器上生成ssh-keygen,用于配置web服务器和Gitlab服务器。

3):web服务器:centos 192168152150 ---已搭建好LNMP环境

4):开发者电脑:Windows+key密钥 (用于提交代码)

1:在gitlab创建项目Test Project

21): 配置一个开发者电脑的ssh公钥到gitlab

配置一个开发者电脑的ssh公钥到gitlab,这样才能模拟开发上传代码到gitlab。

windows生成key过程及git安装,可参考:Windows下git和github的使用图文详细教程_the丶only的博客-CSDN博客_github win

在windows测试clone,和提交代码。


注:最新版git 已经将默认分支master改为main了。所以看到main,而不是master不要太奇怪

测试成功,在gitlab也显示有indexhtml文件。

22): 配置jenkins公钥到gitlab

同理,同样需要jenkins公钥,因为jenkins也需要拉去gitlab的代码。

jenkins服务器 上查看公钥并复制添加到gitlab,并命名为jekins。

1:插件管理,安装插件

jenkins本身没什么功能,主要是依靠插件来实现各种强大的功能。

基本需要添加的插件:Gitlab Hook、Build Authorization Token Root、Publish Over SSH、Gitlab Authentication、Gitlab、Git Parameter

可以在 Manage Jenkins >> Manage Plugins 查看管理插件。在Available 选项搜索安装插件即可。

安装完成后,重启Jenkins。

2:添加需要部署的web主机

在 Manage Jenkins >> Configure System 中往下翻,找到 Publish over SSH 选项,点击add ssh server。

在Jenkins服务器上,查看私钥,注,是私钥,不是公钥。

将私钥填写在key位置,还有添加web服务器相关信息。

注:如果测试报错如下

Failed to connect or change directory
jenkinspluginspublish_overBapPublisherException: Failed to add SSH key Message [invalid privatekey: [B@2e54414f]

是因为默认用ssh-keygen命令,默认生成了OPENSSH 格式密钥。而Jenkins暂时不支持这种私钥,私钥开头结尾如下:

所以,需要生成rsa密钥格式的。用开头说的ssh-keygen加其他参数生成即可。

私钥开头结尾如下:

再次测试,显示success,则成功。然后点击save保存即可。

3:构建任务项目

首页创建任务或者一个项目

命名为web-project,选择为freestyle project 自由项目。然后ok确认。

31):源码管理 Source Code Management

选择源码管理,添加gitlab的项目clone地址。

注:最后路径选择分支,我gitlab主分支名字为main,如果是master,则写master,或者合并的其他分支。

在add添加用户

添加完成后,选择git用户,这时没有红色提醒,说明已成功连接

32):构建触发器 Build Triggers

现在Build Triggers,勾选build when,其他默认,并记下链接 >

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10262353.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存