You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CentOS服务器执行puppet apply时无法生成临时文件问题求助

问题:CentOS上执行puppet apply无法生成/tmp临时文件

执行的puppet命令:

puppet apply \
--verbose \
--modulepath=modules \
--node_terminus=exec \
--external_nodes=$PWD/modules/puppet/files/hostinfo/nodeclassifier.rb \
--color=true \
--no-daemonize \
--no-usecacheonfailure \
--server=notahost \
--config=$PWD/modules/puppet/files/puppet.conf \
--debug \
manifests/site.pp

报错信息:

debug: Executing '/opt/puppet-data/puppet/modules/puppet/files/hostinfo/nodeclassifier.rb [host name]'
Could not run: cannot generate tempfile `/tmp/puppet20230712-12431-18iovt1-9'

系统相关信息:

  1. /目录列表(仅展示tmp部分):
ls -la /
total 3105
drwxr-xr-x.    26 root root    4096 Jan 12 09:22 .
drwxr-xr-x.    26 root root    4096 Jan 12 09:22 ..
...
drwxrwxrwt. 32000 root root 3035136 Jul 12 08:23 tmp
drwxr-xr-x.    15 root root    4096 Sep 14  2014 usr
drwxr-xr-x.    24 root root    4096 Mar 18  2021 var
  1. 手动验证/tmp可读写:
[root@host puppet]# echo "Test" > /tmp/puppet20230712-4607-ywx98g-9
[root@host puppet]#
  1. /tmp目录属性:
# lsattr /
...
----------I---- /tmp
...
排查与解决步骤

1. 检查/tmp的inode使用情况

从ls -la输出可见,/tmp的硬链接数高达32000,大概率是inode耗尽(每个文件/目录都需要占用一个inode,大量小文件或子目录会迅速耗尽inode资源)。执行以下命令确认:

df -i /tmp

若输出中IUse%显示为100%,即可确认是inode耗尽导致的问题。

2. 清理/tmp目录

使用系统自带的tmpwatch工具清理长时间未访问的文件/目录:

# 清理72小时内未被访问的文件和目录
tmpwatch 72 /tmp

也可手动清理指定时间范围的文件:

# 删除3天前的普通文件
find /tmp -type f -mtime +3 -delete
# 删除所有空目录
find /tmp -type d -empty -delete

注意:清理时避免删除正在被进程占用的文件。

3. 临时指定puppet的临时目录

若暂时无法清理/tmp,可在执行puppet apply时通过--tmpdir参数指定其他有足够inode的目录:

puppet apply \
--tmpdir=/var/tmp \
# 保留原有其他参数
manifests/site.pp

或修改puppet配置文件puppet.conf,添加/修改全局临时目录配置:

[main]
tmpdir = /var/tmp

4. 排查SELinux限制(可选)

虽然手动能创建文件,但仍需确认SELinux是否限制了puppet的操作:

getenforce

若状态为Enforcing,可临时关闭测试:

setenforce 0

若关闭后问题解决,需调整SELinux策略,允许puppet在/tmp目录创建临时文件。

内容的提问来源于stack exchange,提问作者Maxim Maximov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 10:12:18