如何使用Puppet更改文件的内容?
我有一个html文件,我想使用Puppet将该文件替换为具有相同文件名的空文件。我想知道Puppet是否可以删除文件的全部内容 例如,这是删除Puppet中的一行的正确方法吗如何使用Puppet更改文件的内容?,puppet,Puppet,我有一个html文件,我想使用Puppet将该文件替换为具有相同文件名的空文件。我想知道Puppet是否可以删除文件的全部内容 例如,这是删除Puppet中的一行的正确方法吗 file_line { 'delete a line': ensure => absent, path => /tmp/test, line => '\ ' match => '^(?:.*)' } 如果您知道有一个文件/path/to/file.html,并且希望确保该文件存在且为空,则
file_line { 'delete a line':
ensure => absent,
path => /tmp/test,
line => '\ '
match => '^(?:.*)'
}
如果您知道有一个文件
/path/to/file.html
,并且希望确保该文件存在且为空,则很容易:
file { '/path/to/file.html':
ensure => file,
content => '',
}
如果要确保使用file\u line
删除该文件中的某一行,则在设置sure=>缺席
时有两种方法
一种方法是设置match=>…
和match\u作为缺勤=>true
,
如下例所示:
file_line { 'bashrc_proxy':
ensure => absent,
path => '/etc/bashrc',
match => '^export\ HTTP_PROXY\=',
match_for_absence => true,
}
在此代码示例中,match将查找以export开头的行
然后是HTTP_代理并将其删除。如果多行匹配,则
除非设置了multiple=>true
参数,否则将引发错误
请注意,line=>…
参数将被接受,但在中被忽略
上面的例子
使用sure=>缺席的第二种方法是指定行=>…
,
没有对手:
file_line { 'bashrc_proxy':
ensure => absent,
path => '/etc/bashrc',
line => 'export HTTP_PROXY=http://squid.puppetlabs.vm:3128',
}
请注意,当以这种方式确保不存在行时,默认行为
这一次是要始终删除所有匹配的行,并且此行为
不能被禁用
另请参见代码和单元测试中的
我还提出了一个请求,要求将这些文件行
的示例添加到正式文档中,因为之前没有充分的文档记录
谢谢你的提问 如果您知道有一个文件/path/to/file.html
,并且希望确保该文件存在且为空,则很容易:
file { '/path/to/file.html':
ensure => file,
content => '',
}
如果要确保使用file\u line
删除该文件中的某一行,则在设置sure=>缺席
时有两种方法
一种方法是设置match=>…
和match\u作为缺勤=>true
,
如下例所示:
file_line { 'bashrc_proxy':
ensure => absent,
path => '/etc/bashrc',
match => '^export\ HTTP_PROXY\=',
match_for_absence => true,
}
在此代码示例中,match将查找以export开头的行
然后是HTTP_代理并将其删除。如果多行匹配,则
除非设置了multiple=>true
参数,否则将引发错误
请注意,line=>…
参数将被接受,但在中被忽略
上面的例子
使用sure=>缺席的第二种方法是指定行=>…
,
没有对手:
file_line { 'bashrc_proxy':
ensure => absent,
path => '/etc/bashrc',
line => 'export HTTP_PROXY=http://squid.puppetlabs.vm:3128',
}
请注意,当以这种方式确保不存在行时,默认行为
这一次是要始终删除所有匹配的行,并且此行为
不能被禁用
另请参见代码和单元测试中的
我还提出了一个请求,要求将这些文件行
的示例添加到正式文档中,因为之前没有充分的文档记录
谢谢你的提问 这是可能的。将文件
资源与内容=>''
一起使用<代码>文件\行
仅用于一行,即使指定文件中有多行可以匹配。这是可能的。将文件
资源与内容=>''
一起使用<代码>文件\行
仅用于一行,即使指定文件中有多行可以匹配。非常感谢!您的回答帮助我解决了我的问题:)是否可以说对任何行执行此操作,而不指定行的内容(例如:line=>'export HTTP_PROXY=)?正如我所解释的,这就是:match参数的要点。我不知道“any match”是什么意思。你能准确地展示一下你传递给对手的是什么吗?你有可能会问一个新问题,在这种情况下,我很乐意回答。非常感谢!您的回答帮助我解决了我的问题:)是否可以说对任何行执行此操作,而不指定行的内容(例如:line=>'export HTTP_PROXY=)?正如我所解释的,这就是:match参数的要点。我不知道“any match”是什么意思。你能准确地展示你传递给对手的是什么吗?你可能应该问一个新问题,在这种情况下,我很乐意回答。