【发布时间】:2019-08-17 02:41:18
【问题描述】:
我正在处理一个 Puppet 清单,它在我支持的设备中配置一个路由器。路由器运行非常普通的 Debian 8 或 9。
问题在于路由器上的SSD分区方式。我无法更改分区,因此必须解决根文件系统很小的事实。我找到了一个我正在尝试在 Puppet 中实施的解决方案,但我的第一次尝试对我来说感觉不对,所以我想我会问社区。p>
我一直在阅读 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 中创建链接的理解,我需要为删除档案目录的文件资源和创建链接的文件资源使用相同的名称。
我错过了什么?
【问题讨论】: