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 ...
随机推荐
- Delphi Redis Client
https://github.com/danieleteti/delphiredisclient
- Red Hat Enterprise 7.5 安装后无法进入图形界面 This system is not registered with an entitlement server. You can use subscription-manager to register.
This system is not registered with an entitlement server. You can use subscription-manager to regist ...
- CSS效果:checkbox点选效果
HTML: <html lang="en"> <head> <meta charset="UTF-8"> <meta ...
- [转] Springboot的数据库操作
转载自:https://www.cnblogs.com/juncaoit/p/7789034.html springBoot的数据库操作 一:操作数据库起步 1.Spring-Data-Jpa JPA ...
- Codeforces Hello 2018 E题Logical Expression dp+最短路 好题
j题目链接: http://codeforces.com/contest/913/problem/E 题意: 给你x,y,z三个变量,与& 或| 非! 括号() 四种运算符,规定括 ...
- storm入门基础实例(无可靠性保证实例)
本实例为入门篇无可靠性保证实例,关于storm的介绍,以及一些术语名词等,可以参考Storm介绍(一).Storm介绍(二). 本案例是基于storm0.9.3版本 1.案例结构 案例:Word Co ...
- ExcelUploadUtil
package com.rscode.credits.util; import java.io.File; import java.io.FileInputStream; import java.io ...
- WEB测试专题之测试分类
虽然说是一个功能测试就概括了,但是其实这里面还别有洞天,大概区分为下面几个小类别:WEB测试专题之web测试分类一(1)链接测试链接是Web应用系统的一个主要特征,它是在页面之间切换和指导用户去一些不 ...
- VS Code引用 vue/cli
npm i @vue/cli -g 引用cli脚手架 3.0版本 下载好后 找个空文件夹 vue create myvue 创建vue项目 myvue是自己项目名称 Your connec ...
- 每个月总有那么几天!!!!XML解析
1. 介绍 1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次结构组织的节点或信息片断的集合.这个层次结构允许 ...