跳转至

导入/导出服务器

导入/导出服务器

服务器定义(及其组)可以导出到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  
   }

}
}