设为首页 收藏本站
查看: 902|回复: 0

[经验分享] puppet配置

[复制链接]

尚未签到

发表于 2018-8-2 09:56:07 | 显示全部楼层 |阅读模式
  puppet配置
  1.简介
  puppet是一个开源的新一代的集中化配置管理工具,它由自己所声明的语言表达系统配置,通过客户端与服务器之间的连接,维护这关系库。
  puppet是基于ruby语言并使用Apache洗衣授权的开源软件,它既能以客户端--服务端的方式云修行,也能独立运行。客户端默认每30分钟与服务端确认一次更新,以确保服务的一致性
  puppet主要由luke kanies和他的公司puppet labs开发,于2005年正式面世。目前最新版本为3.0,最新版本的puppet不支持ruby1.8.5以下的语言
  目前使用puppet的企业:oracle,google,redhat,新浪,阿里巴巴,百度,腾讯等。
  2.实验环境:
  puppet-server:192.168.32.200
  puppet-client:192.168.32.202
  在master上和agent修改hosts文件
  192.168.32.200  puppet-server
  192.168.32.202  puppet-client
  关闭防火墙。selinux
  puppet的组织结构
  /etc/puppet
  ├── auth.conf      ACL权限控制文件
  ├── fileserver.conf       文件服务配置文件
  ├── manifests定义存储目录
  ├── modules                  模块配置目录
  └── puppet.conf  puppet主配置文件
  3.puppet的工作原理:
  定义:使用puppet特定的语言定义基础配置信息。通常我们把这些信息写在modules中
  模拟:在配置执行前检测代码,但并不执行
  执行:执行步骤1定义的配置自动部署,检测并记录所发生变化的部分
  报告:将期待的变化,实际发生的变化以及任何修改发送给报告系统
  4.puppet的数据流:
  node节点将facts和本机信息发送给master
  master告诉node节点应该如何配置,将这些信息写入catalog后传送给node。
  node节点在本机进行代码解析验证并执行,将结果反馈给master
  master通过api将数据发送给分析工具,报告完全可以通过开发api或其他系统集成
  整个数据流的走向是基于ssl安全协议的
  5.Puppet的安装步骤
  Puppet的安装与使用可以细分8步进?,详细步骤如下:
  1) 安装Ruby、Ruby-libs和Ruby-shadow,?于进??户和组管理。
  2) 安装Facter、Puppet和Puppet-server。
  3) 设置主机名、域名解析或指定hosts。
  4) 采?命令/etc/init.d/puppetmaster start启动server或者采?不以进程?式启动server。命令为
  puppet master --no-daemonize --verbose,通过此?式可以查看到相关?志与输出。
  5) 客户端配置?件指定Server端,运?puppet agent –test命令或直接运?puppet agent --test --
  server server.domain.com与master交互完成签名认证。
  6) 在Server上配置节点信息,告诉客户端要做什么。
  7) 检查语法是否正确(通常采?puppet parser validate test.pp命令进?语法检查)。
  8) 客户端再次运?配置(puppet agent --test)。
  6.master端配置
  修改hosts
  192.168.32.200 puppet-server
  192.168.32.202 puppet-client
  设置ntp
  ntpdate pool.ntp.org
  chkconfig ntpd on
  service ntpd start
  1.在master安装puppet-server,puppet和facter
  wget http://yum.puppetlabs.com/el/6/products/x86_64/puppetlabs-release-6-7.noarch.rpm
  rpm -ivh  puppetlabs-release-6-7.noarch.rpm
  yum -y install puppet-server puppet
  ruby最好安装1.8.7版本
  facter(简称为fact),手机关注主机的信息,来帮助定制puppet配置
  2.配置puppet.conf
  [agent]
  certname = puppet-server
  3.创建site.pp文件。site.pp是puppet读取所有模块PP文件的开始,在3.0版本以前必须设置,否则服务无法启动
  touch /etc/puppet/manifests/site.pp
  4.启动puppetmaster服务
  /etc/init.d/puppetmaster start
  chkconfig puppetmaste  on设置开机启动
  7.设置服务端自动签发证书
  在/etc/puppet下创建autosign.conf文件,不需要修改puppet.conf
  puppet-client
  /etc/init.d/puppetmster restart
  puppet agent --no-daemonize --onetime --verbose --debug
  --no-daemonize前台输出日志
  puppet cert list all  查看证书。带+号是签发成功的
  5.查看本地证书情况:puppetmaster第一次启动会自动生成证书自动注册自己
  tree /var/lib/puppet/ssl/
  /var/lib/puppet/ssl/
  ├── ca
  │?? ├── ca_crl.pem
  │?? ├── ca_crt.pem
  │?? ├── ca_key.pem
  │?? ├── ca_pub.pem
  │?? ├── inventory.txt
  │?? ├── private
  │?? │?? └── ca.pass
  │?? ├── requests
  │?? ├── serial
  │?? └── signed
  │??     ├── puppet-client.pem
  │??     └── puppet-server.pem
  ├── certificate_requests
  ├── certs
  │?? ├── ca.pem
  │?? └── puppet-server.pem
  ├── crl.pem
  ├── private
  ├── private_keys
  │?? └── puppet-server.pem
  └── public_keys
  └── puppet-server.pem
  6.查看监听状态,puppetmaster服务开启后,默认监听tcp8140端口
  netstat -tunpl | grep 8140
  8.agent端的配置
  修改hosts
  192.168.32.200 puppet-server
  192.168.32.202 puppet-client
  设置ntp
  ntpdate pool.ntp.org
  chkconfig ntpd on
  service ntpd start
  1.安装puppet和facter
  yum -y install puppet facter
  yum -y ruby ruby-rdoc ruby-libs
  2.配置puppet.conf
  vim /etc/puppet/puppet.conf
  [main]
  server = puppet-server
  /etc/init.d/puppet start
  chkconfig puppet on
  3.通过调试模式启动节点,向puppetmaster端发起认证
  puppet agent --test
  4.服务器端确定认证
  puppet cert --list --all查看认证情况
  puppetca -s puppet-client注册agent
  puppet cert --clean clientname 删除证书
  如何生成puppet配置文件puppet.conf
  puppetd --genconfig > /tmp/puppet.conf
  puppetmasterd --genconfig > /tmp/puppet.conf
  生成puppet配置文件site.pp的命令
  puppet apply --genmainfest > /etc/puppet/mainfests/site.pp
  如果不知道配置文件在那个目录下,可以使用一下命令查看
  puppet agent --configprint confdir
  默认在/etc/puppet
  puppet配置文件参数
  【main】通用配置选项
  vardir=/var/lib/puppet/
  confdir=/etc/puppet   配置文件目录
  logdir=/var/log/puppet日志目录
  rundir=/var/run/puppet pid文件目录
  ssldir=/var/lib/puppet/ssl   ssl签发认证目录
  manifest=/etc/puppet/mainfests/site.pp 主机文件默认读取
  site.pp的目的主要是告诉puppet去哪里寻找并载入所有主机相关的配置
  modulepath:/etc/puppet/modules:/usr/share/puppet/modules
  authconfig=/etc/puppet/namespaceauth.conf如果开启listen为true需要配置此文件
  pluginsync=true开启插件同步
  reportdir=/var/lib/puppet/reports报告文件生成目录,目录以主机名命令开头
  reports=log,foreman:报告的方式与类型
  environment=production:运行环境配置,默认为生产环境
  【agent】客户端配置选项
  localconfig=/var/lib/puppet/localconfig本地缓存配置目录
  runinterval=1800客户端默认探测司机,可按需修改
  listen=true是否监听,执行puppet kick时需要配置
  report=true 客户端的报告系统配置,不同于master
  report-port=8140 监听端口,如果服务器有配置防火墙,需要开放此端口
  server = server.doamin.commaster的主机名
  【master】服务端配置选项
  certname = server.domain.com也可以不定义,以主机名为准
  reporturl=http://server.domain.com:3000/reports/upload报告发送地址,可配置在dashboard或foreman配置文件中
  autosign=/etc/puppet/autosign.conf 自动认证配置文件
  site.pp配置文件内容
  Exec {path=>"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"} 设置环境变量
  $fileserver="puppet.domain.com"指定全局fileserver变量
  $ntpserver="ntp.domain.com" 指定ntpserver变量
  Package {provider=>"yum"} 指定远景报的安装方式为yum
  import "modules.pp"  加载模块配置文件,可以不配置
  import "nodes/*pp" 加载主机信息,可以使用通配符,也可以定义多组目录
  import “test.dimain.com.pp” 加载测试主机
  认证与安全配置文件
  namespaceauth.conf用于指定允许谁访问每个名称空间
  auth.conf认证配置文件是puppet中的ACL,主要应用于puppet's rest api。
  path /path/to/resource  目录配置
  [environment envlist]   环境配置
  [method methodlist]     方法命令配置
  [auth[enthicated] {yes|no|on|off|any}]  授权配置
  allow [host|ip|*]    允许配置
  deny [host|ip]           拒绝配置
  客户端自动认证配置
  autosign.conf 允许配置文件中的客户端自动进行签名验证,省去人工交互过程。
  配置文件参考如下
  允许单一客户端或者域名匹配。主机名匹配
  rebuilt.example.com
  *.scratch.example.com
  同时puppet客户端的证书也可以采用提前在master上生成的方法,将生成的证书文件拷贝到客户端对应的目录下实现自动认证的配置
  自动生成证书命令为:
  puppet cert generate clien.domain.com
  客户端的证书目录
  /var/lib/puppet/ssl/private_keys/
  /var/lib/puppet/ssl/certs/
  报告系统配置
  tagmail将配置的报告内容按需求发送给谁。需要使用此功能,在master端配置reports=tgmail。agent端配置为report=true,同时也可以配置smtp
  由谁发送,在master端配置reportfron为smtpserver or sendmail即可。默认为本机sendmail发送
  文件系统配置文件
  flieserver.conf 是一项安全配置。结合puppet.confauth.conf使用,针对哪个目录,那些客户端允许访问,禁止访问。
  配置方法
  [files]
  path /var/lib/puppet/files
  allow *.example.com
  deny *.evil.example.com
  allow 192.168.0.0/24
  puppet 自颁发认证
  master端配置
  vim /etc/puppet/autosign.conf
  client.domain.com   #客户端主机名
  vim /etc/puppet/puppet.conf
  [agent]
  certname = client.domain.com  #等号空格要有
  /etc/ini.d/puppetmaster  restart
  查看认证
  [root@server puppet]# puppet cert list --all
  + "server.domain.com" (SHA256) 35:00:9D:41:03:3A:FE:B7:67:6F:B0:B3:47:2D:0D:F6:26:28:D5:4E:01:EE:29:62:E6:E6:FD:8F:66:0C:D4:DB (alt names: "DNS:puppet", "DNS:puppet.domain.com", "DNS:server.domain.com")
  [root@server puppet]# puppet cert list --all
  + "client.domain.com" (SHA256) 1C:20:AC:43:90:8F:7E:33:07:48:AE:D1:B0:56:9C:DB:23:68:D4:5A:E4:4B:6B:60:2D:A1:88:3B:52:5D:BE:79
  + "server.domain.com" (SHA256) 35:00:9D:41:03:3A:FE:B7:67:6F:B0:B3:47:2D:0D:F6:26:28:D5:4E:01:EE:29:62:E6:E6:FD:8F:66:0C:D4:DB (alt names: "DNS:puppet", "DNS:puppet.domain.com", "DNS:server.domain.com")
  slave端配置
  vim /etc/puppet/puppet.conf
  [main]
  server = server.domain.com
  /etc/init.d/puppet restatr
  [root@client puppet]# puppet agent --test    申请认证
  Info: Retrieving pluginfacts
  Info: Retrieving plugin
  Info: Loading facts
  Info: Caching catalog for client.domain.com
  Info: Applying configuration version '1423467420'
  Notice: Finished catalog run in 0.04 seconds
  如果在认证中间出错的话,一定要在master端和slave端把/var/lib/puppet/ssl 删掉,然后重启服务,重新认证

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-545154-1-1.html 上篇帖子: puppet环境搭建及测试 下篇帖子: puppet资源
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表