天天看點

puppet 安裝svn

轉載: http://blog.51cto.com/ywzhou/1576378

一、工作流程

1、在puppet伺服器中安裝SVN服務端和用戶端

2、将puppet的配置目錄/etc/puppet上傳到本地SVN伺服器

3、删除/etc/puppet,然後使用SVN導出到/etc/puppet,這樣目錄就被版本控制了

4、設定hooks勾子或cron計劃任務,自動更新/etc/puppet目錄

5、管理者通過SVN用戶端工具上傳配置檔案,puppet伺服器自動從SVN擷取最新檔案

6、/etc/puppet更新後,puppet用戶端也會在同步時間更新配置進而實作自動化配置

二、安裝SVN-1.7.18

1、通路方式

SVN有ra_neon(http,https協定)、ra_svn(svn協定)、ra_local(本地路徑file)三種存取子產品,

預設安裝了ra_svn和ra_local,需要安裝neon庫支援ra_dav存儲子產品,否則報錯如下:
           
http://s3.51cto.com/wyfs02/M01/53/2A/wKiom1RlZrCTi2-9AABVtj5gqcU430.jpg
puppet 安裝svn
http://s3.51cto.com/wyfs02/M01/53/2A/wKiom1RlZrCTi2-9AABVtj5gqcU430.jpg wKiom1RlZrCTi2-9AABVtj5gqcU430.jpg http://s3.51cto.com/wyfs02/M01/53/2A/wKiom1RlZrCTi2-9AABVtj5gqcU430.jpg

2、安裝依賴

svn依賴的軟體:openssl、apr-util、apr、pcre、zlib、sqlite、neon
           
[root@puppet ~]# yum install -y openssl apr-util apr pcre zlib
           

3、下載下傳SVN

官方下載下傳位址:http://subversion.apache.org/download/
           
[root@puppet ~]# mkdir /home/svn
[root@puppet ~]# cd /home/svn
[root@puppet svn]# wget http://mirrors.cnnic.cn/apache/subversion/subversion-1.7.18.tar.gz
[root@puppet svn]# tar -zxvf subversion-1.7.18.tar.gz
           

4、安裝neon

[root@puppet svn]# wget http://www.webdav.org/neon/neon-0.30.1.tar.gz
[root@puppet svn]# tar -zxvf neon-0.30.1.tar.gz
[root@puppet svn]# cd neon-0.30.1
[root@puppet neon-0.30.1]# ./configure --prefix=/usr/local/neon --with-ssl --enable-shared
[root@puppet neon-0.30.1]# make && make install && cd ..
           

5、下載下傳sqlite

[root@puppet svn]# wget http://www.sqlite.org/sqlite-amalgamation-3071501.zip
[root@puppet svn]# unzip sqlite-amalgamation-3071501.zip -d /home/svn/subversion-1.7.18/
[root@puppet svn]# cd /home/svn/subversion-1.7.18
[root@puppet subversion-1.7.18]# mv sqlite-amalgamation-3071501 sqlite-amalgamation
           

6、安裝SVN

[root@puppet subversion-1.7.18]# ./configure --help
           

說明:檢視參數選項,最新版1.8.10就沒有--with-neon選項;--with-ssl改成了--with-openssl,是以建議使用1.7.18版本。

[root@puppet subversion-1.7.18]# ./configure --with-apxs=/usr/sbin/apxs --prefix=/usr/local/subversion  --with-openssl --with-neon=/usr/local/neon 
[root@puppet subversion-1.7.18]# make && make install
[root@puppet subversion-1.7.18]# cd /usr/local/subversion/bin
[root@puppet bin]# ./svn --version
svn,版本 1.7.18 (r1615261)
   編譯于 Oct 30 2014,15:47:13
Copyright (C) 2014 The Apache Software Foundation.
This software consists of contributions made by many people; see the NOTICE
file for more information.
Subversion is open source software, see http://subversion.apache.org/
可使用以下的版本庫通路子產品: 
* ra_neon : 通過 WebDAV 協定使用 neon 通路版本庫的子產品。
  - 處理“http”方案
  - 處理“https”方案
* ra_svn : 使用 svn 網絡協定通路版本庫的子產品。  - 使用 Cyrus SASL 認證
  - 處理“svn”方案
* ra_local : 通路本地磁盤的版本庫子產品。
  - 處理“file”方案
           

說明:可以看到svn成功支援http和https通路了,

7、建立版本庫

[root@puppet bin]# mkdir /usr/local/svn
[root@puppet bin]# ./svnadmin create /usr/local/svn/puppet
[root@puppet bin]# chown -R apache /usr/local/svn/puppet
[root@puppet bin]# chmod -R 755 /usr/local/svn/puppet
           

三、配置服務及測試

1、服務

[root@puppet bin]# ln /usr/local/subversion/bin/{svn,svnserve} /usr/local/bin
[root@puppet bin]# svnserve -d -r /usr/local/svn/puppet/
           

說明:不需要開機自動啟動,和apache整合後使用http通路,svnserve服務隻是給svn://通路用的;

也不需要設定防火牆放開SVN預設端口3690,和apache整合後使用http定義的端口。

2、****賬号

SVN有兩種通路方式:svn://IP和http://IP;

svn方式使用passwd檔案中的賬号,缺點是密碼是明文,要加密的話要用到SASL,是以不考慮;

http方式使用/etc/svn_passwd中的賬号,詳見下一節apach整合svn。

先來測試下svn://通路方式:
           
[root@puppet ~]# vi /usr/local/svn/puppet/conf/svnserve.conf  #設定賬号密碼檔案
password-db = passwd
[root@puppet ~]# vi /usr/local/svn/puppet/conf/passwd         #添加賬号密碼
[users] 
svnadmin = 123456
           

3、測試

[root@puppet ~]# cd /usr/local/subversion/bin
[root@puppet bin]# svn list svn://localhost/
           
svn list列出版本庫中的内容,沒有報錯輸出表示正常,庫是空的是以沒有顯示
           
[root@puppet bin]# svn co svn://localhost/ --username svnadmin --password 123456 /home/svn
           
svn co(checkout)檢出版本庫,測試賬号是否正常