Puppet的安装和初配置

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介:

一、前言:

Puppet是Puppet Labs基于ruby语言开发的自动化系统配置工具,可以以C/S模式或独立模式运行,支持对所有UNIX及类UNIX系统的批量配置和管理,最新版本也开始支持对Windows操作系统有限的一些管理。

Puppet适用于服务器管理的整个过程,比如初始安装、配置、更新以及系统下线。

Puppet原理:

Puppet的工作细节分成如下几个步骤:  

1、客户端puppetd调用facter,facter会探测出这台主机的一些变量如主机名、内存大小、IP地址等。然后puppetd把这些信息发送到服务端。 

2、服务器端的puppetmaster检测到客户端的主机名,然后会到manifest里面对应的node配置,然后对这段内容进行解析,facter送过来的信息可以作为变量进行处理的,node牵涉到的代码才解析,其它的代码不解析,解析分几个过程:语法检查、然后会生成一个中间的伪代码,然后再把伪代码发给客户机。  

3、客户端接收到伪代码之后就会执行,客户端再把执行结果发送给服务器。  

4、服务器再把客户端的执行结果写入日志。

二、安装:

安装 puppet-Server:yum install puppet,puppet-server  

首先在服务器端和客户端配置好hostname,因为puppet是基于hostname来检测的,同时都要修改hosts文件:  

修改主机名的命令:

cat /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=master

vim /etc/hosts

192.168.159.151    master.com 

192.168.159.120    slave.com

Puppet 需要 Ruby 的支持,如果要查看命令行帮助的话需要额外 ruby-rdoc 这个软件包:    

yum install puppet-server -y 【这一步为默认安装ruby ruby-libs ruby-rdoc等软件包】  

/etc/init.d/puppetmaster start  

关闭 iptables,关闭selinux  

iptables  -F  

sed -i ‘/SELINUX/S/enforce/disabled/’ /etc/selinux/config

需在puppet.conf中添加一个条目,certname,配置项certname指定了puppet master的名字,如下
[master]
certname=master.com
添加certname配置的目录有两个:它会使证书相关的问题解决起来更容易,解决了在目前许多linux主机上都存在的Ruby SSL代码错误,这个错误导致了我们需要手动指定puppet master的SSL证书使用的名字。同时为我们的puppet创建一个DNS别名,添加到hosts和DNS配置中。
接下来我们需要添加site.pp,它包含了我们想要管理的配置的基本信息。
site.pp文件告诉puppet去哪里寻找并载入指定的客户端配置,这个文件放在/etc/puppet/manifests中,首先创建site.pp,是因为没有它,puppet将拒绝启动。
启动我们的puppetmaster
#systemctl start puppetmaster

添加字段
[main]
server=master.com
之后启动服务
#systemctl start puppet

三、证书申请:

Puppet客户端与服务器端是通过SSL隧道通信的,客户端安装完成后,需要向服务器端申请证书:  

1. 首次连接服务器端会发起证书申请,在客户端执行命令如下:  

puppet agent --server  master.com  --no-daemonize -v -d --noop --test

执行上面的命令,客户端将生成证书,并且把证书签名请求发到服务器端。 

2. 在服务器端可以用puppet cert –list命令查看到申请证书的客户端主机名。  

3. puppet cert  -s命令可以为特定的主机颁发证书,puppet cert –s and –a 表示给所有的主机颁发证书  

例如:puppet cert –s slave.com 为客户端颁发证书。  

四、 验证puppet配置:  

在服务端写个例子测试一下。这个例子作用很简单,用来在客户端的/tmp目录下新建一个 test.txt 文件,内容为:hello,test!在服务端编写代码:【服务器端不需要新建这个文件】  

vim /etc/puppet/manifests/site.pp  

node default {  

file {  

"/tmp/test.txt": content => "helo,test!";  

 }  

}

master针对于slave.puppet.com的配置完成了,然后去agent上执行。

五、客户端测试:
#puppet agent --test --server master.com
此时,客户端将会从服务器下载并执行,在/tmp目录下生成叫做1.txt的文件。

最后查看cat /tmp/test.txt

helo,test!

此时puppet服务器端和客户端安装完毕。



本文转自 优果馥思 51CTO博客,原文链接:http://blog.51cto.com/youguofusi/2053034

相关文章
|
1月前
|
运维 Linux Apache
Puppet 作为一款强大的自动化运维工具,被广泛应用于配置管理领域。通过定义资源的状态和关系,Puppet 能够确保系统始终处于期望的配置状态。
Puppet 作为一款强大的自动化运维工具,被广泛应用于配置管理领域。通过定义资源的状态和关系,Puppet 能够确保系统始终处于期望的配置状态。
60 3
|
关系型数据库 网络安全 PostgreSQL
puppet连载14:安装puppetdb
yum install puppetdb puppetdb-terminus -y service puppetdb start vi /etc/puppet/puppet.
1065 0
|
网络协议 应用服务中间件 Shell
puppet连载12:linux安装nginx、openresty
服务端在/puppet/soft 里建nginx1102setup.sh,内容: !/bin/bash yum -y install wget libtool expat-devel gcc gcc-c++ glibc automake autocon...
930 0
|
Java 应用服务中间件 Linux
puppet连载九:linux安装jdk、tomcat模块
安装jdk1.8.0_91和tomcat8.0.36 mkdir -p /etc/puppet/modules/linuxjdktomcat/{manifests,templates,files} vi /etc/puppet/modules/linuxjdktomcat/manifests/init.
1078 0
|
MySQL 关系型数据库 Linux
puppet连载10:linux安装percona57/56/55、sysbench、tpcc模块
在服务端/puppet/soft下建my.cnf,内容为https://www.jianshu.com/p/c63fc6c71279 在服务端/puppet/soft下建changemysql57pass.
1075 0
|
关系型数据库 MySQL Linux
puppet连载四:服务端安装dashboard
curl -sSL https://rvm.io/mpapis.asc | gpg2 --import - curl -L get.rvm.io | bash -s stable source /etc/profile.
1265 0
|
Linux 开发工具 git
puppet连载七:linux基础组件安装模块
linux基础组件安装模块linuxbaseinstall 更换源,安装gcc gcc-c++ glibc-devel make ncurses-devel openssl-devel autoconf git mkdir -p /etc/puppet...
1074 0
|
网络安全 Apache Ruby
puppet连载三:服务端安装http、passenger
服务端安装插件: yum install -y ruby-devel ruby-libs rubygems libcurl-devel httpd httpd-devel apr-util-devel apr-devel mod_ssl gcc-c++...
1067 0
|
消息中间件
puppet 连载二:服务端和客户端安装(ActiveMQ、MCollective)
-------------------------------------服务端----------------------------------- 1、jdk安装 vi /etc/profile export JAVA_HOME=/usr/loca...
1149 0
|
网络协议 Apache
puppet 连载一:服务端和客户端安装(puppet、svn)
1、mkdir /puppet mkdir /puppet/soft 2、服务端安装dnsmasq:yum install -y dnsmasq cp /etc/dnsmasq.
1418 0
下一篇
无影云桌面