`
zhengdl126
  • 浏览: 2530750 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

puppet 之file

 
阅读更多

 

===================== 实例1 创建文件

 

在agent的指定位置(/usr/local/src)创建一个文件passwd,其所有者为nobody,所有组为nobody,文件权限为600,并且往文件写入内容为“hello world”。

 

 

 

目录结构:

 



创建第一个模块base,进入/etc/puppet/modules目录
#mkidr -p /etc/puppet/modules/base

创建一个文件名/etc/puppet/modules/base/manifests/touch.pp 的类(这个类是用于创建文件的)
class base::touch {
     file { "/usr/local/src/passwd":
      ensure => present,
      group => nobody,
      owner => nobody,
      mode => 600,
      content => "hello world!!",
     }
}

/etc/puppet/modules/base/manifests/init.pp文件是模块的核心 ,每个模块都必须拥有一个init.pp文件,它是模块的入口,
里面包含若干个里面包含若干个class对该模块的资源进行封装(把新建的类引入进来)

class base {
      include base::touch
}



进入到nodes目录新建一个节点文件为

/etc/puppet/manifests/nodes/db1.pp

node 'client ' {
        include base
}


编辑/etc/puppet/manifests/modules.pp 内容为
import "base"

编辑/etc/puppet/manifests/site.pp内容为
import "modules.pp"
import "nodes/*.pp"


客户端测试
puppetd --server server.cbcv.net  --test




 

 

 

 

 

===================== 实例2 :在实例1基础上,若果修改文件内容,先备份原有文件,在修改

 

修改服务器端文件类:

/etc/puppet/modules/base/manifests/touch.pp

 

class base::touch {
     file { "/usr/local/src/passwd":
      backup => ".bak_$uptime_seconds",
      group => nobody,
      owner => nobody,
      mode => 600,
      content => "hello baby!!",
     }
}

 

 


客户端测试
puppetd --server server.cbcv.net  --test

 

 

 

 

 

===================== 实例3 :同步目录文件,剔除文件目录

 

将master上面的文件目录同步到agent上,不同步含有log的文件和目录,如果含有子目录,递归到子目录

 

需要同步的files文件目录为test目录:
/etc/puppet/modules/base/files/test


 



增加一个同步文件的类
vim /etc/puppet/modules/base/manifests/sync.pp

class base::sync { 
      file { "/usr/local/src/test": 
      ensure  => directory, 
      source  => "puppet:///modules/base/test/", 
      ignore  => '*log*', 
      recurse => true,   
      } 
}

vim /etc/puppet/modules/base/manifests/init.pp

class base { 
      include base::touch,base::sync
}
客户端测试
puppetd --server server.cbcv.net  --test

 

 

=====================实例4 :基于实例3,删除master上没有agent上有的文件或者目录(我在客户端的目标目录新建1个3.txt文件)

 

 

vim /etc/puppet/modules/base/manifests/sync.pp

class base::sync { 
      file { "/usr/local/src/test": 
      ensure  => directory, 
      source  => "puppet:///modules/base/test/", 
      ignore  => '*log*', 
      recurse => true, 
      purge   => true, 
      force   => true, 

      } 
}

 

 

 

 

 

 

 

 

 

 

 

  • 大小: 26.2 KB
  • 大小: 48.4 KB
  • 大小: 23.6 KB
分享到:
评论

相关推荐

    puppet 入门,puppet 中文,puppet安装

    ### Puppet 入门详解 #### 1. Puppet 简介 ##### 1.1 Puppet 是什么?...掌握 Puppet 的基础知识和语法是成为高效系统管理员的关键之一。希望本文能够帮助您快速入门 Puppet,并在未来的工作中更好地应用它。

    puppet服务端安装流程

    cp conf/redhat/fileserver.conf /etc/puppet/ cp conf/redhat/puppet.conf /etc/puppet/ cp conf/redhat/server.init /etc/init.d/puppetmaster ``` 2. 创建 Puppet 用户: ```bash puppetmasterd --mkusers...

    puppet入门手册

    ### Puppet 入门手册知识点详解 #### 1. Puppet 是什么? Puppet 是一款先进的配置管理工具,旨在实现数据中心的自动化管理。它采用客户端-服务器(C/S)架构,其中服务器端存储所有针对客户端服务器的配置信息,...

    一招教你使用puppet

    ### 使用Puppet搭建LAMP环境知识点详解 #### 一、Puppet简介与LAMP环境概述 Puppet是一款基于Ruby语言的开源配置管理工具...Puppet的强大之处在于其高度的可扩展性和灵活性,可以根据实际需求定制更加复杂的配置策略。

    puppet使用工具

    资源类型如user、file、service等,提供了操作这些系统部分的方法。Puppet的资源抽象层(RAL)封装了不同操作系统的底层差异,types和providers允许Puppet对不同类型的资源进行一致的操作。资源管理还包括资源顺序、...

    puppet-ext_file_line:具有正则表达式反向引用支持的 Puppet 文件行资源

    ext_file_line 源自 Puppet 标准库 ( ) 中的原始 file_line 资源 与原始 file_line 相比的主要优点是能够在 line 属性中使用正则表达式反向引用。 此外,将显示应用更改的差异(或在 noop 模式下的更改)。 当任何...

    puppet资料整合

    例如,`file { '/etc/nginx.conf': content => '...' }`定义了一个文件资源,内容为'...'. 4. **Puppet模odule与Class** Puppet中的模块是组织资源的单位,通常代表一个功能或服务,如Nginx、Apache等。类是模块的...

    puppet最经典中文手册资料

    - **file资源**:用于管理文件的创建、删除、修改权限等操作。 - **package资源**:处理软件包的安装、升级、卸载等。 - **service资源**:控制服务的启动、停止、重启等。 - **exec资源**:执行系统命令,适用于...

    puppet-systemd

    systemd::unit_file { 'foo.service' : source => " puppet:///modules/ ${module_name} /foo.service " ,}~> service { ' foo ' : ensure => ' running ' ,} 这等效于: file { '/usr/lib/systemd/system/foo....

    Ruby-用来管理SSH的Puppet模块

    2. **Puppet资源声明**:在`manifests/init.pp`中,你会看到对SSH配置的各种资源声明,如`file`资源用于管理配置文件,`service`资源用于管理SSH服务的启停,`exec`资源用于执行命令。 3. **变量与参数化**:Puppet...

    puppet基础教程.pdf

    - **File资源**:用于管理文件的属性,如内容、权限、所有权等。 - **Package资源**:处理软件包的安装、升级和卸载。 - **Service资源**:控制服务的启动、停止和状态检查。 - **Exec资源**:执行命令行操作,可以...

    Puppet部署应用资源

    部署应用资源时,我们首先需要在Puppet代码库中创建资源类型为`exec`、`file`、`package`等的定义,以表示安装、配置和启动应用的步骤。例如,`package`资源用于管理软件包的安装,`file`资源用于管理文件和目录,`...

    puppet学习

    例如,`file { 'example.txt': path => '/etc/example.txt', ensure => present }` 声明了一个位于/etc/example.txt的文件,并确保其存在。 2. **类(Class)**:类是Puppet中组织资源的逻辑单元,可以包含多个资源...

Global site tag (gtag.js) - Google Analytics