Linux/Python学习论坛-京峰教育

 找回密码
 立即注册

一键登录:

搜索
热搜: 活动 交友 discuz
查看: 1775|回复: 0

Puppet+SVN自动化运维部署平台

[复制链接]

217

主题

331

帖子

4642

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4642
QQ
发表于 2015-5-1 23:34:33 | 显示全部楼层 |阅读模式
在目前互联网自动化运维中,有很多自动化工具,今天我们来研究puppet,puppet用于日常服务器管理和多集群配置,puppet自动化平台我们已经在企业中构建成功,那接下来,我再给大家分享一个SVN+Puppet架构,满足我们日常的代码更新,真正全自动去解决我们企业中的运维问题,让我们的运维更加的简单、轻松,相信大家实践之后会有深入的体会!
今天我们将来使用SVN来自助更新我们的puppet代码,满足真正的自动化运维,让我们的运维更加轻松。
下载SVN相关软件并安装:
  1. wget https://archive.apache.org/dist/subversion/subversion-1.7.10.tar.bz2
  2. wget http://www.sqlite.org/sqlite-amalgamation-3071502.zip
复制代码
  1. mv sqlite-amalgamation-3071502 subversion-1.7.10/sqlite-amalgamation
  2. cd subversion-1.7.10
  3. ./configure --prefix=/usr/local/svn/
  4. make && make install
复制代码
1.png
/etc/profile添加以下1行内容:
  1. export PATH=/usr/local/svn/bin:$PATH
  2. 安装完成后,查看svn版本信息是否已经安装,
  3. /usr/local/svn/bin/svn --version
复制代码
2.png
配置SVN服务器:
1) 建立版本库目录
  1. mkdir -p /data/svn/
  2. 建立svn版本库,关联puppet目录。
  3. svnadmin create /data/svn/puppet
复制代码
3.png
2) 修改版本库配置文件
Vi /data/svn/puppet/conf/svnserve.conf
  1. [general]
  2. # 使非授权用户无法访问
  3. anon-access = none
  4. # # 使授权用户有写权限
  5. auth-access = write
  6. # # 指明密码文件路径
  7. password-db = passwd
  8. # # 访问控制文件
  9. authz-db = authz
  10. # # 认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字。
  11. realm = /data/svn/puppet
复制代码
3) 配置用户及权限:
vi /data/svn/puppet/conf/passwd
  1. [users]
  2. wugk1 = 123456
  3. wugk2 = 123456
  4. vi /data/svn/puppet/conf/authz
  5. [/]
  6. wugk1 = rw
  7. wugk2 = rw
复制代码
4) 启动SVN服务
  1. /usr/local/svn/bin/svnserve -d -r /data/svn/ --listen-port=8001
  2. 查看本地8001端口有没有启动,netstat –ntl|grep 8001
  3. 可以在服务器使用SVN命令:
  4. svn co -r  "5"  svn://192.168.33.10:8001/puppet迁出代码。
  5. Svn commit提交代码,svn up更新代码。
复制代码
5) SVN+Apache整合
拷贝svn模块至apache modules模块目录:
  1. cp /root/svn/subversion-1.7.10/subversion/mod_dav_svn/.libs/mod_dav_svn.so /etc/httpd/modules/
  2. cp /root/svn/subversion-1.7.10/subversion/mod_authz_svn/.libs/mod_authz_svn.so /etc/httpd/modules/
复制代码
#vi /etc/httpd/conf/httpd.conf
末行添加如下内容:
  1. LoadModule dav_module modules/mod_dav.so
  2. LoadModule dav_svn_module modules/mod_dav_svn.so
复制代码
在配置文件最后添加:
  1. <Location /svn>
  2. DAV svn
  3. SVNPath /data/svn/puppet
  4. AuthType Basic
  5. AuthName "svn for project"
  6. AuthUserFile  /etc/httpd/conf/passwd
  7. AuthzSVNAccessFile /data/svn/puppet/conf/authz
  8. Satisfy all
  9. Require valid-user
  10. </Location>
复制代码
如下生成HTTP访问密钥:
  1. htpasswd -c /etc/httpd/conf/passwd wugk01
复制代码
重启apache服务:
  1. /etc/init.d/httpd restart
复制代码
11.png
22.png
最后将puppet数据导入到SVN版本库中:
  1. svn  import  /etc/puppet/  file:///data/svn/puppet/svn -m  'ver1'
复制代码
自此Puppet+SVN配置完毕,感谢大家的了解和学习,一起交流!
京峰Linux教育出品,更多文章请关注:www.jfedu.net
京峰Linux教育创始人之一,只为有梦想的人!任何事情只要去行动,就会收获结果!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|京峰教育,只为有梦想的人 ( 京ICP备15013173号 )

GMT+8, 2019-1-22 22:07 , Processed in 0.038901 second(s), 23 queries , Apc On.

快速回复 返回顶部 返回列表