Puppet整合SVN(三):Puppet整合SVN

1、检查

[[email protected] ~]# ll /etc/puppet/
总用量 32
-rw-r--r--  1 root root 4178 11月  5 16:10 auth.conf
-rw-r--r--  1 root root   11 11月  5 16:10 autosign.conf
drwxr-xr-x  5 root root 4096 11月  5 16:10 environments
-rw-r--r--  1 root root 1561 11月  5 16:10 fileserver.conf
drwxr-xr-x  2 root root 4096 11月 13 11:40 manifests
drwxr-xr-x  1 root root 4096 11月 12 15:21 modules
-rw-r--r--  1 root root  915 11月  5 16:10 puppet.conf

2、导入

将puppet配置导入到版本库中,但此时原文件还没有被版本控制:

[[email protected] ~]# svn import /etc/puppet http://10.188.1.73:8080/svn -m "import puppet" --username puppet --password 123456 --no-auth-cache

检查版本库中是否已存在导入的puppet文件:

[[email protected] ~]# svn list http://10.188.1.73:8080/svn  --username puppet --password 123456 --no-auth-cache

3、删除

[[email protected] ~]# rm -fr /etc/puppet
[[email protected] ~]# ll /etc/puppet/

4、检出

检出到/etc/puppet目录上,使其被版本控制:

[[email protected] ~]# svn co http://10.188.1.73:8080/svn /etc/puppet --username puppet --password 123456 --no-auth-cache
[[email protected] ~]# ll /etc/puppet/

  在windows管理机器上检出,以后就直接在这里添加修改文件,提交到服务器:

windows下的svn客户端TortoiseSVN下载地址:

http://tortoisesvn.net/downloads.html

5、更新

(1)计划任务更新方式(不建议)

[[email protected] ~]# crontab -e
*/5 * * * * /usr/local/bin/svn update /etc/puppet --username puppet --password 123456  --no-auth-cache
[[email protected] ~]# service crond restart

每5分钟更新/etc/puppet目录。

(2)SVN勾子更新方式(强力推荐)

[[email protected] ~]# cd /usr/local/svn/puppet/hooks
[[email protected] hooks]# cp post-commit.tmpl post-commit
[[email protected] hooks]# vi post-commit
#!/bin/sh 
# POST-COMMIT HOOK 
REPOS="$1" 
REV="$2" 
#mailer.py commit "$REPOS" "$REV" /path/to/mailer.conf 
export LANG=en_US.UTF-8 
SVN=/usr/local/bin/svn 
PUPPET_DIR=/etc/puppet 
$SVN update $PUPPET_DIR --username puppet --password 123456  --no-auth-cache
[[email protected] hooks]# chmod 777 /etc/puppet

只要客户端一提交,就会触发post-commit中的update命令更新/etc/puppet目录,节省资源又有效率。

6、提交(不建议)

当需要在服务端修改/etc/puppet目录中的文件时(比如将ssh的配置文件sshd.config复制到ssh模块目录下时),需要提交到版本库。

先使用svn add添加新建的文件,再用svn ci提交:

[[email protected] ~]# svn add /etc/puppet/modules/ssh/files/sshd.config
[[email protected] ~]# svn ci /etc/puppet/ -m "commit"
警告: post-commit hook failed (exit code 1) with output: svn: E155004: Working copy ‘/etc/puppet‘ locked. svn: E155004: ‘/etc/puppet‘ is already locked.
[[email protected] ~]# cd /etc/puppet/
[[email protected] puppet]# svn cleanup   #清除后再重新添加、提交

注意:不建议在服务端操作,容易出现锁死问题,最好统一在管理机器上进行提交。

在管理机器上提交时出现以下错误:

客户端提交属于“其他”用户,因此需要给/etc/puppet “其他用户”的写权限:

[[email protected] hooks]# chmod 777 /etc/puppet

另外在服务端svn ci后再在客户端提交也会出现locked问题,解决方式是不使用同一账号,最好就不在服务端操作。

