Puppet安装及部署
本篇博客主要介绍Puppet的安装部署,后续会更新其他相关内容
一、简介
二、环境介绍
三、安装Puppet
四、配置Puppet-dashboard
五、配置Puppet Kick
一、简介
Puppet是一个基于Ruby语言所研发的一款开源软件,Puppet是一种Linux、Unix、windows平台的集中配置管理系统,使用自有的Puppet描述语言,可管理配置文件、用户、cron任务、软件包、系统服务等。Puppet把这些系统实体称之为资源,Puppet的设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系
Puppet采用C/S星状的结构,所有的客户端和一个或几个服务器交互。Puppet通常可以用来管理一台主机的整个生命周期:从初始化到安装、升级、维护以及后续将服务迁移并下架。每个客户端周期的(默认半个小时)向服务器发送请求,获得其最新的配置信息,保证和该配置信息同步。每个Puppet客户端每半小时(可以设置)连接一次服务器端, 下载最新的配置文件,并且严格按照配置文件来配置服务器. 配置完成以后,Puppet客户端可以反馈给服务器端一个消息. 如果出错,也会给服务器端反馈一个消息...
二、环境介绍
系统版本:Centos-6.4-x86_64
Puppet版本:puppet-2.7.23 下载地址
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
主机规划------------------------------------------------------------------------######Master主机[root@master ~]# hostnamemaster.allen.com[root@master ~]# cat /etc/hosts172.16.14.1 master.allen.com172.16.14.2 client.allen.com[root@master ~]# ifconfig eth0 | awk '/inet addr:/{print $1,$2}'inet addr:172.16.14.1------------------------------------------------------------------------######Client主机[root@client ~]# hostnameclient.allen.com[root@client ~]# cat /etc/hosts172.16.14.1 master.allen.com172.16.14.2 client.allen.com[root@client ~]# ifconfig eth0 | awk '/inet addr:/{print $1,$2}'inet addr:172.16.14.2 |
三、安装Puppet
安装前请确认SELinux与Iptables已经处于关闭状态
1、配置好YUM源;并做时间同步
|
1
2
|
# wget http://mirrors.yun-idc.com/epel/6/i386/epel-release-6-8.noarch.rpm# rpm -ivh epel-release-6-8.noarch.rpm |
2、安装Puppet软件
|
1
2
3
4
5
6
7
|
注释:以下软件压缩成一个软件包,下载解压出来即可获得所有软件------------------------------------------------------------------------######在Master主机上安装[root@master ~]# yum -y --nogpgcheck localinstall puppet-server-2.7.23-1.el6.noarch.rpm facter-1.7.3-1.el6.x86_64.rpm puppet-2.7.23-1.el6.noarch.rpm------------------------------------------------------------------------######在Client主机上安装[root@client ~]# yum -y --nogpgcheck localinstall facter-1.7.3-1.el6.x86_64.rpm puppet-2.7.23-1.el6.noarch.rpm |
3、修改Master主机上的主配置文件
|
1
2
3
4
|
[root@master ~]# puppet master --genconfig > /etc/puppet/puppet.conf #重新生成配置文件[root@master ~]# vim /etc/puppet/puppet.conf #修改如下两项配置rundir = /var/run/puppetpidfile = $rundir/master.pid |
4、启动Puppet服务端进程

|
1
2
3
|
注释:按"Ctrl+C"组合键结束上面启动的进程,以守护进程方式启动并设置为开机自启动[root@master ~]# service puppetmaster start[root@master ~]# chkconfig puppetmaster on |
5、修改Client主机上的主配置文件
|
1
2
|
注释:在[main]段添加如下配置server = master.allen.com #指定puppet服务器主机名,要能正常解析 |
6、启动Puppet客户端服务

7、在第6个步骤中客户端创建过证书申请后,此时可以在Puppet服务器端查看并签署证书

如果服务器相当多的话,这样签署证书效率相当的低,而且还会签证书签到手抽筋;有什么方法可以让服务器自动签署证书呢?答案是当然有了...
|
1
2
|
注释:在服务器端Puppet配置文件目录下添加如下文件并写入如下信息;表示服务器将会自会签署来自"allen.com"这个域中主机的所有证书申请# echo "*.allen.com" > /etc/puppet/autosign.conf |
8、此时,客户端会显示证书成功签署并成功启动服务

9、再次测试Puppet客户端连接服务器;然后启动Puppet客户端服务


10、测试客户端是否能成功从服务端获取到文件
Master主机:
|
1
2
3
4
|
[root@master ~]# vim /etc/puppet/manifests/site.ppfile {"/tmp/puppet.txt": content => "puppet test\n",} |
Client主机:
|
1
2
3
|
[root@client ~]# puppet agent --server=master.allen.com --no-daemonize --verbose --test[root@client ~]# service puppet restart注释:执行以上两条命令任务一条即可;这里使用第一条便于查看是否同步成功 |

