公司无网环境如何配置gitlab
① gitlab 在内网服务器,怎么使用
ubuntu 13/pub/ruby/1/gitlabhq/gitlab-shell/',本地局域网安装的话默认localhost就行/gitlabhq/gitlabhq.git gitlab# 进入 gitlab 目录cd /home/git/gitlab# 切换到 gitlab 的 5.3 分支.sudo -u git -H git checkout 5-3-stablecd /home/git/gitlab# 复制 gitlab 的示例配置文件到指定目录sudo -u git -H cp config/gitlab.yml.example config/gitlab.yml# 如果用的不是本地服务器,更改 localhost 为 gitlab 的服务器域名sudo -u git -H gedit config/gitlab.yml# 确保当前用户对 gitlab 的 log 和 tmp 文件有读写权限.sudo chown -R git log/sudo chown -R git tmp/sudo chmod -R u+rwX log/sudo chmod -R u+rwX tmp/# 创建一个我不认识的目录...汗!sudo -u git -H mkdir /home/git/gitlab-satellites# 再创建两个我不认识的目录...并且确保 当前用户对他有读写权限.sudo -u git -H mkdir tmp/pids/sudo -u git -H mkdir tmp/sockets/sudo chmod -R u+rwX tmp/pids/sudo chmod -R u+rwX tmp/sockets/# 创建公共的上传备份目录,并确保当前用户对其有读写权限.否则备份会失败.sudo -u git -H mkdir public/uploadssudo chmod -R u+rwX public/uploads# 复制示例配置文件到制定目录sudo -u git -H cp config/puma.rb.example config/puma.rb# 找到其中有一行 # workers 2,去掉前面的 # 并将 2 改为 3.sudo -u git -H gedit config/puma.rb# 配置 gitlab 的全局设置.sudo -u git -H git config --global user.name GitLabsudo -u git -H git config --global user.email gitlab@localhost# 复制示例Mysql配置文件到指定目录sudo -u git cp config/database.yml.mysql config/database.yml# 修改里面的 root 为 gitlab, 密码为创建的 gitlab mysql 用户密码sudo gedit config/database.yml# 安装一个我不认识的东西...我没脸翻译了...大哥你还是看原版教程吧cd /home/git/gitlabsudo gem install charlock_holmes --version '0.6.9.4'sudo -u git -H bundle install --deployment --without development test postgressudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=proction# 下载 gitlab 的 开始/停止 脚本,并且加入当前用户的可执行权限.sudo cp lib/support/init.d/gitlab /etc/init.d/gitlabsudo chmod +x /etc/init.d/gitlab# 添加 gitlab 的开机启动sudo update-rc.d gitlab defaults 21# 检查 gitlab 的状态和环境配置是否正确.sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=proction# 启动 gitlabsudo service gitlab start# 或者sudo /etc/init.d/gitlab restart# 再次检查 gitlab 的状态,如果全部绿色,说明 gitlab 配置成功.不知道为什么,我要运行这个命令两次才会全绿sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=proction七. 配置 Nginx# 软件源安装Nginxsudo apt-get install nginx# 复制 gitlab 的示例配置到指定目录sudo cp lib/support/nginx/gitlab /etc/nginx/sites-available/gitlabsudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/gitlab# 修改配置文件.更改其中的 YOUR_SERVER_FQDN 为你的 gitlab 服务器全称域名或者本机IP地址,修改 listen 为 *:80sudo gedit /etc/nginx/sites-available/gitlab# 重启 nginx 服务器sudo service nginx restart# 打开浏览器输入本机 IP,用下面的用户密码登录既可[email protected]!fe
② 如何在git-CentOS7下安装GitLab
首先利用如下图所示的命令打开HTTP与SSH访问。
步骤二:添加GitLab软件包服务器并安装软件包
然后新建 /etc/yum.repos.d/gitlab-ce.repo,
并且,对代码进行运行
③ 怎么配置sourcetree和gitlab
第一个是在windows的环境下安装,第二个是在windows或者lunix环境中安装的。两者都可以。安装好git客户端后,我们会发现它有Git
GUI和Git Bash及Git CMD这三种,我简单的说一下Git
GUI是一个图形工具相当于一个专门管理你代码或者修改代码,具体直观的能看见的这个工具,只不过是英文版的和SourceTree的作用类似,但是好用一些。而Git
Bash就是利用Git的命令去一步一步的提交项目到你的github中,我开始就是用的命令去提交代码,遗憾的是提交失败很崩溃,并且命令也有几条记不住,不用怕我们可以用SourceTree界面去提交项目,不再担心那所谓的Git命令了。
④ 小公司搭建gitlab,应该选择哪一种阿里云服务器
只跑gitlab一个应用的话至少保证双核4G以上的配置。如果还想跑一跑别的应用的话,那么4核8G以上开始考虑吧。
⑤ 如何用gitlab 做配置管理
进入JENKINS_HOME目录,找到config.xml文件,找到了和节点。节点代表是否使用用户权限,节点代表用户权限是怎么划分的。
下面提供2种方法:
1、恢复默认设置
直接删除和节点
2、配置管理员权限
这种方法适用于已经存在一堆的权限,重新配置麻烦。
在节点中添加内容如下:
hudson.model.Hudson.Administer:anonymous
hudson.model.Hudson.ConfigureUpdateCenter:anonymous
hudson.model.Hudson.Read:anonymous
hudson.model.Hudson.RunScripts:anonymous
hudson.model.Hudson.UploadPlugins:anonymous
⑥ Gitlab配置的时候可以不绑定域名吗
可以的。
1.在gitlab的配置gitlab.yml中,host为你本机的ip
2.在gitlab-shell的配置config.yml中,gitlab_url:“http://yourip”
3.建议绑定一个,不然不清楚有没有配置成功。不绑定的话也可以修改host为ip地址,可以是你的本地ip。
⑦ 关于gitlab权限问题
公司切入Gitlab来管理代码已经有一年多了,其中遇到很多权限问题,如没有权限clone、没有权限提交代码等等,这里做个总结. 权限分为访问权限和行为权限两个层次.
访问权限 - Visibility Level
这个是在建立项目时就需要选定的,主要用于决定哪些人可以访问此项目,包含3种
Private - 私有,只有属于该项目成员才有原先查看
Internal - 内部,用个Gitlab账号的人都可以clone
Public - 公开,任何人可以clone
行为权限
在满足行为权限之前,必须具备访问权限(如果没有访问权限,那就无所谓行为权限了),行为权限是指对该项目进行某些操作,比如提交、创建问题、创建新分支、删除分支、创建标签、删除标签等.
角色
Gitlab定义了以下几个角色:
Guest - 访客
Reporter - 报告者; 可以理解为测试员、产品经理等,一般负责提交issue等
Developer - 开发者; 负责开发
Master - 主人; 一般是组长,负责对Master分支进行维护
Owner - 拥有者; 一般是项目经理
权限
不同角色,拥有不同权限,下面列出Gitlab各角色权限
1. 工程权限
行为 Guest Reporter Developer Master Owner
创建issue ✓ ✓ ✓ ✓ ✓
留言评论 ✓ ✓ ✓ ✓ ✓
更新代码 ✓ ✓ ✓ ✓
下载工程 ✓ ✓ ✓ ✓
创建代码片段 ✓ ✓ ✓ ✓
创建合并请求 ✓ ✓ ✓
创建新分支 ✓ ✓ ✓
提交代码到非保护分支 ✓ ✓ ✓
强制提交到非保护分支 ✓ ✓ ✓
移除非保护分支 ✓ ✓ ✓
添加tag ✓ ✓ ✓
创建wiki ✓ ✓ ✓
管理issue处理者 ✓ ✓ ✓
管理labels ✓ ✓ ✓
创建里程碑 ✓ ✓
添加项目成员 ✓ ✓
提交保护分支 ✓ ✓
使能分支保护 ✓ ✓
修改/移除tag ✓ ✓
编辑工程 ✓ ✓
添加deploy keys ✓ ✓
配置hooks ✓ ✓
切换visibility level ✓
切换工程namespac
⑧ 有哪位同学成功配置好Gitlab的么
#gitlab基于ruby开发模仿Github的版本控制软件,因为是开源的,,但是我们确实有这样的需求,相比Gtihub来说可以减少很多成本.#从安装ruby、git、数据库、web、和gitlab到访问,一定要有耐心.#安装libyaml(防止后期报错,可不装)#安装Mysql数据库.略过,以及数据库操作#bundle使用淘宝源,并且安装(时间长.)#初始化在数据库里添加数据,最后后会出现:#安装nginx,(编译安装和rpm都能实现)#####以下是报错环节,没怎么整理很乱###################
⑨ macosx下,搭建gitlab的配置问题,请大牛们帮忙看看什么问题
方案一基于SSH直接搭建Git支持的协议主要是四种:本地:需要文件共享系统,权限不好控制HTTP:速度慢SSH:同时支持读写操作,不支持匿名的读取(Git默认协议)GIT:最快从搭建的难易程度和特点综合筛选,最合适的还是ssh,并且大部分服务器上基本都有ssh服务,所以省去了不少麻烦。一个最基本的思路是给每一个人一个ssh帐号,这样大家就可以通过用户名和口令来访问了,但是显然这不是一个好的选择,这个做法有些多余,并且对于repo的权限很难管理。在使用Github的时候,会利用rsa.pub公钥/私钥的方式,这样在服务端拥有用户的公钥(*.pub)之后就可以,跨过繁琐的口令,直接认证提交了,而服务端也会根据不同的用户身份,对其权限有着更加灵活的管理。因此也采用这种方式。服务端为了使远程库访问更加直观,先在服务器上创建一个名为git的账户,这样以后clone的时候就如下面的格式了:gitclonegit@server:some.git创建新的用户,创建repo等目录$sudoadsergit$sugit$cd~$mkdirrepos在HOME下的.ssh目录,如果没有则创建,创建一个authorized_keys文件,这个文件就是用来管理所有git用户的公钥的,也就是这里面的用户对于项目有着R+W的权限。客户端对于每一个客户端,需要生成一对密钥和公钥,如果是Github用户,那么.ssh目录下,一定有id_rsa.pub和id_rsa两个文件,其中第一个是系统生成的公钥,另一个是自己要保存好的密钥。如果没有的话,可以在终端执行:ssh-keygen来生成,完成后,将自己的公钥提交给管理员,这就是一个注册的行为。完成最后一步,管理员将团队成员的公钥添加到authorized_keys中,比如将同学susie加入:$catsusie.pub>>authorized_keys至此,大家可以通过git@server:repos/some.git来访问公共的版本库了。问题安全问题,成员可以登录git用户的shell,细节权限如分支等不好控制管理麻烦,新建repo,或者增加成员比较麻烦,尤其是修改的时候方案二使用Gitolite服务Gitolite也是基于SSH协议构建的方便管理gitrepo的应用,可以通过其源码安装.安装安装按照官方给定的文档就可以轻易的实现:$gitclonegit://github.com/sitaramc/gitolite$mkdir-p$HOME/bin$gitolite/install-to$HOME/bin$gitolitesetup-pkYourName.pub如果执行最后一条命令的时候,gitolite不识别,则可以通过下面两种方式解决:将gitolite添加到PATH里面通过$HOME/bin/gitolitesetup-pkYourName.pub执行至此,gitolite在服务端,搭建完毕,会发现此时HOME目录下增加了一个文件projects.list和一个目录repositories,后者就是我们的版本仓库了,每当新建repo的时候,就会在其中创建。使用是时候说一下gitolite的管理模式了,他会创建一个gitolite-admin的repo,管理员就是通过像这个repo提交配置文件而实现对git服务器的控制的。首先,将这个repo导入到我们的workspace:在此之前,需要配置本地的ssh,gitolite要求管理员的本地密钥和其注册公钥的名字一致,比如安装的时候指定-pk后面为admin.pub则管理员本地需要由admin对应的私钥。我们可以通过~/.ssh/config来进行配置(注:有些系统可以用conf,MacOSX下无效,只能用config)..comport22identityfile~/.ssh/admin这样,当访问gitolite的时候就会自动根据配置文件执行,配置完成后可以根据下面的命令,将gitolite-admin转移到本地。gitclonegitolite:gitolite-admin.git克隆完成后,可以发现,gitolite-admin下面有两个目录,其中conf保存配置文件,可以通过编辑里面的gitolite.conf文件,管理git服务器,keydir目录保存用户的公钥pub文件。当讲修改后的repo提交的时候,gitolite就会自动的应用这些配置,管理过程就方便了很多。配置规则打开gitolite.conf文件可以看到其中的示例:Toaddnewusersalice,bob,andcarol,'keydir'asalice.pub,bob.pub,andcarol.pubrespectively.Toaddanewrepo'foo',editthefile'conf/gitolite.conf'andaddlineslikethis:repofooRW+=aliceRW=bobR=carol上面的配置文件就是新建了一个repofoo,并且添加了三位项目成员,每一个人的权限不同。提交push后,管理便生效了。可视化可能会需要一个web界面来管理这些项目,目前知道的有三种方式:git源码中自带的组件,cgi脚本实现,使用gitolite服务gitlab开源框架,基于ROR,新版本不再使用gitolite服务FB开源PHP框架phabricator,功能高端上档次
⑩ 怎么配置gitlab 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/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。