《Puppet权威指南》——3.2 版本控制工具安装与配置

3.2 版本控制工具安装与配置

Puppet是一款配置管理工具,其优势不仅在于配置和管理线上系统文件,还可以利用版本控制工具对线上系统和配置文件进行版本控制,如图3-6所示。这样,当线上系统出现问题时可以根据版本控制工具进行及时回滚,而回滚的功能可以将配置文件回退到上一版本或历史的某一版本,快速的回滚可以让我们将故障时间降到最低。目前流行的版本控制工具有很多,在这里推荐两款版本控制工具——Subversion和Git,这两款工具各有优势,都可以与Puppet结合使用,本书中案例主要使用Subversion版本控制工具。以下讲解Subversion和Git的基本安装和两款配置工具的区别,以便读者选用适合自己的版本控制工具。

3.2.1 Subversion安装与配置
Subversion(简称SVN)是近年来崛起的版本管理工具,也是CVS的“接班人”。目前绝大多数开源软件都使用SVN作为代码版本管理软件。SVN服务器有两种运行方式,即独立服务器运行方式和借助Apache运行的方式。借助Apache运行方式更灵活一些,而且Apache有丰富的扩展功能,所以在这里介绍借助Apache方式运行SVN,这种方式比较方便快捷,容易上手。
1 . Apache下载与安装
首先需要下载Apache(中文译名“阿帕奇”),它是一款流行的Web Server,目前很多互联网网站均有使用。这里以Apache 2.2.27为例,结合SVN介绍配置、编译和安装的过程。具体实现命令如下:

# tar xzvf httpd-2.2.27.tar.gz
# cd httpd-2.2.27
#"./configure" "--prefix=/usr/local/apache2" "--with-included-apr" "--enable-so"
"--enable-deflate=shared" "--enable-expires=shared" "--enable-rewrite=shared"
"--enable-static-support" "--disable-userdir""--enable-dav" "--enable-dav-fs"
# make && make install

2 . SVN安装
安装SVN前首先需要安装两个SVN的辅助工具——Sqlite和Neon,否则在使用SVN时会不支持一些功能。安装好Sqlite和Neon后再来安装SVN。具体的安装命令如下:

#tar xzvf sqlite-autoconf-3071300.tar.gz
#cd sqlite-autoconf-3071300
#./configure && make && make install

#tar xzvf neon-0.29.6.tar.gz
#cd neon-0.29.6
#./configure && make && make install

#tar xzvf subversion-1.7.5.tar.gz
#cd subversion-1.7.5
#./configure --with-neon
#make && make install

3 . Apache配置
借助Apache可以管理SVN的Httpd.conf文件,所以需要对Apache进行简单配置。主要的配置信息如下。
1)加载SVN的模块。

#添加如下模块支持
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

2)统一SVN和Apache的权限。

#修改用户,保证访问权限
User puppet
Group puppet

3)设置SVN发布目录和权限。

# 设置SVN目录的访问
<Location /svn>
Order allow,deny
Allow from all
Dav svn
SvnParentPath /data1/svn
SvnListParentPath On
SvnAutoversioning On
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /usr/local/apache2/conf/authfile
Require valid-user
</Location>

上述提到的/usr/local/apache2/conf/authfile包含了访问SVN的账户和密码信息,可以通过以下方式设置SVN管理账户的信息和密码。

#/usr/local/apache2/bin/htpasswd -c /usr/local/apache2/conf/authfile USRNAME

4 . 启动Apache
修改完配置文件后,不要忘记重启Apache后才会生效。启动命令如下:

# /usr/local/apache2/bin/apachectl restart

5 . 确认安装
启动Apache后可以在IE浏览器输入Apache的IP地址,即配置文件中的192.168.1.1。输入IP地址后,IE会提示用户输入用户名和密码,如图3-7所示。这里的用户名就是httpd.conf配置文件中设置的认证文件地址(/usr/local/apache2/conf/authfile)中的用户名,密码是通过htpasswd命令设置的密码,如果登录成功表示已经成功地安装了Apache和SVN。
3.2.2 Git安装与配置
Git是Linus Torvalds(Linux内核主要开发和创建人之一)为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。很多著名的软件都使用Git进行版本控制,其中包括Linux内核、X.Org服务器和OLPC内核等项目的开发流程。Git是强大的版本控制工具,与常用的版本控制工具 CVS、Subversion 等不同,它采用了分布式版本库的方式而不需要服务器端软件支持。开发者从服务器上克隆数据库(包括代码和版本信息)到单机上,在没有网络的条件下,开发者就可以在单机上创建分支、修改代码,并在单机上进行提交,联网后可以与服务器上的版本进行合并。Git就是如此方便快捷。更多信息请参考官方网站http://git-scm.com/
Git目前支持UNIX/Linux系列操作系统,同时也支持Windows系列操作系统。下面以CentOS系统为例来讲解安装Git的过程。在安装Git前需要安装一些Git需要的依赖包,具体如下。
1 . Git依赖包
安装Git前首先通过yum安装它所需要的依赖包和库文件。具体安装命令如下:

