Chinaunix首页 | 论坛 | 博客
  • 博客访问: 320606
  • 博文数量: 15
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 179
  • 用 户 组: 普通用户
  • 注册时间: 2013-09-09 18:16
文章分类

全部博文(15)

文章存档

2019年(1)

2018年(1)

2015年(7)

2013年(6)

我的朋友

分类: 系统运维

2015-05-14 18:00:39

Puppet概述

Puppet是一个用来管理计算机系统配置的开源框架和工具集合。可以用来管理一台主机的整个生命周期,从初始化安装,升级,维护以及最后的下架。

Puppet简单模型:部署,配置语言及资源抽象,事务层。

部署通常是C/S架构,服务端被称为Master,客户端软件被称为agent,主机本身则被称为一个节点。

资源:是Puppet最基础的元素。资源可以是文件,服务,软件包,自定义脚本等。 资源的结构:
类型 { 标题:
    属性 => 值
}
资源抽象:每个资源有很多提供者,Puppet根据Facter返回的值来选择合适的提供者。

Puppet事务层就是它的引擎。负责的工作有:

  1. 解释和编译
  2. 将编译好的配置同步到agent
  3. 在agent上应用配置
  4. 向master报告运行结果
Puppet的事务层没有回滚功能,但是你可以用noop来测试配置。

Puppet安装

CentOS:
yum install ruby ruby-libs ruby-shadow
yum -Uvh
master节点:
yum install puppet puppet-server facter
agent节点:
yum install puppet facter

Puppet配置
配置文件:/etc/puppet.conf
如果文件不存在,用puppetmasterd --genconfig > puppet.conf 生成。
puppet.conf构造和ini格式的配置文件非常相似。[agent]段用于配置Puppet agent, [master]段用于配置Puppet master。
还有个[main]段存放全局配置,puppet的所有组件遵循[main]段的配置。

site.pp文件
这个文件告诉你去哪里寻找并载入指定的客户端配置。

服务器端配置好并对客户端认证过后,就可以在对客户端进行部署了。
手动认证过程:
master:
启动服务 /etc/init.d/puppetmaster start
agent:
puppet agent --test
master:
puppet cert --sign --all   对所有等待的证书进行签名
也可以把all换成对应的节点
puppet cert --list --all
可以看到签名过的节点前有个"+"

配置节点

单个节点的定义:
node puppet.example.com{
}

处理类似的节点 node 'web1.example.com', 'web2.example.com', 'web1.example.com' {}
或者 node /^web\d+\.example\.com$/ {}

知道默认节点 node default {}

节点继承 node base {}
node 'web example.com' inherits base {}

模块的基本构成例

以sudo为例说明
sudo/
sudo/manifests
sudo/manifests/init.pp
sudo/files

sudo/templates
在init.pp中会有一个和模块名同名的类。class sudo {}.
用include将模块应用到某个节点。node 'puppet.example.com' { include sudo}

模板测试:
erb -x -T '-' mytemplate.erb ruby -c

阅读(1405) | 评论(0) | 转发(0) |
0

上一篇:openstack dashboard解析

下一篇:k8s容器IO限速

给主人留下些什么吧!~~