redhat搭建git服务器

以创建puppet仓库为例搭建git服务器

一、搭建git服务器

1、在服务器安装git包

#yum install git git-daemon

2、在服务器上创建专用账号,所有用户都通过此账号访问git库。选择git作为专用账号,并为账号设置密码。(也可以在配置完git服务后,可以将git修改为只允许公钥认证,以加强安全性。)

#adduser -s /bin/bash git

#passwd git

3、初始化puppet服务端git仓库,创建/git目录,并再/git目录下创建puppet repo目录,并赋予git用户权限:

创建/git目录

#mkdir /git

创建puppet repo目录

#mkdir /git/puppet.git

创建git仓库

#cd /git/puppet.git

#git --bare init

赋予git目录git用户权限

#chown git:git -R /git

4、启动git服务,

#/usr/libexec/git-core/git-daemon --base-path=/git --detach --user=git --group=git --listen=10.240.216.250 --export-all --enable=receive-pack --enable=upload-pack --enable=upload-archive

二、降puppet加入git

1、将puppet master上的/etc/puppet目录加入仓库,作为仓库的副本。

#cd /etc/

#mv puppet /tmp

把之前搭建的puppet仓库克隆到/etc目录下并在此目录下生产一个puppet的目录

#git clone git://10.240.216.250/puppet.git

#cd /etc/puppet

#cp /tmp/puppet/*

#git add *

#git commit -m "Add puppet to git repo"

#git push -u origin master

Counting objects: 2949, done.

Delta compression using up to 16 threads.

Compressing objects: 100% (2630/2630), done.

Writing objects: 100% (2949/2949), 1.57 MiB, done.

Total 2949 (delta 611), reused 0 (delta 0)

To git://10.240.216.250/puppet.git

* [new branch]      master -> master

这样就在本地创建了一个master仓库,它包含了puppet的配置文件及清单。我们可以在不通的地方导出多个副本,提交变更之前在这些副本上的工作。列如,我们有一个系统管理员团队,他们每个人都可以在自己的电脑上创建一个副本进行修改等工作。

三、在系统管理员本地电脑上创建副本(即git客户端)

1、把puppet副本克隆到本地

[email protected]:# cd /tmp

[email protected]:/tmp#

[email protected]:/tmp# git clone git://10.240.216.250/puppet.git

Cloning into ‘puppet‘...

remote: Counting objects: 2949, done.

remote: Compressing objects: 100% (2019/2019), done.

remote: Total 2949 (delta 611), reused 2949 (delta 611)

Receiving objects: 100% (2949/2949), 1.57 MiB | 0 bytes/s, done.

Resolving deltas: 100% (611/611), done.

Checking connectivity... done.

[email protected]:/tmp#

[email protected]:/tmp# ls

puppet

2、修改想要修改的配置并提交至主分支“master”

[email protected]:/tmp# cd puppet

[email protected]:/tmp/puppet# ls

aaa  auth.conf  environments  fileserver.conf  hieradata  hiera.yaml  manifests  modules  puppet.conf

[email protected]:/tmp/puppet# vi manifests/site.pp

Package {

allow_virtual => true,

}

node ‘bgw-os-node1‘ {

include ::openstack::role::controller_master

}

node ‘bgw-os-node2‘ {

include ::openstack::role::controller_standby

}

node ‘bgw-os-node11‘ {

include ::openstack::role::compute

}

#node ‘bgw-os-node12‘ {                 #此处是要修改的内容,把node12节点注释掉

#    include ::openstack::role::compute

#}

node ‘bgw-os-node151‘ {

include ::openstack::role::ceph_mon_and_osd

}

node ‘bgw-os-node152‘ {

include ::openstack::role::ceph_mon_and_osd

}

node ‘bgw-os-node153‘ {

include ::openstack::role::ceph_mon_and_osd

}

"puppet/manifests/site.pp" 31L, 544C written

[email protected]:/tmp# git add puppet/manifests/site.pp

fatal: Not a git repository (or any of the parent directories): .git

[email protected]:/tmp/puppet# git add manifests/site.pp

[email protected]:/tmp/puppet# git commit -m "Add site.pp"

*** Please tell me who you are.

Run

