码迷,mamicode.com
首页 > 其他好文 > 详细

puppet学习之使用git实现puppet版本控制

时间:2015-07-23 00:57:46      阅读:296      评论:0      收藏:0      [点我收藏+]

标签:puppet学习之使用git实现puppet版本控制

puppet学习之使用git实现puppet版本控制

 

本文通过创建用户资源的例子介绍为多台agent同时添加用户账户、git仓库的创建、puppet加入git仓库、通过远程管理主机管理配置文件及文件版本的回滚处理。

一、系统环境

系统平台:Centos6.6_x86_64

主机规划:

192.168.115.21   puppet1.hnr.com  master

192.168.115.22   puppet2.hnr.com  agent

192.168.115.23   puppet3.hnr.com  agent

192.168.115.24   puppet4.hnr.com  远程管理主机

 

二、准备环境

实现agent端自动添加指定的用户

1.服务端上配置

创建user模块,模块目录为useruser类里有一个user资源目的是在agent主机上创建一个指定uid的用户

# mkdir -p/etc/puppet/modules/user/{manifests,templates,files}

# vi /etc/puppet/modules/user/manifests/init.pp

class user {

    user { ‘hnr‘:

            ensure => present,

            uid => ‘520‘,

    }

}

# mkdir  /etc/puppet/manifests/nodes

nodes目录下创建客户端文件

技术分享

 

技术分享

修改site.pp文件

# vi /etc/puppet/manifests/site.pp

import "nodes/*.pp"

2.客户端puppet2上运行如下命令

技术分享

此时,在客户端puppet2上已经创建好hnr用户

puppet默认30分钟会推送数据到客户端上,从日志上可以看出数据已经推送到puppet3上

技术分享

 

三、git实现puppet版本控制

puppet服务器上配置

1.安装配置git

# yum install git-daemon git

2.初始化puppet服务端git仓库

创建puppet repo目录

# mkdir -p /data/git/puppet.git

创建git仓库

# cd /data/git/puppet.git

# git --bare init

启动git,为了远程管理主机连接

# git-daemon --base-path=/data/git --detach --listen=0.0.0.0 --export-all --enable=receive-pack --enable=upload-pack --enable=upload-archive

技术分享

 

3.puppet加入git

puppet master上的/etc/puppet目录加入仓库

# cd /etc

仓库克隆过程目录下的数据会删除,所以事先将/etc/puppet目录下的数据备份到/tmp目录下

# mv puppet/* /tmp/puppet

# git clone git://127.0.0.1/puppet.git

# cd /etc/puppet

# cp /tmp/puppet/* .

# git add *

# git commit -m "Add puppet to git repo"

技术分享

# git push -u origin master

技术分享

仓库已创建好,包含了puppet的配置文件及清单

 

4.在管理主机创建副本,在/tmp目录下创建

# cd /tmp/

# git clone git://192.168.115.21/puppet.git

技术分享

至此,管理主机上git仓库副本已经创建完成

修改文件并提交,增加一个testpuppet用户指定shell/bin/sh

# vi /tmp/puppet/modules/user/manifests/init.pp

技术分享

修改完后提交

# git add /tmp/puppet/modules/user/manifests/init.pp

# git commit -m "add a testpuppet user"

技术分享

# git push

技术分享

5.puppet master/etc/puppet目录下

# git pull

技术分享

 

6.puppet2客户端上执行如下命令

技术分享

 

技术分享

至此,puppet2上已经创建好testpuppet用户

 

四、文件版本回滚

1.创建标签

# git tag -m ‘first release‘ 1.0.0

技术分享

2.修改文件,增加一个用户test2puppet

技术分享

# git add modules/user/manifests/init.pp

# git commit -m "add test2puppet user"

# git push

3.服务端上也执行了git pull,然后回滚至1.0.0版本

技术分享

此时,查看文件发现test2puppet用户已经没有

技术分享

本文出自 “linux之路” 博客,请务必保留此出处http://hnr520.blog.51cto.com/4484939/1677160

puppet学习之使用git实现puppet版本控制

标签:puppet学习之使用git实现puppet版本控制

原文地址:http://hnr520.blog.51cto.com/4484939/1677160

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!