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

2013款MacBook Pro上Vagrant部署Bento/CentOS-7运行Chef报tty错误

故障原因

你遇到的tty相关报错是CentOS 7系统的默认安全策略导致的:系统默认配置要求sudo命令必须在有tty(伪终端)的交互式环境下执行,而Test Kitchen默认通过非交互式SSH连接执行远程命令,不会主动分配tty,触发了该限制,导致sudo执行失败,kitchen create任务中断。

解决方案

方案1:修改.kitchen.yml配置,强制SSH分配伪终端(优先推荐)

在driver配置块中新增ssh.pty配置项,修改后的driver块如下:

driver:
  name: vagrant
  ssh:
    pty: true # 核心配置,强制SSH分配伪终端,绕过tty限制
  network:
    - ["public_network"] 
  customize:
    memory: 512

修改后重新执行kitchen create即可,该方案无需修改虚拟机内部配置,适配性最高。

方案2:预置命令关闭sudo的tty限制

如果方案1未生效,可以在provisioner块中添加前置执行命令,在初始化阶段直接修改虚拟机的sudoers配置,移除tty要求:

provisioner:
    name: chef_zero
    product_name: chef
    product_version: 14.12.9
    pre_install_command: sed -i '/Defaults\s*requiretty/d' /etc/sudoers

其他注意事项

  • 你操作步骤中的第10步路径有误,当前处于/chef_class/cookbooks目录下,克隆项目后执行cd learn_chef_httpd即可,你写的cd /learn-chef/learn_chef_httpd是绝对路径,会找不到目录,先修正路径问题再执行后续操作。
  • 2013款MacBook Pro运行内存上限较低,你配置了7个suite实例,建议每次仅创建1个实例测试,或者将单实例内存调整为256M,避免内存不足引发的其他启动异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 06:06:02