• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > Redhat下puppet集中配置管理

Redhat下puppet集中配置管理

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了puppet 配置,puppet,puppet是什么意思,puppet的音标,puppet show等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Redhat下puppet集中配置管理


一 puppet简介
puppet 是一个配置管理工具, 典型的, puppet 是一个 C/S 结构, 当然,这里的 C 可以有很多,因
此,也可以说是一个星型结构. 所有的 puppet 客户端同一个服务器端的 puppet 通讯. 每个
puppet 客户端每半小时(可以设置)连接一次服务器端, 下载最新的配置文件,并且严格按照配
置文件来配置服务器. 配置完成以后,puppet 客户端可以反馈给服务器端一个消息. 如果出错,
也会给服务器端反馈一个消息.

二安装环境
server端:172.25.254.2 vm2.example.com puppet master
client端: 172.25.254.3 vm3.example.com puppet agent
client端: 172.25.254.4 vm4.example.com puppet agent
重要:server 与所有 client 之间需要解析,以及时间同步,不然会验证失败。

server端:
首先安装这些包
[root@vm2 puppet]# yum install -y puppet-server-3.8.1-1.el6.noarch.rpm facter-2.4.4-1.el6.x86_64.rpm ruby-augeas-0.4.1-3.el6.x86_64.rpm rubygems-1.3.7-5.el6.noarch.rpm rubygem-json-1.5.5-3.el6.x86_64.rpm ruby-shadow-2.2.0-2.el6.x86_64.rpm puppet-3.8.1-1.el6.noarch.rpm hiera-1.3.4-1.el6.noarch.rpm

开启服务:[root@vm2 puppet]# /etc/init.d/puppetmaster start
Starting puppetmaster: [ OK ]

查看8140端口是否开启
[root@vm2 puppet]# netstat -anltp|grep ruby
tcp 0 0 0.0.0.0:8140 0.0.0.0:* LISTEN 1118/ruby

客户端:
安装这些包:yum install -y puppet-3.8.1-1.el6.noarch.rpm ruby-shadow-2.2.0-2.el6.x86_64.rpm facter-2.4.4-1.el6.x86_64.rpm hiera-1.3.4-1.el6.noarch.rpm ruby-augeas-0.4.1-3.el6.x86_64.rpmrubygems-1.3.7-5.el6.noarch.rpm rubygem-json-1.5.5-3.el6.x86_64.rpm

发起认证:
第一次发起认证会显示没有证书,因为服务端还没有同意


这时可以在服务端查看发起认证请求的用户


签名证书
删除证书
puppet cert clean vm3.example.com


在客户端查看有没有认证成功
如下图就证明认证成功了


三 服务端实现自动认证
在server端
vim /etc/puppet/puppet.conf
在main底下添加这一行
[main]
autosign = true

/etc/puppet 目录下创建 autosign.conf 文件,内容如下:
*.example.com #表示允许所有 example.com 域的主机
/etc/init.d/puppetmaster reload

在客户端只需要直接申请就可以成功
puppet agent --server vm2.example.com --test


在实际中有时会修改 client 端的主机名,这样就需要重新生成证书:
1)在 server 端执行:puppet cert --clean vm3.example.com #你要删除的原 client 端主机名
2)在 client 端执行:rm -fr /var/lib/puppet/ssl/*
puppet agent --server=puppet.example.com

puppet 的第一个执行的代码是在/etc/puppet/manifest/site.pp,因此这个文件必须存在,而
且其他的代码也要通过该文件来调用。
四 服务端资源定义:
cd /etc/puppet/manifests
vim site.pp
file {
"/mnt/puppet-3.8.1-1.el6.noarch.rpm": 客户端去向
content => "puppet:///files/puppet-3.8.1-1.el6.noarch.rpm", 服务端源
mode => 600, 客户端得到资源权限
owner => puppet客户端得到资源用户
}

cd ..
mkdir files
将puppet-3.8.1-1.el6.noarch.rpm 包放到此目录下
vim /etc/puppet/fileserver.conf
在最底下添加如下
[files]
path /etc/puppet/files
allow *

客户端验证 这副图展示了/mnt下的资源的变化
并且也验证了服务端的配置


软件包跟服务定义
继续编辑刚才的site.pp文件,向里面添加如下
package { ##软件包定义
"vsftpd":
ensure => present(安装present,卸载absent)

}

service {##服务定义
"vsftpd":
ensure => running
}

file {
"/etc/vsftpd/vsftpd.conf":
source => "puppet:///files/vsftpd.conf",
mode => 600,
notify => Service[vsftpd] 相当于reload
}
然后在客户端测试


用户建立
继续编辑site.pp文件添加如下
user { "xp": uid => 900, ##创建用户
home => "/home/test",
shell => "/bin/bash",
provider => useradd,
managehome => true,
ensure => present,
password => westos
}


#exec { "echo westos | passwd --stdin xp": ##更改密码加密方式 这样加密在/etc/shadow下密码会是明文
#path => "/usr/bin:/usr/sbin:/bin",
#onlyif => "id xp"
#}
客户端验证


crontab 任务
在服务端 老规则,继续编译site.pp文件
cron { echo:
command => "/bin/echo `/bin/date` >> /tmp/echo",
user => root,
hour => ['2-4'],
minute => '*/10'
}

任务会在client 的/var/spool/cron目录中生成
在客户端验证


总之,puppet是一个很好的管理系统,是以后自动化运维的必不可少的工具,大家可以自己动手搭建一个lnmp架构,源码安装,
之后我会发布,希望大家共同探讨,共同进步。














分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Redhat下puppet集中配置管理

相关文章

  • 2017-05-26自定义控件添加自定义属性问题,控件添加自定义属性
  • 2017-05-26Your project path contains non-ASCII characters,containsnon-ascii
  • 2017-05-26微博API常用方法,博API常用方法
  • 2017-05-26ubuntu下安装AndroidStudio
  • 2017-05-26Android常见问题及开发经验总结(三)
  • 2017-05-26Android EditText 取消复制粘贴功能,取消横向全屏编辑功能(一),androidedittext
  • 2017-05-26Android内存泄漏排查利器LeakCanary,androidleakcanary
  • 2017-05-26Android一个ListView列表之中插入两种不同的数据,androidlistview
  • 2017-05-26三年0故障总结,提升代码质量的秘诀
  • 2017-05-26ConfigParser写配置文件乱序问题

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Android源码解析--SwipeMenuListView仿QQ聊天左滑
    • Android问题集锦之四十七: Error:Execution failed for task ':app:packageRelease'. ) Unable to compute hash of
    • android开发之路01,android之路01
    • 「视频直播技术详解」系列之七:直播云 SDK 性能测试模型,sdk性能测试
    • Android 日常开发总结的技术经验 60 条,android60
    • android开发学习——小细节注意,android开发细节
    • Andoid自定义View系统学习参考,andoidview
    • Android系统input设备的插拔和事件监听
    • Android--JNI简单的实例解析
    • mysql字符集乱码问题

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有