linux 使用VM示例启动脚本在SFTPGo中创建第一个管理员?

plupiseo  于 2023-11-17  发布在  Linux
关注(0)|答案(2)|浏览(120)

根据https://github.com/drakkan/sftpgo中的readme.md,创建第一个admin的一种方法是在配置文件中启用create_default_admin并设置环境变量SFTPGO_DEFAULT_ADMIN_USERNAME和SFTPGO_DEFAULT_ADMIN_PASSWORD。
我遵循这一点,尽管设置这些成功,我无法创建第一个管理员。
我想这样做的原因是在GCP上自动创建SFTPGo示例,然后使用一些预定义的管理员和密码对其进行初始化。
这是我用途:的启动脚本

metadata_startup_script = <<-SCRIPT
#!/bin/bash

# Install SFTPGo
sudo apt-get update
sudo add-apt-repository -y ppa:sftpgo/sftpgo
sudo apt update
sudo apt-get install -y sftpgo

# Set ENV Variables
echo 'export SFTPGO_DEFAULT_ADMIN_USERNAME="user"' | sudo tee -a /etc/environment
echo 'export SFTPGO_DEFAULT_ADMIN_PASSWORD="password"' | sudo tee -a /etc/environment

# Apply changes to the current shell
source /etc/environment

# Change create_default_admin to true
sudo -s && jq '.data_provider.create_default_admin = true' /etc/sftpgo/sftpgo.json > temp.json && mv temp.json /etc/sftpgo/sftpgo.json

# Restart the shell to apply changes
exec bash

SCRIPT

字符串
虽然我的脚本中的一切工作,当我访问“https://IP:8080/web/admin”安装SFTPGo后第一次,它仍然要求我创建第一个管理员。
我这样重新启动服务:

sudo systemctl restart sftpgo


服务无法重新启动。我检查了如下日志:

journalctl -u sftpgo


我看到这个错误:

{"level":"error","time":"2023-10-17T00:50:46.006","sender":"service","message":"error initializing data provider: to create the default admin you need to set the env vars \"SFTPGO_DEFAULT_ADMIN_USERNAME\" and \"SFTPGO_DEFAULT_ADMIN_PASSWORD\"""}


我确实在设置这些ENV变量。我登录到示例并检查所需的ENV变量是否全局声明。

  • 如果这个问题是非常具体的服务是堆栈溢出
jecbmhm3

jecbmhm31#

根据sftpgo systemd文件,您可以将/etc/sftpgo/sftpgo.env用作env文件。
尝试将您的env vars添加到此文件:

echo 'SFTPGO_DEFAULT_ADMIN_USERNAME="admin"' >> /etc/sftpgo/sftpgo.env
echo 'SFTPGO_DEFAULT_ADMIN_PASSWORD="password"' >> /etc/sftpgo/sftpgo.env

字符串

93ze6v8z

93ze6v8z2#

能够使用以下方法实现这一点:

# Set environment variables in .bashrc
echo 'export SFTPGO_DEFAULT_ADMIN_USERNAME="${var.sftp_admin_username}"' | sudo tee -a /etc/environment
echo 'export SFTPGO_DEFAULT_ADMIN_PASSWORD="${var.sftp_admin_password}"' | sudo tee -a /etc/environment

# Apply changes to the current shell
source /etc/environment

sudo -s <<EOF
    jq '.data_provider.create_default_admin = true' /etc/sftpgo/sftpgo.json > 
    temp.json
    mv temp.json /etc/sftpgo/sftpgo.json
EOF

sudo systemctl stop sftpgo && sudo sftpgo serve

字符串

相关问题