远程自动安装mysql-server和postfix

4 投票
1 回答
1108 浏览
提问于 2025-04-17 06:30

我正在用Fabric运行一个Python脚本,这个脚本会把一个bash脚本远程发送并执行。这个脚本需要在多个远程服务器上自动运行(不需要用户干预)。

但是,当我安装这两个软件包时,命令行界面会出现一个小问题,就是会弹出图形界面的提示。这导致bash脚本“卡住”,在等待用户输入才能继续。

  1. mysql-server(提示用户输入根密码)
  2. postfix(提示进行一些配置设置)

有没有什么办法可以在命令行中配置这个过程,而不需要图形界面的提示呢?

1 个回答

2

在这个链接中,介绍了如何安装mysql-server的解决方案,基本上你需要做的就是:

# password prompt 
while True:
    mysql_password = getpass('Please enter MySQL root password: ')
    mysql_password_confirmation = getpass('Please confirm your password: ')
    if mysql_password == mysql_password_confirmation:
        break
    else:
        print "Passwords don't match"

# set the value in debconf
with settings(hide('warnings', 'running', 'stdout', 'stderr'),
              warn_only=True):
    if not run('dpkg-query --show mysql-server'):
        sudo('echo "mysql-server-5.1 mysql-server/root_password password '
            '%s" | debconf-set-selections' % mysql_password)
        sudo('echo "mysql-server-5.1 mysql-server/root_password_again '
             'password %s" | debconf-set-selections' % mysql_password)

撰写回答