轉(zhuǎn)載:http://blog.51cto.com/ywzhou/1576378
一、工作流程
1、在puppet服務(wù)器中安裝SVN服務(wù)端和客戶端
2、將puppet的配置目錄/etc/puppet上傳到本地SVN服務(wù)器
3、刪除/etc/puppet,然后使用SVN導(dǎo)出到/etc/puppet,這樣目錄就被版本控制了
4、設(shè)置hooks勾子或cron計(jì)劃任務(wù),自動(dòng)更新/etc/puppet目錄
5、管理員通過SVN客戶端工具上傳配置文件,puppet服務(wù)器自動(dòng)從SVN獲取最新文件
6、/etc/puppet更新后,puppet客戶端也會(huì)在同步時(shí)間更新配置從而實(shí)現(xiàn)自動(dòng)化配置
二、安裝SVN-1.7.18
1、訪問方式
SVN有ra_neon(http,https協(xié)議)、ra_svn(svn協(xié)議)、ra_local(本地路徑file)三種存取模塊,
默認(rèn)安裝了ra_svn和ra_local,需要安裝neon庫(kù)支持ra_dav存儲(chǔ)模塊,否則報(bào)錯(cuò)如下:
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
說明:查看參數(shù)選項(xiàng),最新版1.8.10就沒有--with-neon選項(xiàng);--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/
可使用以下的版本庫(kù)訪問模塊:
* ra_neon : 通過 WebDAV 協(xié)議使用 neon 訪問版本庫(kù)的模塊。
- 處理“http”方案
- 處理“https”方案
* ra_svn : 使用 svn 網(wǎng)絡(luò)協(xié)議訪問版本庫(kù)的模塊。 - 使用 Cyrus SASL 認(rèn)證
- 處理“svn”方案
* ra_local : 訪問本地磁盤的版本庫(kù)模塊。
- 處理“file”方案
說明:可以看到svn成功支持http和https訪問了,
7、創(chuàng)建版本庫(kù)
[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
三、配置服務(wù)及測(cè)試
1、服務(wù)
[root@puppet bin]# ln /usr/local/subversion/bin/{svn,svnserve} /usr/local/bin
[root@puppet bin]# svnserve -d -r /usr/local/svn/puppet/
說明:不需要開機(jī)自動(dòng)啟動(dòng),和apache整合后使用http訪問,svnserve服務(wù)只是給svn://訪問用的;
也不需要設(shè)置防火墻放開SVN默認(rèn)端口3690,和apache整合后使用http定義的端口。
2、****賬號(hào)
SVN有兩種訪問方式:svn://IP和http://IP;
svn方式使用passwd文件中的賬號(hào),缺點(diǎn)是密碼是明文,要加密的話要用到SASL,因此不考慮;
http方式使用/etc/svn_passwd中的賬號(hào),詳見下一節(jié)apach整合svn。
先來測(cè)試下svn://訪問方式:
[root@puppet ~]# vi /usr/local/svn/puppet/conf/svnserve.conf #設(shè)置賬號(hào)密碼文件
password-db = passwd
[root@puppet ~]# vi /usr/local/svn/puppet/conf/passwd #添加賬號(hào)密碼
[users]
svnadmin = 123456
3、測(cè)試
[root@puppet ~]# cd /usr/local/subversion/bin
[root@puppet bin]# svn list svn://localhost/
svn list列出版本庫(kù)中的內(nèi)容,沒有報(bào)錯(cuò)輸出表示正常,庫(kù)是空的所以沒有顯示
[root@puppet bin]# svn co svn://localhost/ --username svnadmin --password 123456 /home/svn
svn co(checkout)檢出版本庫(kù),測(cè)試賬號(hào)是否正常