git config --global user.email "[email protected]"

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

to set your account‘s default identity.

Omit --global to set the identity only in this repository.

fatal: unable to auto-detect email address (got ‘[email protected](none)‘)

上面出现报错,需要添加用户及用户的邮箱

[email protected]:/tmp/puppet# git config --global user.name "lizhanguo"

[email protected]:/tmp/puppet# git config --global user.email "[email protected]"

再次提交成功

[email protected]:/tmp/puppet# git commit -m "Add site.pp"

[master 894da1e] Add site.pp

1 file changed, 3 insertions(+), 3 deletions(-)

[email protected]:/tmp/puppet#

把本地的内容push 到git server端

[email protected]:/tmp/puppet# git push

warning: push.default is unset; its implicit value has changed in

Git 2.0 from ‘matching‘ to ‘simple‘. To squelch this message

and maintain the traditional behavior, use:

git config --global push.default matching

To squelch this message and adopt the new behavior now, use:

git config --global push.default simple

When push.default is set to ‘matching‘, git will push local branches

to the remote branches that already exist with the same name.

Since Git 2.0, Git defaults to the more conservative ‘simple‘

behavior, which only pushes the current branch to the corresponding

remote branch that ‘git pull‘ uses to update the current branch.

See ‘git help config‘ and search for ‘push.default‘ for further information.

(the ‘simple‘ mode was introduced in Git 1.7.11. Use the similar mode

‘current‘ instead of ‘simple‘ if you sometimes use older versions of Git)

Counting objects: 4, done.

Delta compression using up to 2 threads.

Compressing objects: 100% (3/3), done.

Writing objects: 100% (4/4), 376 bytes | 0 bytes/s, done.

Total 4 (delta 2), reused 0 (delta 0)

To git://10.240.216.250/puppet.git

5ad9866..894da1e  master -> master

[email protected]:/tmp/puppet#

四、git 服务端,在puppet master的/etc/puppet目录下运行git pull,将其更新到最新版本。

[[email protected] puppet]# git pull

remote: Counting objects: 7, done.

remote: Compressing objects: 100% (3/3), done.

remote: Total 4 (delta 2), reused 0 (delta 0)

Unpacking objects: 100% (4/4), done.

From git://10.240.216.250/puppet

5ad9866..894da1e  master     -> origin/master

Updating 5ad9866..894da1e

Fast-forward

manifests/site.pp |    6 +++---

1 files changed, 3 insertions(+), 3 deletions(-)

查看刚才客户端的修改提交是否生效

[[email protected] puppet]# cat manifests/site.pp

Package {

allow_virtual => true,

}

node ‘bgw-os-node1‘ {

include ::openstack::role::controller_master

}

node ‘bgw-os-node2‘ {

include ::openstack::role::controller_standby

}

node ‘bgw-os-node11‘ {

include ::openstack::role::compute

}

#node ‘bgw-os-node12‘ {              #已生效

#    include ::openstack::role::compute

#}

node ‘bgw-os-node151‘ {

include ::openstack::role::ceph_mon_and_osd

}

node ‘bgw-os-node152‘ {

include ::openstack::role::ceph_mon_and_osd

}

node ‘bgw-os-node153‘ {

include ::openstack::role::ceph_mon_and_osd

}

2、为了保证实时更新,我们可以在cron增加定时任务以保证/etc/puppet副本的内容为每分钟更新一次。

[[email protected] ~]# crontab -e

no crontab for root - using an empty one

*/1 * * * * cd /etc/puppet ; git pull

时间: 2024-10-18 19:49:39

redhat搭建git服务器的相关文章

使用Gitosis搭建Git服务器

使用Gitosis搭建Git服务器 作者: JeremyWei | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明 网址: http://weizhifeng.net/build-git-server-with-gitosis.html Git 1.安装gitosis 首先是获取gitosis(这里假设你已经安装过git): git clone git://github.com/res0nat0r/gitosis.git 接下来安装gitosis: sudo python s

在CentOS搭建Git服务器 转

