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

如何通过Apt无交互安装Redmine及Chef部署时跳过配置弹窗

嘿,这两个问题刚好是自动化部署Redmine时经常碰到的痛点,我来一步步给你讲清楚怎么解决!

1. 使用Apt工具无任何交互提示安装Redmine

要实现完全无交互的Apt安装,核心是预先用debconf-set-selections命令设置好Redmine安装时需要的所有配置项,这样apt-get执行安装时就不会弹出任何对话框了。

  • 先设置debconf的配置参数,这里以MySQL为例(如果用SQLite的话,配置项会更简单):

    echo "redmine redmine/instances/default/database-type select mysql" | debconf-set-selections
    echo "redmine redmine/instances/default/dbname string redmine_default" | debconf-set-selections
    echo "redmine redmine/instances/default/dbuser string redmine" | debconf-set-selections
    echo "redmine redmine/instances/default/dbpass password your_secure_password" | debconf-set-selections
    echo "redmine redmine/instances/default/dbserver string localhost" | debconf-set-selections
    echo "redmine redmine/instances/default/dbport string 3306" | debconf-set-selections
    

    你可以根据自身需求修改这些值,比如数据库名称、用户名、密码等。如果想用SQLite,只需要把database-type设为sqlite3,其他数据库相关的配置项可以直接省略。

  • 执行无交互安装命令:

    apt-get update && apt-get -y install redmine redmine-mysql
    

    这里的-y参数会自动确认所有安装提示,加上之前预设的debconf配置,整个安装过程就完全没有交互了。

2. Chef部署Redmine时预先配置数据库信息跳过交互

在Chef环境中,你可以通过两种方法实现无交互部署,推荐优先选择符合Chef最佳实践的方式:

方法一:直接使用Chef的debconf资源

在你的自定义recipe里添加以下代码,预先设置好所有需要的debconf配置项:

# 配置Redmine数据库类型
debconf 'redmine/instances/default/database-type' do
  value 'mysql'
  type 'select'
end

# 配置数据库名称
debconf 'redmine/instances/default/dbname' do
  value 'redmine_default'
  type 'string'
end

# 配置数据库用户名
debconf 'redmine/instances/default/dbuser' do
  value 'redmine'
  type 'string'
end

# 配置数据库密码
debconf 'redmine/instances/default/dbpass' do
  value 'your_secure_password'
  type 'password'
end

# 配置数据库服务器地址
debconf 'redmine/instances/default/dbserver' do
  value 'localhost'
  type 'string'
end

# 安装Redmine主包
package 'redmine' do
  action :install
  options '-y'
end

# 安装MySQL适配包
package 'redmine-mysql' do
  action :install
end

Chef会在执行安装操作前自动完成所有debconf参数的设置,整个部署过程不会出现任何交互对话框。

方法二:使用社区维护的Redmine Cookbook(更推荐)

如果使用Supermarket上的官方Redmine Cookbook,你可以直接在attributes文件里配置数据库相关参数,Cookbook会自动帮你处理debconf的配置工作:

# 在attributes/default.rb中添加配置
default['redmine']['database']['type'] = 'mysql'
default['redmine']['database']['name'] = 'redmine_default'
default['redmine']['database']['user'] = 'redmine'
default['redmine']['database']['password'] = 'your_secure_password'
default['redmine']['database']['host'] = 'localhost'
default['redmine']['database']['port'] = 3306

然后在你的主recipe中引入该Cookbook即可:

include_recipe 'redmine::default'

这种方式更符合Chef的基础设施即代码理念,后续维护和修改也更方便。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 03:55:19