• puppet案例


    实例一、文件分发
    描述:通过puppet服务端可以向被管理机(客户端)上推送文件,方法是使用file类型的source属性

    第一步:#vi /etc/puppet/fileserver.conf  
    1    [files]
    2    path /opt/              # 设置文件推送到目录
    3    allow 192.168.133.0/24  # 设置准许连接到服务端的主机地址

    第二步:vi /etc/puppet/manifests/site.pp
    1    file
    2    { "/opt/mysql-5.1.49-linux-i686-icc-glibc23.tar.gz":
    3    source => "puppet://$puppetserver/files/mysql-5.1.49-linux-i686-icc-glibc23.tar.gz",
    4    }  
    5    //设置服务器上/opt目录下的mysql-5.1.49-linux-i686-icc-glibc23.tar.gz为被传送文件
    6    //此处“$puppetserver”是Puppet Server端的名称,即hostname,在hosts文件里指定,生产环境下用内部的DNS上作解析

    第三步:
    在客户端执行更新命令
    1    #puppetd --test --server server.puppet

    实例二、修改文件属性

    描述:把/tmp/dd142/ puppet-2.6.13.tar.gz文件的权限改为puppet用户,并设置权限为666。

    第一步:编辑服务端的site.pp
    vi /etc/puppet/manifests/site.pp
    ------------------------------------------------------
    1    file
    2    { "/tmp/dd142/puppet-2.6.13.tar.gz":
    3    owner => "puppet",
    4    group => "puppet",
    5    mode => 666,
    6    }

    第二步:在客户端执行命令
    1    #puppetd --test --server server.puppet


    实例三、执行SHELL命令或shell脚本
    描述:通过puppet分发执行shell脚本,在客户端的opt目录下新建一目录shelldir。

    第一步:编辑服务端的site.pp
    1    vi /etc/puppet/manifests/site.pp
    2    ---------------------------------------------
    3    exec { "exec-mkdir":
    4    cwd => "/opt",      //切换到命令行运行时目录
    5    command => "sh /opt/lgh.sh",
    6    user => "root",
    7    path => "/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin",
    8    }

    第二步:在客户端编辑上一步command路径中指定的shell脚本,例如
    1    vi /opt/lgh.sh
    2    ---------------------------------------------
    3    #!/bin/bash
    4    mkdir /opt/shelldir

    第三步:在客户端执行命令
    1    # puppetd --test --server server.puppet


    在/opt目录下查看shelldir目录有没有建立。


    实例四、cron计划任务
    描述:接上面的shell程序实例,在17:30执行/opt/lgh.sh。

    第一步:编辑服务端的site.pp
    1    vi /etc/puppet/manifests/site.pp
    2    ---------------------------------------------
    3    cron { "cron-shell": #title部分,可用来作为注释。
    4    command => "sh /opt/lgh.sh" #要执行的命令
    5    user => "root", #添加到root用户下的crontab中
    6    minute => "30", #即第一个星号
    7    hour => "17" #即第二个星号
    8    }


    第二步:在客户端执行命令
    puppetd --test --server server.puppet


    然后在客户端使用#crontab -l查看效果

    1    [root@client ~]# crontab -l
    2    # HEADER: This file was autogenerated at Mon Nov 04 16:56:25 +0800 2013 by puppet.
    3    # HEADER: While it can still be managed manually, it is definitely not recommended.
    4    # HEADER: Note particularly that the comments starting with 'Puppet Name' should
    5    # HEADER: not be deleted, as doing so could cause duplicate cron jobs.
    6    # Puppet Name: cron-shell
    7    30 17 * * * sh /opt/lgh.sh


    实例五、服务检查及状态修改
        描述:可以通过puppet对一些服务进行检查。puppet是通过service命令操作的。所以,只能针对在/etc/init.d/目录下的服务

    实例:把客户端的防火墙起来

    第一步:编辑服务端的site.pp
    vi /etc/puppet/manifests/site.pp
    ----------------------------------------------
    service
    { iptables:
    ensure => "running",
    }

    第二步:在客户端执行命令
    puppetd --test --server server.puppet

  • 相关阅读:
    有关TSQL中的ROUND()的用法
    孤立用户
    微小的边缘原理
    分段统计查询的方法
    虎尾兰
    有规律字段的拆分
    对索引视图的限制
    金额转换为英文大写
    经典名言
    最大信息熵原理
  • 原文地址:https://www.cnblogs.com/ruiy/p/expl.html
Copyright © 2020-2023  润新知