奇忠诚 发表于 2018-8-2 06:29:17

puppet (一)

  Puppet
  sever:172.25.23.1 server1.example.com puppet master
  client:172.25.23.2 server2.example.com puppet agent
  client:172.25.23.3 server3.example.com puppet agent
  server 与所有 client 之间需要解析,以及时间同步,iptables selinux disabled
  一.基础配置
  1.安装软件

  (1) server
  #yum install -y puppet-server-3.0.1-1.el6.noarch.rpm puppet-3.0.1-1.el6.noarch.rpm facter-2.4.4-1.el6.x86_64.rpm ruby-shadow-2.2.0-2.el6.x86_64.rpm hiera-1.3.4-1.el6.noarch.rpm ruby-augeas-0.4.1-3.el6.x86_64.rpm rubygem-json-1.5.5-3.el6.x86_64.rpm rubygems-1.3.7-5.el6.noarch.rpm
  # /etc/init.d/puppetmaster start
  (2) client
  # yum install -ypuppet-3.0.1-1.el6.noarch.rpm facter-2.4.4-1.el6.x86_64.rpm ruby-shadow-2.2.0-2.el6.x86_64.rpm hiera-1.3.4-1.el6.noarch.rpm ruby-augeas-0.4.1-3.el6.x86_64.rpm rubygem-json-1.5.5-3.el6.x86_64.rpm rubygems-1.3.7-5.el6.noarch.rpm
  注意:客户端先不开启服务
  2.获取证书
  server

  # puppet 的第一个执行的代码是在/etc/puppet/manifest/site.pp,因此这个文件必须存在,而且其他的代码也要通过该文件来调用
  (1) server手动生成签名
  a)client先向服务端发送请求

  # 会显示失败,是因为,server端没有client的证书,因此,server需要手动生成
  b)server端手动进行签证

  c) client再次获取证书

  client 向 master 发出证书验证请求,然后等待 master 签名并返回证书。
  参数--server 指定了需要连接的 puppet master 的名字或是地址,默认连接名为puppet的主机如要修改默认连接主机可以修改/etc/sysconfig/puppet 文件中的PUPPET_SERVER=puppet 选项
  参数--no-daemonize 是 puppet 客户端运行在前台
  参数--verbose 使客户端输出详细的日
  (2) server自动生成签名
  a)修改server的配置文件
  vim /etc/puppet/puppet.conf

  vim /etc/puppet/autosign.conf


  /etc/init.d/puppetmaster>  b)将server原有的签名删除

  c)client端删掉原有证书的记录,再重新获取
  rm -fr /var/lib/puppet/ssl

  在实际中有时会修改 client 端的主机名,这样就需要重新生成证书
  3.资源定义
  资源定义在 /etc/puppet/manifest/site.pp
  (1) 创建文件
  Server
  Vim /etc/puppet/manifest/site.pp

  client
  puppet agent --server server1.example.com --no-daemonize -vt
  cat /tmp/wang

  (2) 当改变资源内容时,Hash码也会发生变化
  server
  Passwd存储在 /etc/puppet/files(自己创建的)
  vim /etc/puppet/fileserver.con

  Vim /etc/puppet/manifest/site.pp

  Client
  puppet agent --server server1.example.com --no-daemonize -vt


  生成的新的Hash会和server端中的资源相同
  (3)安装包

  (4)服务
  service { "httpd": ensure => running;
  "vsftpd": ensure => stopped
  }
  (5) 用户

  (6)文件系统挂载
  server

  在172.25.23.250上,需要设置nfs分享

  且在client需要安装 nfs-utils软件
  自动挂载文件系统,并同步 fstab 文件,如果需要卸载,改为 absent
  (7) crontab任务

  任务会在 client 上/var/spool/cron 目录中生成
  二.安装vsftpd,httpd及启动服务
  Server
  Vim /etc/puppet/manifest/site.pp

  Client
  puppet agent --server server1.example.com --no-daemonize -vt
  三.编写httpd 模块
  server

  vim site.pp


  vim server3.pp


  各部分内容如下





  注意:若出现如下报错,则是资源中文件的权限不够,最少为644

  四.编写nginx模块
  server:

  vim nginx.sh

  vim nginx.conf


  vim init.pp

  vim install.pp

  vim config.pp

  vim service.pp


  vim site.pp


  vim server2.pp

  Client:


  作业:课后完成lnmp的搭建
页: [1]
查看完整版本: puppet (一)