Chef学习之八:Resource cookbook_file学习

References:http://docs.opscode.com/resource_cookbook_file.html


现在开始照着官方文档的顺序,耐心学习每一个resource。第一个就是cookbook_file。我一直觉得用Resource来命名很是奇怪,其实这些应该是命令或者是功能(function),但是我想把他们命名成Resource是为了避免和命令行中的命令冲突吧。


cookbook_file,这个资源是用来把文件拷贝到客户机器上的,本地文件(或者说Chef Server, Workstation的文件)是放在cookbooks\<some cookbook>\files\下面的。平台无关的文件可以放在default子目录中(注意,不能放在根目录里面),平台相关的放在相关平台的子目录,比如ubuntu,比如centos,这些就要看具体的文档了。


好,一个简单例子:

1. 创建文件:files\txt\file4test.txt

2. recipe:

cookbook_file "/home/ubuntu/myfile" do
  source "/txt/file4test.txt"
  action :create
end

验证:/home/ubuntu/myfile创建成功。

注意:

  • 你不能把文件拷贝到不存在的目录下,这个资源是不会帮你创建文件夹的。
  • 如果你不修改客户端的文件,再次执行chef-client命令,该文件不会被重新拷贝。
  • 如果你修改了客户端文件,再次执行chef-client命令,该文件会被重置。

该例子里面我用到了source属性,他的作用是告诉Chef,你的源文件在哪里,注意,不能写平台目录(或者default)。
其实还有一个属性是path, 他的作用是告诉Chef,目标文件要被拷贝到哪里。官方文档的第一个例子是有问题的。下面是一个用path的例子,作用类似:

cookbook_file "/home/ubuntu/apps/myfile2" do
  source "/txt/file4test.txt"
  path "/home/ubuntu/myfile2"
  action :create
  owner "ubuntu"
  group "ubuntu"
end

注意到,我既写了路径在资源名上,也写了路径在path里面,哪个获胜呢?path里面的那个!同时,我也使用了owner和group属性。其实 ,还有另外一些实用属性: backup(是否有多个备份),cookbook(引用另外一个cb里面的文件),mode。还有针对Windows平台的inherits,rights。

好了,cookbook_file就这么多了。




转载于:https://www.cnblogs.com/puncha/archive/2013/04/03/3876921.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值