CentOS下puppet安装
简介
Puppet是开源的基于Ruby的系统配置管理工具,puppet是一个C/S结构, 当然,这里的C可以有很多,因此,也可以说是一个星型结构. 所有的puppet客户端同一个服务器端的puppet通讯. 每个puppet客户端每半小时(可以设置)连接一次服务器端, 下载最新的配置文件,并且严格按照配置文件来配置服务器. 配置完成以后,puppet客户端可以反馈给服务器端一个消息. 如果出错,也会给服务器端反馈一个消息.
工作流程
(1)客户端puppetd调用facter,facter探测出主机的一些变量,例如主机名,内存大小,ip地址等。pupppetd 把这些信息通过ssl连接发送到服务器端;
(2)服务器端的puppetmaster 检测客户端的主机名,然后找到manifest里面对应的node配置, 并对该部分内容进行解析,facter送过来的信息可以作为变量处理,node牵涉到的代码才解析,其他没牵涉的代码不解析。解析分为几个阶段,语法检查,如果语法错误就报错。如果语法没错,就继续解析,解析的结果生成一个中间的“伪代码”,然后把伪代码发给客户端;
(3)客户端接收到“伪代码”,并且执行,客户端把执行结果发送给服务器;
(4)服务器端把客户端的执行结果写入日志。
准备
|
Master |
Agent |
|
|
系统 |
Centos 6.6 |
Centos 6.6 |
|
ip(自设) |
192.168.2.40 |
192.168.2.42 |
|
主机名(自设) |
master.kisspuppet.com |
agent.kisspuppt.com |
安装
Puppet 不在 CentOS 的基本源中,需要加入 PuppetLabs 提供的官方源:
wget http://yum.puppetlabs.com/el/6/products/x86_64/puppetlabs-release-6-1.noarch.rpm yum install puppetlabs-release--.noarch.rpm yum update
Master端
yum install -y ruby facter puppet-server # 启动 service puppet start service puppetmaster start # 设置开机自启动 chkconfig puppet on chkconfig puppetmaster on
Agent端
yum install -y ruby facter puppet 启动 service puppet start 设置开机自启动 chkconfig puppet on 配置 vim /etc/puppet/puppet.conf 添加下面一行 server=master.kisspuppet.com 重启puppet service puppet restart
Agent申请证书
Master自动签发证书设置
设置master自动签发所有的证书,我们只需要在/etc/puppet目录下创建 autosign.conf文件。(不需要修改 /etc/puppet/puppet.conf文件,因为我默认的autosign.conf 文件的位置没有修改)
[ root @ master ~ ] # cat > / etc / puppet / autosign . conf < < EOF > * . redking . com > EOF [ root @ master ~ ] # service puppetmaster restart Stopping puppetmaster: [ OK ] Starting puppetmaster: [ OK ] [ root @ master ~ ] #
这样就会对所有来自fisteam2.com的机器的请求,都自动签名。Agent需要向服务器端发出请求, 让服务器对客户端进行管理. 这其实是一个证书签发的过程. 第一次运行 puppet 客户端的时候会生成一个 SSL 证书并指定发给 Puppet 服务端, 服务器端如果同意管理客户端,就会对这个证书进行签发,可以用这个命令来签发证书,由于我们已经在客户端设置了server地址,因此不需要跟服务端地址
Agent向Master请求认证
输入下列命令就可以申请证书了
[ root @ agent1 ~ ] # puppet agent --test
由于我配置的自动签发证书,所以直接就签发了,在服务端执行下列命令进行查看是否认证成功。
[ root @ master ~ ] # puppet cert list --all
测试
现在可以在服务端写个小例子来测试一下。这个例子作用很简单,用来在客户端的 /tmp 目录下新建一个 helloworld.txt 文件,内容为 hello, world. 在Master端编写代码:
# vi /etc/puppet/manifests/site.pp
node default {
file {
"/tmp/helloworld.txt": content => "hello, world";
}
}
在Agent端上执行 puppet,运行成功后会在 /tmp 看到新生成的 helloworld.txt:
$ puppet agent --test --server=master.vpsee.com
warning: peer certificate won't be verified in this SSL session
info: Caching certificate for client.vpsee.com
info: Caching certificate_revocation_list for ca
info: Caching catalog for client.vpsee.com
info: Applying configuration version ''
notice: /Stage[main]//Node[default]/File[/tmp/helloworld.txt]/ensure: defined content as '{md5}e4d7f1b4ed2e42d15898f4b27b019da4'
info: Creating state file /home/vpsee/.puppet/var/state/state.yaml
notice: Finished catalog run in 0.03 seconds
查看Agent端
$ cat /tmp/helloworld.txt hello, world
这样就说明puppet能够正常运行。
CentOS下puppet安装的更多相关文章
- CentOS下一键安装Openstack
CentOS下一键安装Openstack 系统环境:Oracle VirtualBox 4.38CentOS-6.5-x86_64-bin-DVD1.iso 安装前需要修改 /etc/hosts文件, ...
- centos下编译安装lnmp
centos下编译安装lnmp 本文以centos为背景在其中编译安装nginx搭建lnmp环境. 编译安装nginx时,需要事先安装 开发包组"Development Tools" ...
- mac和centos下git安装
mac下面的git安装,这篇文章写的很详细了http://www.cnblogs.com/ccdev/archive/2012/09/12/2682098.html 谈谈centos下的安装.我用的是 ...
- centOS下yum安装配置samba
centOS下yum安装配置samba 2010-03-29 15:46:00 标签:samba yum centOS 安装 休闲 注意:本文的原则是只将文件共享应用于内网服务器,并让将要被共享的目 ...
- centos下apache安装后无法访问
2013.11.28遇到的问题: -------------------------------------- 一.centos下apache安装后无法访问 得查一下防火墙的问题 iptables添加 ...
- centos下yum安装crontab+mysql自动备份
参考博文: centos下yum安装crontab yum install vixie-cron crontabs //安装 chkconfig crond on ...
- CentOS下Mysql安装教程
CentOS下Mysql安装教程 本人学习Linux时使用的是CentOs5.5版本,在该环境中,Mysql的安装方法有很多种,下面我只讲我这次成功了的方法,作为一个记录,供大家参考,同时给自己做一个 ...
- CentOS下Docker安装
CentOS下Docker安装 1.安装: #sudo yum install docker 2.启动并加入开机启动: A.#sudo systemctl start docker B.#sudo s ...
- (转载)Centos下Elasticsearch安装详细教程
原文地址:http://www.cnblogs.com/sunny1009/articles/7874251.html Centos下Elasticsearch安装详细教程 1.Elasticsear ...
随机推荐
- ATL编程初级教程(图文事例)(VC6)
http://blog.csdn.net/titilima/archive/2004/07/18/44273.aspx 介绍 本教程的目的是告诉你如何使用ATL创建一个COM服务器,并使用Visual ...
- vs2017激活码
Visual Studio 2017(VS2017) 企业版 Enterprise 注册码:NJVYC-BMHX2-G77MM-4XJMR-6Q8QF Visual Studio 2017(VS201 ...
- 微信小程序 数据库指引 前端操纵数据库失败
把注释解开后,点击添加显示失败了 看了下注解,发现是数据库权限问题, 修改一下成第一个,然后点击又失败了,多点击几下,就会成功! 哦 别忘了时刻 ctrl +s 保存,如果你习惯了idea 自动保存的 ...
- Tomcat生成的session持久化到MySQL
Telling Tomcat to save session records in MySQL 此部分内容摘自 MySQL cookbook 3th.具体内容不做翻译,哈哈,懒 The default ...
- SQL动态长度行列转置
一,案列问题描述: 某销售系统中,注册的用户会在随后的月份中购物下单,需要按月统计注册的用户中各个月下单的金额.源数据表如下: FM::注册月份,CM: 下单月份, AMT:下单金额 期望得到如下统计 ...
- JavaScript创建对象的方式
一.工厂模式 工厂模式是软件工程领域一种广为人知的设计模式,这种模式抽象了创建具体对象的过程. 考虑到在 ECMAScript 中无法创建类,开发人员就发明了一种函数,用函数来封装以特定接口创建对象的 ...
- django ----视图和路由
django的view(视图) 一个视图函数,简称视图,是一个简单python函数,他接受web请求并且返回一个响应 响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者 ...
- Python学习笔记-chapter1
我自幼时自觉聪慧,但实缺恒力,遂二十余岁却一事无成,亦无一技傍身,实属惭愧. 少时便仰慕于新兴世界之IT技术,然因惰性,未曾一日习学. 今陷此困境,聊以度日,反无端生出些许时间,便志要潜心研学,不求能 ...
- 我的代码-flask
import pickleimport flaskimport pandas as pdimport jsonfrom flask import Flaskfrom flask import requ ...
- Centos6.5下使用LAMP搭建discuz论坛(编译安装 PS :自学中 写的不好请见谅)
wget http://mirror.bit.edu.cn/apache/httpd/httpd-2.2.27.tar.gz 下载Apache软件包 wget http://downloads.my ...