到此Puppet的基本安装与测试已完成
四、配置Puppet-dashboard
1、安装数据库;这里为了方便就安装在Master主机上了
|
1
2
3
4
5
6
7
8
9
|
[root@master ~]# yum -y install mysql-server[root@master ~]# service mysqld start[root@master ~]# mysqlmysql> create database dashboard character set utf8;mysql> grant all privileges on dashboard.* to 'dashboard'@'172.16.%.%' identified by'password';mysql> flush privileges;------------------------------------------------------------------------注释:执行授权用户命令上面或下面其中一条即可mysql> grant all privileges on dashboard.* to 'dashboard'@'master.allen.com' identified by'password'; |
2、安装其它的工具
|
1
|
[root@master ~]# gem install rake |
3、在Master主机上安装puppet-dashboard
|
1
|
[root@master ~]# yum -y --nogpgcheck localinstall puppet-dashboard-1.2.23-1.el6.noarch.rpm |
4、导入Dashboard所依赖的数据库
|
1
2
3
4
5
6
7
8
|
[root@master ~]# cd /usr/share/puppet-dashboard #切换到dashboard安装目录[root@master ~]# rake RAILS_ENV=production db:migrate #导入数据库rake aborted!No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb, Rakefile.rb)(See full trace by running task with --trace)[root@master puppet-dashboard]# rake gems:refresh_specs #如果出现如上错误;执行此命令然后重新导入数据库即可[root@master puppet-dashboard]# rake RAILS_ENV=production db:migrate------------------------------------------------------------------------ |
5、修改"database.yml"文件中的"production"段如下:
|
1
2
3
4
5
6
7
8
|
[root@master ~]# vim /usr/share/puppet-dashboard/config/database.ymlproduction: host : 172.16.14.1 database: dashboard username: dashboard password: password encoding: utf8 adapter: mysql |
6、测试"Dashboard"服务是否工作正常
|
1
2
3
4
|
######测试dashboard服务是否能正常启动;出现如下信息说明已经成功,然后按"Crtl+C"组合键结束进程[root@master ~]# /usr/share/puppet-dashboard/script/server -e production=> Booting WEBrick=> Rails 2.3.17 application starting on http://0.0.0.0:3000 |
7、修改Master主机的"puppet.conf"文件如下:
|
1
2
3
4
|
[root@master ~]# vim /etc/puppet/puppet.conf[master] #在"master"段修改或添加如下内容reports = store, httpreporturl = http://172.16.14.1:3000/reports/upload |
8、修改Client主机的"puppet.conf"文件如下:
|
1
2
3
|
[root@client ~]# vim /etc/puppet/puppet.conf[agent] #在"agent"段添加如下内容 report = true |
9、启动服务器端"puppet-dashboard"服务并重启"puppetmaster"服务;然后重启客户端"puppet"服务使配置生效
|
1
2
3
4
5
6
7
8
|
######在服务端执行[root@master ~]# /usr/share/puppet-dashboard/script/server -e production -d[root@master ~]# ss -tanlp | grep 3000LISTEN 0 5 *:3000 *:* users:(("ruby",30611,5))[root@master ~]# service puppetmaster restart------------------------------------------------------------------------######在客户端执行[root@client ~]# service puppet restart |
10、访问dashboard服务,验证是否正常

五、配置Puppet Kick
简介:
Puppet客户端默认每30分钟跟服务器通讯一次,但是有时,我们希望服务端能给客户端紧急推送一些任务,于是就有了Puppet kick(Puppet 2.6以前叫 puppetrun)
1、编辑客户端主配置文件
|
1
2
3
|
[root@client ~]# vim /etc/puppet/puppet.conflisten = true注释:在"[agent]"段添加如上内容 |
2、编辑或新建文件"/etc/puppet/namespaceauth.conf"
|
1
2
3
4
|
[root@client ~]# vim /etc/puppet/namespaceauth.conf[puppetrunner]allow *.allen.com注释:添加如上内容 |
3、编辑文件"/etc/puppet/auth.conf"
|
1
2
3
4
5
6
7
8
9
|
[root@client ~]# vim /etc/puppet/auth.confpath /runmethod saveauth anyallow master.allen.com# this one is not stricly necessary, but it has the merit# to show the default policy which is deny everything else注释:如上在这段注释上面添加如上内容[root@client ~]# service puppet restart #重启服务使配置生效 |
4、在服务端修改前面创建的"site.pp"文件
|
1
2
3
4
|
[root@master ~]# vim /etc/puppet/manifests/site.ppfile {"/tmp/allen.txt": content => "ALLEN TEST\n",} |
5、在服务端执行推送命令测试是否能成功推送
|
1
2
3
|
# puppet kick -p 10 --host client.allen.com# puppetrun -p 10 --host client.allen.com注释:在服务端执行如上两条命令任意一个即可;这里使用第一条命令 |