在CentOS搭建Git服务器 来自 :http://www.jianshu.com/p/69ea5ded3ede 前言 我们可以GitHub发布一些开源代码的公共仓库,但对于私密仓库就需要收费了.公司内部通常会搭建自己的Git服务器,我也通过在自己的服务器上搭建练习一下. 开始前先说一下服务器信息,这里是阿里云的CentOS 6.5 64位操作系统. 一 确认服务器是否安装Git [[email protected] git]# rpm -qa gitgit-1.7.1-3.el6_4.1.x

linux 搭建git 服务器

cenos 搭建git 服务器 假设你已经有sudo权限的用户账号,下面,正式开始安装. 第一步,安装git: # yum install git 第二步,创建一个git用户,用来运行git服务: # adduser git 第三步,创建证书登录: git客户端生产成 id_rsa.pub,输入命令 ssh-keygen -t rsa windows主机上在 C:\Users\Administrator\.ssh 目录下 id_rsa.pub 这个文件 收集所有需要登录的用户的公钥,就是他们自己

Windows操作系统下搭建Git服务器和客户端。

本文将介绍如何在Windows操作系统下搭建Git服务器和客户端.服务器端采用的是Bonobo Git Server,一款用ASP.NET MVC开发的Git源代码管理工具,界面简洁,基于Web方式配置,简单易用.客户端是采用的TortoiseGit工具,UI操作,省去输入命令的麻烦,对于windows用户来说更易于使用. 所需软件: Git服务器端: BONOBO GIT SERVER,下载最新版:http://bonobogitserver.com/ Git客户端: msysgit,下载最新

CentOS 6.4 搭建git 服务器

CentOS 6.4 搭建git 服务器 (2013-11-22 19:04:09)转载▼ 标签: it 分类: Linux 此文件是依据markdown所编写,更好效果参见本人github的文档https://github.com/jackliu2013/recipes/blob/master/doc/linux/CentOS_6.4_git服务器搭建.md ##CentOS安装Git服务器 Centos 6.4 + Git 1.8.2.2 + gitosis## 1.查看Linux系统服务器

版本控制——Git 使用笔记,以及Windows搭建Git服务器

Git和Github的关系 链接:http://www.zhihu.com/question/21907548/answer/95284202 来源:知乎 Git是一款免费.开源的分布式版本控制系统 Github是用Git做版本控制的代码托管平台 相当于本地.公司服务器.Github网站服务器都装Git做版本控制,只不过Github的服务器强大些,对全球用户托管的项目用Git做版本控制! 正是由于Github用Git做版本控制,所以可以轻松的记录项目的变迁史,然后有了下图 git是一张弓,git

Ubuntu上搭建Git服务器

下面我们就看看,如何在Ubuntu上搭建Git服务器.我们使用VMware虚拟机安装两台Ubantu系统,分别命名为gitServer和gitClient_01. 1.安装OpenSSH并配置SSH无密码登陆 通过命令 sudo apt-get install openssh-server,安装SSH服务. 通过命令 ps –e|grep ssh,查看ssh服务是否启动. 通过以上命令,我们为Ubantu系统安装SSH服务,并配置SSH无密码登陆,首先我们修改主机和ip配置文件:gedit /e

ubuntu下搭建git服务器

看了一些搭建git服务器的教程,都不是很详细,于是,就有了本文→_→ 环境说明: 本地:win7 IP:192.168.111.1 服务器:ubuntu 14.04 IP:192.168.111.222 服务器上: #安装git,如果有权限问题,记得再以下命令前面加上 sudo apt-get install git #新增用户(用户名为git),用于运行git服务,回车后会提示输入密码 adduser git #初始化git仓库,这里我放到/home/git/code目录下面(专门存放代码用)

Windows平台下搭建Git服务器的图文教程

Git没有客户端服务器端的概念,但是要共享Git仓库,就需要用到SSH协议(FTP , HTTPS , SFTP等协议也能实现Git共享,此文档不讨论),但是SSH有客户端服务器端,所以在windows下的开发要把自己的Git仓库共享出去的话,就必 须做SSH服务器 Git服务现在独树一帜,相比与SVN有更多的灵活性,最流行的开源项目托管网站Github上面,如果托管开源项目,那么就是免费使用的,但是闭源的项目就会收取昂贵的费用,如果你不缺米,那么不在本文讨论的范围内,既然这样,我们可以自己搭建