samsungsamsung 发表于 2018-8-1 12:51:09

自动化运维工具Puppet-KaliArch

puppet 资源  
    type { 'title':
  
      attibute => value,
  
    }
  

  
而资源定义的核心也可以抽象为type、title、attribute和value四个部分。
  

  
type分类:
  
package:
  
    puppet支持使用的软件包管理器
  
      yum,rpm,apt,ports,gem,msi,dpkg,pkg
  
    常用的参数
  
      ensure:程序包的目标状态
  
      name:资源的名称,即软件包的名字
  
      provider:软件包管理器
  
      source:指定程序包文件路径
  
      install_options:安装选项,最常用的是通过INSTALLDIR来制定安装目录
  

  
      window下安装mysql
  
      package{‘mysql:
  
            ensure => install,
  
            provider =>'msi',
  
            source => 'D:\software\mysql-5.5.36.msi',
  
            install_options => { 'INSTALLDIR' => 'c:\mysql' },
  
      }
  

  
service:
  
    常用参数:
  
      ensure:服务的目标状态,ture(启动)和false(关闭)
  
      enable:是否开机自动启动,ture(启动)和false(关闭)
  
      name:服务名称
  
      path:服务脚本路径;默认为/etc/init.d下查找
  
      start:定制启动命令
  
      stop:关闭
  
      restart:重启
  
      status:状态
  

  
资源名称仅是一个字符串,在同一个类型中必须唯一
  
在定义时,资源类型必须是小写字母
  

  
file:
  
    管理文件、目录、软链接;
  
    生成文件内容
  
    管理文件权限、属性
  
    也可以通过source属性到指定位置下载文件
  
    通过recurse属性来获取目录
  

  
    常用参数:
  
      ensuce:absent(不存在) present(存在) file(文件) directory(目录)
  
      backup:通过filebucket资源来备份文件,值通常为filebucket资源的名称
  
      content:文件内容,生成方式有三种(content,source,target),彼此互斥
  
      source:通过制定的url下载文件至本地,获取文件方式为puppet url 格式:puppet:///modules/MODULE_NAME/file_names;
  
      target:为符号链接指定目标
  
      links:文件为符号链接,值为“follow”,“manage”
  
      path: 文件路径,必须使用双引号
  
      mode:定义权限
  
      owner:定义属主
  
      group:定义属组
  
      force: 强制执行删除文件、连接或目录,仅用于ensure为absent时。
  
      purge:清空指定目录中存在的,但未在资源中定义的文件;
  
      recurse:目录递归,值true,false,inf,remote
  
      replace:替换,本地存在的文件与资源中指定的文件内容不同时是否执行替换,默认为否;
  

  
exec:
  
    执行命令,通常在不得不用时才使用,慎用,通常用于完成puppet自身无法完成的功能
  
    常用的参数:
  
      command:要执行的命令,通常为命令文件的完整路径
  
      path:命令搜索路径
  
      group:执行命令的组
  
      user:执行命令的用户
  
      onlyif:0,表示仅在命令的状态返回值为0时才执行此命令
  
      refresh:定义接受到其他资源的通知时,则要重新执行此命令
  
      refreshonly:仅当被依赖的资源发生改变时才被触发
  
      tries:尝试次数,默认为1
  
      try_sleep:多次尝试之间的时间间隔
  
group:管理系统上的用户组
  
      常用参数
  
            ensure:目标状态,present,absent
  
            name:组名
  
            gid:GID
  
            system:系统组
  

  
user:管理用户
  
      常用属性:
  
            ensure:目标值状态
  
            name:
  
            uid:
  
            system:
  
            home:
  
            shell:
  
            gid:
  
            password:加密后的密码
  
            managehome: true,false(默认)
  

  
cron:定义周期性任务
  
      常用属性
  
            ensure:目标状态
  
            command:命令或脚本
  
            environment:运行时的环境变量
  
            hour:
  
            minute:
  
            mouth:
  
            monthday
  
            weekday
  
            name
  
            user:默认为root
  

  
      cron { 'ntpdate'
  
         ensure => present,
  
         command => '/usr/sbin/ntpdate 172.16.0.1' &> /dev/null
  
         minute => '*/3'
  
      }

tayikaly 发表于 2018-10-4 09:32:53

很好 感谢分享谢谢大大
页: [1]
查看完整版本: 自动化运维工具Puppet-KaliArch