导入/导出服务器
导入/导出服务器¶
服务器定义(及其组)可以导出到JSON文件中,然后重新导入到相同或不同的系统中,从而可以轻松地预先配置sdAdmin。 setup.py脚本用于此目的。
注意
要导出或导入服务器,必须使用通常用于运行sdAdmin的Python解释器,以确保所需的Python包可用。在大多数软件包中,可以在安装目录中的Python虚拟环境中找到它。当使用平台本地软件包时,Python的系统安装可能是sdAdmin所使用的安装。
导出服务器¶
要导出安装中定义的服务器,只需使用–dump-servers命令行选项调用setup.py,然后输入所需输出文件的名称(如果需要,请输入路径)。默认情况下,将转储桌面模式用户拥有的服务器(请参阅config.py中的DESKTOP_USER设置)。可以使用–user命令行选项将其覆盖。例如:
/path/to/python /path/to/setup.py –dump-servers output_file.json
# or, to specify a non-default user name:
/path/to/python /path/to/setup.py –dump-servers output_file.json –user user@example.com
要仅导出某些服务器,请使用–servers选项并列出一个或多个服务器ID。 例如:
/path/to/python /path/to/setup.py –dump-servers output_file.json –server 1 2 5
导入服务器¶
要导入在JSON文件中定义的服务器,只需使用–load-servers命令行选项调用setup.py,然后调用包含服务器定义的JSON文件的名称(如果需要,路径)。 服务器将归桌面模式用户所有(默认情况下为sdAdmin4@sdAdmin.org-请参阅config.py中的DESKTOP_USER设置)。 可以使用–user命令行选项将其覆盖。 例如:
/path/to/python /path/to/setup.py –load-servers input_file.json
# or, to specify a non-default user name to own the new servers:
/path/to/python /path/to/setup.py –load-servers input_file.json –user user@example.com
如果使用配置数据库中不存在的服务器组定义了任何服务器,则将创建所需的组。
JSON格式¶
导入或导出服务器时使用的JSON文件格式非常简单,仅包含服务器列表以及许多属性。 在每个服务器定义中都必须存在以下属性:名称,组,端口,用户名,SSLMode,MaintenanceDB以及Host,HostAddr或Service之一。
密码字段不能导入或导出。
以下示例显示了最低定义的服务器和完整定义的服务器:
{
"Servers": { "1": { "Name": "Minimally Defined Server", "Group": "Server Group 1", "Port": 5432, "Username": "seaboxsql", "Host": "localhost", "SSLMode": "prefer", "MaintenanceDB": "seaboxsql" }, "2": { "Name: "Fully Defined Server", "Group": "Server Group 2", "Host": "host.domain.com", "HostAddr": "192.168.1.2", "Port": 5432, "MaintenanceDB": "seaboxsql", "Username": "seaboxsql", "Role": "my_role_name", "SSLMode": "require", "Comment": "This server has every option configured in the JSON", "DBRestriction": "live_db test_db", "PassFile": "/path/to/pgpassfile", "SSLCert": "/path/to/sslcert.crt", "SSLKey": "/path/to/sslcert.key", "SSLRootCert": "/path/to/sslroot.crt", "SSLCrl": "/path/to/sslcrl.crl", "SSLCompression": 1, "BGColor": "#ff9900", "FGColor": "#000000", "Service": "seaboxsql-10", "Timeout": 60, "UseSSHTunnel": 1, "TunnelHost": "192.168.1.253", "TunnelPort": 22, "TunnelUsername": "username", "TunnelAuthentication": 0 }
}
}