# yum install curl
# yum install curl-devel
# yum install zlib-devel
# yum install openssl-devel
# yum install perl
# yum install cpio
# yum install expat-devel
# yum install gettext-devel

2 . Git安装
下载Git,确认依赖包和库文件安装完没有问题后,解压Git安装包直接配置、编译和安装它。具体命令如下:

# tar xzvf git-latest.tar.gz
# ./configure
# make
# make install

3.2.3 SVN与Git的4点区别
SVN和Git作为两款比较有代表性的版本控制工具,在功能和应用方面可谓各有千秋。两者的区别有以下几点。
1)Git可以分布式管理版本库,而SVN不行。Git和SVN一样都有自己的集中版本管理服务器。但是Git更倾向于分布式管理版本库,也就是说每个开发人员通过Git可以从中心服务器版本库上迁出(check out)一份代码到自己机器的版本库中,并且在没有网络的情况下仍然可以继续开发,并在本地提交相应数据。而SVN却做不到这一点。
2)Git把内容按元数据方式存储,而SVN是按文件方式存储。在使用SVN和Git时会发现两个版本控制工具分别有.svn目录和.git目录。SVN把文件的元信息隐藏在.svn文件夹里。而Git的目录体积要比SVN大很多,因为Git目录是处于机器上的一个克隆版的版本库,它拥有中心版本库上所有的东西,例如标签、分支、版本记录等。
3)Git分支和SVN分支的不同。SVN中的分支一点也不特别,它就是版本库中另外的一个目录。如果我们想知道是否合并了一个分支,需要手工运行像svn propget svn:mergeinfo这样的命令来确认代码是否被合并。然而处理Git的分支却是相当的简单和有趣。我们可以从同一个工作目录下快速地在几个分支间切换。我们可以很容易发现未被合并的分支,而通过Git也可以简单而快捷地合并这些文件分支。
4)Git的内容完整性要优于SVN。因为Git的内容存储使用的是SHA-1哈希算法,能保证代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。
在这里我们总结了SVN和Git的4点不同,读者可以根据自己的需要来选用Git或SVN版本控制工具。

时间: 2024-09-10 12:35:40

《Puppet权威指南》——3.2 版本控制工具安装与配置的相关文章

《Puppet权威指南》——导读

**前言**早在2009年的时候,笔者就梦想能出版一本属于自己的书,虽然那时用业余时间写过一本,但并不专业也没有正式发行.时隔5年,随着工作经验的积累和知识的增长,经过了2年多的构思,编写的这本书终于面市了,这算是圆了笔者一个小小的梦想.笔者从事互联网行业已有7年左右的时间了,与传统行业相比,7年的时间仅能算是初出茅庐,但对于年轻的互联网行业来说不算短了,因为互联网在1995年才正式进入中国,目前还处于"花样年华"阶段.2008年-2011年5月,笔者就职于新浪网技术中国有限公司.当时

《Puppet权威指南》——第3章 Puppet及相关工具的配置与安装

第3章 Puppet及相关工具的配置与安装 万事开头难,所以本章首先重点介绍安装Puppet环境所需要的软件依赖包和各发行版本系统的安装步骤和注意事项,为读者应用Puppet奠定基础:然后介绍Puppet的辅助工具之一,即版本控制工具的安装方式,Puppet与版本控制工具的整合,实现了线上配置与SVN强一致性的功能,同时可以对线上文件进行版本控制,以便出现问题时及时回滚,为提供稳定服务保驾护航:还介绍流程版本控制工具的安装与对比,进一步探讨在使用Puppet时应该选用的版本控制工具的安装方式及其

《Puppet权威指南》——3.1 Puppet 各环境的安装