参考自关于windows环境SVN服务器问题:http://blog.sina.com.cn/s/blog_69265fe101017y0v.html

7、重启

[[email protected] ~]# service puppetmaster restart
时间: 2024-11-07 12:12:31

Puppet整合SVN(三):Puppet整合SVN的相关文章

SVN与eclipse整合和利用、SVN与Apache综合

SVN与eclipse综合 下载SVN插入(http://subclipse.tigris.org) http://subclipse.tigris.org/servlets/ProjectDocumentList?folderID=2240 上下载合适的svn插件, 我们使用版本号eclipse_svn_site-1.6.5.zip 下载地址:http://pan.baidu.com/s/1dD7YgTF 解压到一个目录中 进入eclipse 安装文件夹中dropins文件夹并创建一个subc

学习笔记_SVN与eclipse整合、SVN与Apache整合

SVN与eclipse整合 下载SVN插件(http://subclipse.tigris.org) http://subclipse.tigris.org/servlets/ProjectDocumentList?folderID=2240 上下载合适的svn插件, 我们使用版本eclipse_svn_site-1.6.5.zip 解压到eclipse 安装目录中dropins 参考前面的文章,启动svn服务.添加用户.设置权限等操作 使用Eclipse创建一个项目,右击team→Share

SVN与Apache整合

v SVN与Apache整合 ?下载Apache(http://httpd.apache.org/download.cgi) ?安装apache_2.2.14-win32-x86-no_ssl.msi ?打开Apache安装目录下Apache2.2\conf\httpd.conf 配置文件: v 将下列2行前方的#移除(第83 行): LoadModule dav_module modules/mod_dav.so LoadModule dav_fs_module modules/mod_dav

Spring之ORM(spring 与mybatis的三种整合实例)

我们知道spring没有提供orm框架但是,提供了很好的和orm框架这个的代沟,我们可以和流行的orm框架进行整合,本文主要介绍Spring与Mybatis三种常用整合方法,需要的整合架包是mybatis-spring.jar,可以通过连接下载http://download.csdn.net/detail/qh_java/8431455 :  1.采用数据映射器(MapperFactoryBean)的方式,不用写mybatis映射文件,采用注解方式提供相应的sql语句和输入参数. (1).Spr

springmvc3.2+spring+hibernate4全注解方式整合(三)

service接口 package com.fangjian.core.platform.service; import com.fangjian.core.platform.po.User; public interface UserService { void saveUser(User user); } service实现 package com.fangjian.core.platform.service.impl; import org.springframework.beans.fa

spring和mybatis整合(三)

一.方法: 1.导入jar包 2.配置数据信息 1)Spring加Mybatis的第一种整合方法 <!-- 描述数据源信息 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/

dubbo与springboot的三种整合方式

SpringBoot与dubbo整合的三种方式:1.导入dubbo-starter,在application.properties配置属性,使用@Service暴露服务,使用@Reference引用服务,使用@EnableDubbo开启dubbo注解(或者在application.properties中配置dubbo.scan.base-packages=com.lina02.gmall)2.保留dubbo.xml配置文件;导入dubbo-starter,使用@ImportResource导入d

svn学习之一(svn独立服务器搭建)svn钩子了解

SVN实战笔记#####################################################xingxing qq:1218761836 qq群:150181442##################################################### SVN实战  目录SVN实战    1一.SVN简介    1二.SVN运行方式    12.1 svn的访问模式3种    1三.SVN数据格式    23.1 svn 档案库数据格式    2四.

[SVN(ubuntu)] ubuntu使用svn

转载自:http://lee2013.iteye.com/blog/1058047 SVN作为日常开发中不可缺少的工具,Ubuntu下的SVN安装十分简单,sudo apt-get install subversion,然后根据提示一步一步,就完成了SVN的安装 1.将文件checkout到本地目录 svn checkout path(path 是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:svn co 2.往版本库中添加新的