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模块,模块目录为user,user类里有一个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用户已经没有

时间: 2024-10-09 01:08:43

puppet学习之使用git实现puppet版本控制的相关文章

puppet 学习记录

1. puppet之主动推送功能 使用puppet kick进行推送,但kick功能无法支撑大规模puppet agent同时并发请求,所以当agent规模较大时,请使用MCollective 1.1设置puppet agent所有节点的pupet.conf在[agent]增加"listen=true" 1.2开启防火墙8139端口 1.3在puppet agent的auth.conf的path /前加入如下配置 path /run method save auth any allow

Puppet学习笔记(CentOS6.3+Puppet3.01)

Puppet学习笔记(CentOS6.3+Puppet3.01) 技术 Add comments Oct262012 下了决心,好好学习puppet,周末专门去参加一个puppet的培训,难得朋友那么热心,组织大家一起去学习.我就提前做一下功课. 2012年10月29日:参加完两天的培训,深刻体会到puppet的强悍,当然讲Puppet的朋友,还是非常有经验,不只是puppet经验,还有讲课的经验,学习一个新东西的经验.一个最大的收获:官方的文档非常好,把puppet读完,你就差不多. Cont

Git管理Puppet打造统一配置管理

一.介绍 1)运维工作流程 大数据时代高伸缩性.容错性的特点给运维提出了更高的要求.系统管理不再是疲于安装操作系统.对系统参数进行逐一配置与优化.打补丁.安装软件.配置软件.添加某个服务的时代.为了提高效率.避免重复劳动.减少错误.积累知识,系统管理员都已开始做一些局部的自动化工作.但这些还远不够, 为了满足运维需求,需要统一配置管理. 2)自己实现自动化:git+puppet Puppet采用了非常简单的C/S架构,所有数据的交互都通过SSL进行,以保证安全. Git是一个开源的分布式版本控制

puppet学习—默认WEBRick安装DashBoard

DashBoard是puppet的控制台,用于显示puppet master和puppet agent的相关信息.本文以默认的WEBRick提供Web服务.DashBoard 安装在master.test.com.并且在客户端配置文件做如下配置 #vim /etc/puppet/puppet.conf [agent] report = true 一.安装依赖软件包 #rpm -ivh http://yum.puppetlabs.com/el/6Server/products/x86_64/pup

puppet学习总结之证书自动认证

puppet学习总结之证书自动认证 本文主要简单介绍puppet证书自动认证,由于手动认证比较繁琐.puppet安装这里不在说明,参考以往文档<puppet介绍及基于httpd实例部署>. 一.系统环境 系统平台: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  agen

puppet学习之四 编写模块

puppet学习之四 编写模块 这里不赘述编写的语法,只是简单记录下一个模块编写的简单流程 [[email protected] ~]# cd /etc/puppet/modules/ [[email protected] modules]# mkdir puppet [[email protected] modules]# cd puppet/ [[email protected] puppet]# mkdir files manifests templates #创建模块目录结构 [[ema

Puppet学习--基础安装和配置

0. 安装环境 客户端IP puppet_client.example.net(192.168.1.10) 服务端IP puppet_server.example.net(192.168.1.11) OS版本 CentOS release 6.6 x86_64 puppet版本 3.7.5 1.预安装配置 需要在服务端和客户端进行一些必要的预安装配置,因此本节下面的命令需要在客户端和服务端均要执行. (1) yum install ruby #安装ruby (2) 修改/etc/hosts,写入

puppet 学习文档

192.168.6.226 为服务端 192.168.6.223 为客户端 1,puppet 安装 服务端 关闭selinux iptables 添加hosts Vim /etc/hosts 127.0.0.1   localhost localhost.localdomain localhost4localhost4.localdomain4 web10 ::1         localhost localhost.localdomainlocalhost6 localhost6.local

puppet学习笔记之安装与配置

Server: ip=`ifconfig eth0 |grep "inet addr" |awk -F ":" '{print $2}'| awk '{print $1}'` hostname=`hostname` echo "$ip    $hostname" >> /etc/hosts yum -y install gcc ruby ntp /etc/init.d/ntpd stop ntpdate cn.pool.ntp.org