传智播客旗下技术交流社区北京校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 庭院深深深几许 版主   /  2019-1-24 16:58  /  134 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1)安装环境:

两台ubuntu 12.04 的实例

server(master): ?ip:192.168.254.234 ?host:vm234.com

client: ? ? ? ? ? ? ? ? ip:192.168.254.235 ? host:vm235.com

2)安装前的准备:

请务必先给各自的主机的/etc/hosts 添加上hostname和ip,在服务节点,添加自己的hostname和所有client节点的host和ip;在client节点,只需添加server和自己的hostname和ip;这是因为在server的日志记录里都是以hostname来区别不同的节点。

server是通过端口8140(由ruby占有)与client通信的,所以请确认设置防火墙,开放此端口。

为了各个节点能协同的运行服务,必须统一各个节点的时间,请给各个节点装ntp。以server节点的时间为标准。

3)安装:

在server节点安装?puppetmaster:

#sudo apt-get install puppetmaster

可通过脚本?/etc/init.d/puppetmaster 来控制状态(start,restart,stop,status)

在client节点安装 puppet:

#sudo apt-get install puppet?

注:如系统未安装运行puppet所需的ruby环境,上述两条指令会自动安装。

然后配置文件 /etc/puppet/puppet.conf。这是puppet的主要配置文件。

在server节点,打开/etc/puppet/puppet.conf后,在[master]下添加当前机器的certname

[master]

certname=vm234.com

保存后重启服务:

#service puppetmaster restart?

在client节点,打开/etc/puppet/puppet.conf后,添加:

[agent]

certname=vm235.com

server=vm234.com

report=true

#pluginsync=true

注:当有插件需要同步的时候,再取消pluginsync的注释。

保存退出后,再打开?/etc/default/puppet , 将START=on 改为 START=yes。将puppet设置为开机默认启动项。这是puppet在client端强制要求的。

然后重启puppet服务

#service puppet restart

4)服务连接:

首先在路径?/etc/puppet/manifests/ 下创建 site.pp

然后是client端向server发起认证的请求:

#puppet agent --server=vm234.com --no-daemonize --verbose

然后在server节点列出当前请求认证者的hostname

#puppet cert --list

结果是:

"vm235.com" (一长串密钥的指纹)

然后server接受特定client的请求:

#puppet cert --sign ?vm235.com

或者是接受所有client的请求:

#puppet cert --sign --all?

notice: Signed certificate request for vm235.com

notice: Removing file Puppet::SSL::CertificateRequest vm235.com at '/var/lib/puppet/ssl/ca/requests/vm235.com.pem'

认证后,client的公钥放在文件夹?/var/lib/puppet/ssl/ca/signed/

然后在client端显示:

info: Caching certificate for vm235.com

notice: Starting Puppet client version 2.7.11

至此认证请求完毕,可暂停client的agent ,即按 ctrl + c;也可等它自行结束,就是时间可能会久点。但是一定要出现?notice: Starting Puppet client version 2.7.11 的信息确认认证成功后才可暂停。

可用下面小段代码测试是puppet是否配置成功:

在?/etc/puppet/manifests/site.pp 输入

node 'vm235.com'{

file{

"/root/helloWorld":

content=>"hello world\n" ,

mode => 0644;

}

}

保存后。在client端输入

#puppet agent --test

将在后台运行的 agent 放到终端显示,显示的信息如下:

info: Caching catalog for vm235.com

info: Applying configuration version '1374052357'

notice: /Stage[main]//Node[vm235.com]/File[/root/helloWorld]/ensure: defined content as '{md5}6f5902ac237024bdd0c176cb93063dc4'

notice: Finished catalog run in 0.03 seconds

这时,在如在client生成文件?/root/helloWorld,文件的内容是hello world,则证明puppet已经能正常工作了。

5)常用小技巧:

在server节点的路径?/var/lib/puppet/ssl/ca/signed 可查看server目前已经接受的client的公钥

6)常见bug:

?命令 service puppet status 可查看当前服务的状态,如果遇到错误:could not access PID file for agent 。这是因为服务发生异常而关闭了,

请重启服务?service puppet restart。

输入指令puppet agent --server=vm234.com --no-daemonize --verbose,遇到错误 Could not run: Could not create PID file: /var/run/puppet/agent.pid。这是因为已有puppet agent 启动了,请删除之前的进程(可用 pgrep和pkill),再重新启动服务puppet agent --server=……

---------------------

作者:DamonHao

来源:CSDN

原文:https://blog.csdn.net/damonhao/article/details/11378025

版权声明:本文为博主原创文章,转载请附上博文链接!
分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马