6、在客户端验证

到此;Puppet的安装部署已全部完成,后续会更新Puppet的其他相关内容;如:file,service,exec等管理模块;敬请关注...
Puppet安装及部署的更多相关文章
- puppet实现主从部署各种软件实战参考模型
puppet实现主从部署各种软件实战参考模型 实验要求: 1.我将准备三个节点 node2 , node3 , node4 2.我们想让节点node3部署ntp,nginx ;节点node ...
- Windows Server 2012 虚拟化实战:SCVMM的安装和部署
本篇大概介绍一下在Windows Server 2012 R2上安装和部署SCVMM的过程及其注意事项.下图是我们数据中心SCVMM的基本架构,其中 SCVMM Database 是用于存储了所有配置 ...
- Linux下Redis的安装和部署
一.Redis介绍 Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相对更多 ...
- 他山之石——vs2013 安装与部署及程序打包
C#打包需要这个:InstallShield 2013 Limited Edition for Visual Studio .下载地址: InstallShield 2013 Limited Edi ...
- 阿里云服务器Linux CentOS安装配置(六)resin多端口配置、安装、部署
阿里云服务器Linux CentOS安装配置(六)resin多端口配置.安装.部署 1.下载resin包 http://125.39.66.162/files/2183000003E08525/cau ...
- Kafka的安装和部署及测试
1.简介 大数据分析处理平台包括数据的接入,数据的存储,数据的处理,以及后面的展示或者应用.今天我们连说一下数据的接入,数据的接入目前比较普遍的是采用kafka将前面的数据通过消息的方式,以数据流的形 ...
- Redis的安装与部署
为了解决公司产品数据增长过快,初始化太耗费时间的问题,决定使用redis作为缓存服务器. Windows下的安装与部署: 可以直接参考这个文章,我也是实验了一遍:http://www.runoob.c ...
- Office web app server2013详细的安装和部署
转自:http://blog.csdn.net/u011355311/article/details/9360293 SharePoint 2013集成Office web apps server20 ...
- Lucene/Solr搜索引擎开发笔记 - 第2章 Solr安装与部署(Tomcat篇)
一.安装环境 图1-1 Tomcat和Solr的版本 我本机目前使用的Java版本为JDK 1.8,因为Solr 4.9要求Java版本为1.7+,请注意. 二.Solr部署到Tomcat流程 图1- ...
随机推荐
- JS 之JSON
JSON是Javascript中的对象,其简单理解为下:
- NSScanner知悉 (转)
http://blog.csdn.net/likendsl/article/details/7974761 NSScanner是一个类,用于在字符串中扫描指定的字符,尤其是把它们翻译/转换为数字和别的 ...
- volatile关键字并不能作为线程计数器
在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉. Java语言是支持多线程的,为了解决线程并发的问题,在语 ...
- Java中如何获取spring中配置文件.properties中属性值
通过spring配置properties文件 1 2 3 4 5 6 7 8 9 <bean id="propertyConfigurer" class="co ...
- HTML5 十大新特性(八)——Web Worker
由于js是单线程的,所以H5添加了这个叫做webWorker的概念,允许js创建多个线程,但是子线程完全受主线程控制,且不能操作DOM,从而来处理一些比较耗时的操作. 那么如何创建一个子线程呢?通过这 ...
- centos7装机和初步运维
1.装机-制作U盘启动盘 CentOS7是一个比较新的版本.在服务器领域用得比较多.因为前安装软件可能没有Ubuntu那样方便,所以桌面领域好像不是很多. https://www.centos.org ...
- javascript 字符串总结
match():查找字符串中特定的字符,如果找到这个字符,则返回这个字符: indexOf():定位这个字符串中某一个指定的字符首次出现的位置: sub():把字符串显示为下标: sup():把字符串 ...
- c#数据绑定(3)——数据转化为信息
文/嶽永鹏 本文主要在数据绑定1和2中新增了DataSet对象,练习了如何在DataSet中添加表.关系和约束,同时本文也简要的介绍了如何将数据转化为信息. 目标界面: XAML代码: <Gri ...
- django服务器配置
服务器配置是Ubuntu14.04 64位OS ubuntu14.04默认是安装好了python2.7版本不用自己安装了. 先更新下源 sudo apt-get update 第一步先安装pip su ...
- Eclipse 创建maven项目
新建maven project