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