1.如何获取webrtc特定版本源码
2.常见的源码Web源码泄漏及其利用
3.Github是什么 介绍Github的定义和功能?
4.私有化代码仓库Gitlab的落地与应用(一)
5.CentOS 6.3下使用Gitosis安装搭建Git Server教程
如何获取webrtc特定版本源码
为了获取WebRTC的特定版本源码,您需要按照以下步骤操作:
1. 安装SVN客户端。源码推荐使用TortoiseSVN,源码可通过其官方网站...
3. 安装Gitlab
4. 配置Gitlab
编辑配置文件:
主要涉及两处改动:
5. 启动Gitlab
6. 访问Gitlab
..1.:
三、源码常见问题及解决
1. 前端页面访问出现
出现可能有以下原因:
通过后台运行日志,源码排查如果是源码锅底画线指标源码因为端口被占用引起的,可以按照上述修改配置文件方法,源码将配置文件中的源码端口号修改即可,修改后需要按照第4步重新加载配置文件、源码重启服务。源码更多配置信息,源码可以在 /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml 中进行查看。源码
四、源码Gitlab配置信息及常用操作命令
1. 常见配置
默认安装的源码gitlab,主要有四个目录:
◆ /opt/gitlab/ # 主目录
◆ /etc/gitlab/ # 放置配置文件
◆ /var/opt/gitlab/ # 各个组件
◆ /var/log/gitlab/ # 放置日志文件
2. 常用命令
◆ gitlab-ctl start # 启动所有 gitlab 组件;
◆ gitlab-ctl stop # 停止所有 gitlab 组件;
◆ gitlab-ctl restart # 重启所有 gitlab 组件;
◆ gitlab-ctl status # 查看服务状态;
◆ vim /etc/gitlab/gitlab.rb # 修改gitlab配置文件;
◆ gitlab-ctl reconfigure # 重新编译gitlab配置;
◆ gitlab-ctl tail # 查看日志;
◆ gitlab-ctl help # 查看相关的源码帮助
五、代码仓库数据迁移
1. 旧服务器数据手动备份
先停掉gitlab,然后执行备份命令
生成的棋牌项目源码下载备份文件会存在/var/opt/backups/目录下,生成的文件名如____.0.6_gitlab_backup.tar,其中.0.6是当前gitlab的版本号,恢复时使用的gitlab必须是同样的版本号,否则没法进行恢复。该文件里面包含了所有user、group、git repository数据。
2. 新服务器上恢复数据
将备份文件复制到新服务器的程序侠5 源码/var/opt/backups/目录下,停掉gitlab的puma、sidekiq两个服务,然后执行恢复操作
特别注意:
六、代码仓库自动备份方式一:使用gitlab配置文件设置自动备份
1. 编辑 /etc/gitlab/gitlab.rb文件,找到以下内容并按照如下配置:
2. 更新配置
方式二:使用Linux系统crondtab服务自动备份
1. 配置定时任务:crontab -e
查看定时任务:crontab -l
0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create 表示每天凌晨两点执行备份命令
设置cron服务开机自启:systemctl enable crond.service
修改后重启cron服务:systemctl restart crond
tips:
2. 自动上传gitlab的备份文件到另一台服务器
1)设置两台服务器免密登录
2)编写自动上传备份文件shell脚本:gitlab-upload.sh,内容如下:
编写完成后要对文件赋予执行权限:chmod +x gitlab-upload.sh
3)设置crondtab定时任务
执行crondtab -e命令,设置为每天凌晨三点执行远程传输备份文件任务,内容如下,微云官网源码
保存后要重载crond服务:systemctl reload crond.service
七、小结
总的来说,Gitlab的搭建过程比一般软件的搭建要繁琐,另外像数据自动备份、数据迁移所用到的Linux技能也较多,可以按需配置和操作。最后,总结一下本次用到的获取网页局部源码Linux技能:
CentOS 6.3下使用Gitosis安装搭建Git Server教程
Git作为一个分布式的版本控制系统,使用git的时候,一般和服务器通讯使用的是ssh协议,用ssh的主要优点是速度快(传输前数据会先压缩,比HTTP快),安全,方便读写。客户端通过ssh访问服务器端的验证方式一般有两种,一种是用户名密码的方式,一种是使用公私钥认证的方式. 使用公私钥的方式比较方便,无需每次登录输入密码。
某个受信任的客户端的公钥会被设置在服务器端的 ~/.ssh/authorized_keys文件中,有关此文件的格式可以参见 sshd的用户手册 man sshd . authorized_keys有个比较厉害的功能是 支持 command参数,使得每次用户使用此公钥进行验证的时候执行此后面的命令.这样就可以做一些逻辑处理了.
一般git库的管理需要权限控制,如何方便简单的进行库的权限管理呢? authorized_keys是一个思路,指定特定command参数,每次验证好用户后首先执行相关逻辑,检测当前用户是否具有某个权限。 所以便有了gitosis,与其说gitosis是一个git权限管理系统,还不如说它是一个authorized_keys文件管理器.
解决方案:
环境部署
操作系统: centos6.3 x
Git: git-1.7.1
Gitosis: Gitosis
Gitweb: 1.7.1-3
OpenSSH Server: openssh-server-5.3p1
apache: .pool.ntp.org
三.安装apache
传送门:/tv/gitosis.git
# cd gitosis
# python setup.py install
3.为gitosis创建系统用户
复制代码
代码如下:
# useradd -m git
# passwd git
4. 运行gitosis
(1).将管理员生成的公钥上传或拷贝到服务器上。这里的公钥需要在git服务器管理员下使用ssh-keygen命令来创建
复制代码
代码如下:
# su - git
保证web页面有权限显示该仓库内容
复制代码
代码如下:
# chmod -R /home/git
# ssh-keygen -t rsa
# cp ~/.ssh/id_rsa.pub /tmp
(2).初始化gitosis
进入到拷贝过来的id_rsa.pub所在目录
复制代码
代码如下:
# cd /tmp
# gitosis-init id_rsa.pub
此时,会在/home/git目录下生成gitosis仓库和配置目录
复制代码
代码如下:
# cd /home/git
# ll
----------------------------------------------------------------
drwxr-xr-x 2 git git Aug : gitosis
drwxr-xr-x 4 git git Aug : repositories
---------------------------------------------------------------
(3).切换回当前(root)用户
复制代码
代码如下:
# exit
(4).配置权限
如果想要别人能够clone gitosis-admin.git,需要执行以下操作:
复制代码
代码如下:
# chmod /home/git/repositories/gitosis-admin.git/hooks/post-update
至此,gitosis的安装工作已完成,其相关配置可以有管理员来操作,然后再提交到服务器上.
(5)现在可以试一下用初始化 Gitosis 的公钥的拥有者身份 SSH 登录服务器,应该会看到类似下面这样:
复制代码
代码如下:
# su - git
$ ssh git@.0.0.1
------------------------------------------------
PTY allocation request failed on channel 0
ERROR:gitosis.serve.main:Need SSH_ORIGINAL_COMMAND in environment.
Connection to gitserver closed.
------------------------------------------------
说明 Gitosis 认出了该用户的身份,但由于没有运行任何 Git 命令,所以它切断了连接。那么,现在运行一个实际的 Git 命令 — 克隆 Gitosis 的控制仓库:
在你本地计算机上克隆git仓库
复制代码
代码如下:
# cd /tmp
# git clone git@gitserver:gitosis-admin.git
这会得到一个名为 gitosis-admin 的工作目录,主要由两部分组成:
红色为git仓库配置,蓝色为实际仓库保存的文件
复制代码
代码如下:
# cd gitosis-admin
# ll -a
----------------------------------------------------------
total
drwxr-xr-x 4 git git Aug : .
drwxr-xr-x 4 git git Aug : ..
drwxr-xr-x 8 git git Aug : .git
-rwxr-xr-x 1 git git Aug : gitosis.conf
drwxr-xr-x 2 git git Aug : keydir
-----------------------------------------------------------
以上操作相当于,系统git用户初始化并成为gitosis管理员,且利用其管理员权限将gitosis-admin仓库clone到本地.
5.添加本地用户john和仓库test到gitosis,并和管理员git合作管理gitosis
1. 用户john添加并发送id_rsa.pub给git
复制代码
代码如下:
# su -
# useradd john passwd john
# su - john
# ssh-keygen -t rsa
-----------------------------------------------------------
Generating public/private rsa key pair.
Enter file in which to save the key (/home/john/.ssh/id_rsa):
Created directory '/home/john/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/john/.ssh/id_rsa.
Your public key has been saved in /home/john/.ssh/id_rsa.pub.
-----------------------------------------------------------
# cp /home/john/.ssh/id_rsa.pub /tmp
2. gitosis管理员git分配john权限
复制代码
代码如下:
# su - git
# mkdir projects
# cd ~/projects
# git clone git@node2.example.com:gitosis-admin
# cd gitosis-admin
# cat gitosis.conf
------------------------------------------------
[gitosis]
[group gitosis-admin]
writable = gitosis-admin
members = git@node2.example.com
------------------------------------------------
# ls keydir/
-------------------------
git@node2.example.com.pub
-------------------------
# cp /tmp/id_rsa.pub keydir/john.pub
# vi gitosis.conf
————————————————————————————————————
[gitosis]
[group gitosis-admin]
writable = gitosis-admin
members = git@node2.example.com
[group test]
writable = test
members = git@node2.example.com john
————————————————————————————————————
# git add .
# git commit -am "add member john and project foo"
# git push
3. 用户git添加项目test
复制代码
代码如下:
# su - git
# cd ~/projects
# mkdir test
# cd test
# git init
# echo "Hello World." hello.txt
# git add hello.txt
# git commit -am 'first commit'
# git remote add origin git@node2.example.com:test.git
# git push origin master
4. 用户 john clone test并修改hello.txt
复制代码
代码如下:
# su - john
# git clone git@node2.example.com:test.git
# cd test
# date hello.txt
# git commit -am 'add time to hello.txt' git push
整个过程分为:
1.通过修改gitosis-admin管理gitosis用户权限,需要clone到本地,然后修改配置文件,最后add push将结果推送到远程实现权限修改.
2.添加系统用户,生成该用户公钥,并将其复制到keydir下,实现该用户有权限进行git等相关操作.
3.登陆该用户账户进行git相关操作,修改完后commit,push到中服务器即可完成仓库权限配置.
七.安装gitweb
1.首先我们需要Git的源码,其中带有GitWeb,并能生成定制的CGI脚本:
复制代码
代码如下:
# git clone git://git.kernel.org/pub/scm/git/git.git
# cd git/
# make GITWEB_PROJECTROOT="/home/git/repositories" prefix=/usr gitweb
# cp -rf gitweb /usr/local/apache2/htdocs/
注: 通过指定 GITWEB_PROJECTROOT 变量告诉编译命令 Git 仓库的位置
2.设置Apache以CGI方式运行该脚本,并添加一个VirtualHost配置:
(1).加载apache的vhost配置文件
复制代码
代码如下:
# vi /usr/local/apache2/conf/
DocumentRoot /usr/local/apache2/htdocs/gitweb
Directory /usr/local/apache2/htdocs/gitweb
Options +ExecCGI
AllowOverride All
order allow,deny
Allow from all
AddHandler cgi-script cgi pl
DirectoryIndex gitweb.cgi
/Directory
/VirtualHost
——————————————————————————————————————————
(4).安装Time/HiRes.pm perl模块
首次打开web页面报Can't locate Time/HiRes.pm in @INC ….错误
解决方法:
复制代码
代码如下:
# yum install perl-devel perl-CPAN -y
# perl -MCPAN -e shell
cpan[2] install Time::HiRes
cpan[3] exit
(5).重启apache服务
复制代码
代码如下:
# /usr/local/apache2/bin/apachectl restart
(6).修改本机HOST,并打开gitweb页面
大功告成....