3.1 Puppet 各环境的安装 第1章介绍过Puppet和其他的几个自动化运维工具的异同,Puppet的优势有很多,安装方便只是其中之一.本节介绍Puppet在各主要环境下的安装方式.相信读者学完本章以后会深深体会到Puppet的安装是多么简单.由于Puppet是用Ruby语言编写的,所以先从Ruby版本支持Puppet状况讲起:接着介绍包管理工具和源:最后再来介绍Puppet在各环境下的安装方式.3.1.1 Ruby不同版本对Puppet的支持状况 目前Puppet 提供了对多系统.多环境

《Puppet权威指南》——3.3 DNS安装与配置

3.3 DNS安装与配置 DNS(Domain Name System,域名解析系统)主要用来表示IP与域名之间的映射关系,是学习Puppet过程中比较重要的一个辅助工具,因为在Agent每次连接Master时都会使用到域名.如果通过Puppet管理的Agent较少,可以通过写hosts的形式来管理域名,但是在管理的Agent比较多的情况下通过hosts的形式来管理域名的成本就相对较高.这时可以通过开源软件来搭建一套DNS域名解析系统,这样通过Puppet管理比较多的Agent就方便快捷多了.目

《Puppet权威指南》——1.3 自动化运维工具对比

1.3 自动化运维工具对比 在1.2节中我们介绍了现在比较常见的自动化配置工具Cfengine.Chef和Puppet,下面再来看一下这3款自动化运维工具的区别,如表1-1所示. 讲到这里,我们已经基本了解了Cfengine.Chef和Puppet这3款自动化运维工具.通过表1-1可知,Puppet的优势还是比较明显的.若是我们去Puppet的官方网站上看一看,会发现很多使用Puppet作为公司自动化运维工具的例子,目前超过18000家公司在使用Puppet软件,其中包括Twitter.Zyng

《Puppet权威指南》——1.2 自动化运维工具箱

1.2 自动化运维工具箱 1.2.1 Cfengine Cfengine是一个借助C语言开发的.功能强大的自动化UNIX管理工具,最早出现于1993年.通过Cfengine可以轻而易举地管理客户端上的设备.Cfengine不仅运行成本低.效率高.功能强大,而且使用范围广.Cfengine可以管理各种环境下的设备,从一台到上千台服务器的集群均适用.如果运维工程师想同时修改2000台服务器的root密码,通过Cfengine可以轻松地在几分钟内实现.Cfengine还包含以下主要的功能: 检查和配置

《Puppet权威指南》——2.1 DevOps介绍

2.1 DevOps介绍 Puppet是DevOps运动重要的工具成员之一,所以在介绍Puppet之前首先来了解一下DevOps运动.DevOps是英文Development和Operations的组合,是一组过程.方法与系统的统称.DevOps有助于促进开发.运维和质量等部门之间的沟通.协作与整合,如图2-1所示. 在传统的软件组织中,将开发.运维和质量等设为各自独立的部门,这样不仅降低了各部门之间沟通的效率,同时也会引发很多问题.如,开发部门接到项目经理和产品经理的指示需要开发一款新产品,而

《Puppet权威指南》——第2章 Puppet介绍

第2章 Puppet介绍 本章主要希望读者在掌握Puppet之前对它的版本情况.工作流程和常见问题有一些基本的了解.首先介绍当前流行的DevOps运动,它是一组过程.方法与系统的统称,用于促进开发.运维和质量保障(QA)部门之间的沟通.协作与整合, Puppet也是它重要的工具成员之一.其次介绍Puppet发行版本状况,并重点介绍开源社区版本的细节,如何升级,以及它对各系统发行版本的支持情况.然后介绍Puppet的基本工作流程,让读者了解Puppet内部的工作逻辑,为后续深入学习作铺垫.接着介绍

《ELK Stack权威指南 》第2章 插件配置

本节书摘来自华章出版社<ELK Stack权威指南 >一书中的第1章,第2节,作者饶琛琳,更多章节内容可以访问"华章计算机"公众号查看. 插 件 配 置 插件是Logstash最大的特色.各种不同的插件源源不断地被创造出来,发布到社区中供大家使用.本章会按照插件的类别,对一般场景下的一些常用插件做详细的配置和用例介绍.本章介绍的插件包括:1)输入插件.基于shipper端场景,主要介绍STDIN.TCP.File等插件.2)编解码插件.编解码通常是会被遗忘的环节,但是运用好