puppet 删除目录并用链接替换

彻底地

我正在使用 Puppet 清单,在我支持的设备中配置路由器。路由器运行非常普通的香草 Debian 8 或 9。

问题在于路由器上 SSD 的分区方式。我无法更改分区,因此必须解决根文件系统很小的事实。我找到了一个我正在尝试在 Puppet 中实施的解决方案,但我的第一次尝试对我来说并不合适,所以我想我会问社区。

我一直并且正在阅读 Puppet 文档。不幸的是,我今天没有路由器可以玩,所以我无法测试我当前的解决方案。

我的问题是,df -H根文件系统的容量为 95%,而 puppet 未能抱怨空间不足。由于其他人很久以前做出的古怪决定,/opt/ 文件系统的大小是 / 的 5 倍,并且使用率为 10%。

因此,我的手动测试解决方案是移动/var/cache/apt/archives//opt/apt-archives然后使用以下方法创建符号链接:

ln -s /opt/apt-archives /var/cache/apt/archives

这有效并允许人偶运行完成而不会出错。

我的挑战是在 Puppet 类中实现这个操作

class bh::profiles::move_files {
  $source_dir = '/var/cache/apt/archives'
  $target_dir = '/opt/apt-cache'
  file { $targetDir :
    ensure => 'directory',
    source => "file://${source_dir}",
    recurse => true,
    before => File[$source_dir]
  }
  file { $source_dir :
    ensure => 'absent',
    purge => true,
    resurse => true,
    force => true,
    ensure => link,
    target => "file://${target_dir}"
  }
}

在一个文件资源中重复确保是不正确的。根据我对在 puppet 中创建链接的理解,我需要为删除档案目录的文件资源和创建链接的文件资源使用相同的名称。

我错过了什么?

亚历克斯·哈维

使用执行:

exec { 'Link /var/cache/apt/archives':
  command => 'mv /var/cache/apt/archives /opt/apt-archives
              ln -s /opt/apt-archives /var/cache/apt/archives',
  path    => '/bin',
  unless  => 'test -L /var/cache/apt/archives',
}

请注意,Puppet 并非真正旨在解决此类自动化问题,尽管使用 Exec 可以完成大多数事情。

您的解决方案听起来像是一种变通方法,因此使用 Exec 实现变通方法是完全可以的。我想说,只要确保添加一些注释来解释为什么必须做这样的事情。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Puppet sed 和替换

来自分类Dev

移动文件并用符号链接替换

来自分类Dev

通过 Puppet 删除目录的非托管文件

来自分类Dev

在Puppet中配置apache目录

来自分类Dev

失败时如何让Puppet exec清理目录?

来自分类Dev

使用Puppet在Windows上获取临时目录

来自分类Dev

如何在Puppet中更改模板目录

来自分类Dev

检测没有超链接的文本中的 URL 并用超链接替换普通 URL?

来自分类Dev

如何使用Ansible用符号链接替换目录?

来自分类Dev

查找并用超链接替换 [link] 和 [/link] 之间的所有 URL

来自分类Dev

在字符串中查找电子邮件并用 mailto 链接替换部分

来自分类Dev

无法使用Puppet设置Python 3的安装目录

来自分类Dev

如何在puppet中包含来自其他目录的模块

来自分类Dev

Puppet 创建了一个损坏的符号链接

来自分类Dev

如何使用Puppet删除目录中除某些glob以外的所有文件?

来自分类Dev

从Puppet Nginx模块中删除“ ipv6only”选项

来自分类Dev

在MIPS上运行的Puppet出现错误:无法在部分中创建用于管理Puppet的文件和目录的资源

来自分类Dev

使用Puppet创建具有多个组所有权的目录?

来自分类Dev

Puppet, cp: cannot stat `/tmp/kitchen/hiera/*': 没有那个文件或目录

来自分类Dev

使用Puppet中的箭头在包含类和链接类之间的区别

来自分类Dev

用href链接替换标签

来自分类Dev

用php中的链接替换单词

来自分类Dev

如何用超链接替换名称

来自分类Dev

用超链接替换URL

来自分类Dev

如何使用Puppet管理puppet.conf?

来自分类Dev

我可以在没有父级写权限的情况下用符号链接替换目录吗?

来自分类Dev

PuPHPet和Puppet?

来自分类Dev

流浪于使用Puppet模块

来自分类Dev

Puppet - 服务状态事实

Related 相关文章

热门标签

归档