@@ -38,13 +38,23 @@ func (cluster *Cluster) OnPremiseConnect(server *ServerMonitor) (*sshclient.Clie
38
38
if ! cluster .Conf .OnPremiseSSH {
39
39
return nil , errors .New ("onpremise-ssh disable " )
40
40
}
41
- user , _ := misc .SplitPair (cluster .Conf .OnPremiseSSHCredential )
41
+ user , password := misc .SplitPair (cluster .Conf .OnPremiseSSHCredential )
42
+
42
43
key := cluster .OnPremiseGetSSHKey (user )
43
- client , err := sshcli .DialWithKey (misc .Unbracket (server .Host )+ ":" + strconv .Itoa (cluster .Conf .OnPremiseSSHPort ), user , key )
44
- if err != nil {
45
- return nil , errors .New (fmt .Sprintf ("OnPremise Provisioning via SSH %s %s" , err .Error (), key ))
44
+ if password != "" {
45
+ client , err := sshcli .DialWithPasswd (misc .Unbracket (server .Host )+ ":" + strconv .Itoa (cluster .Conf .OnPremiseSSHPort ), user , password )
46
+ if err != nil {
47
+ return nil , errors .New (fmt .Sprintf ("OnPremise Provisioning via SSH %s %s" , err .Error (), key ))
48
+ }
49
+ return client , nil
50
+ } else {
51
+ client , err := sshcli .DialWithKey (misc .Unbracket (server .Host )+ ":" + strconv .Itoa (cluster .Conf .OnPremiseSSHPort ), user , key )
52
+ if err != nil {
53
+ return nil , errors .New (fmt .Sprintf ("OnPremise Provisioning via SSH %s %s" , err .Error (), key ))
54
+ }
55
+ return client , nil
46
56
}
47
- return client , nil
57
+ return nil , errors . New ( "onpremise-ssh no key no password " )
48
58
}
49
59
50
60
func (cluster * Cluster ) OnPremiseProvisionDatabaseService (server * ServerMonitor ) {
@@ -164,7 +174,7 @@ func (cluster *Cluster) OnPremiseStartDatabaseService(server *ServerMonitor) err
164
174
if user , ok := server .ClusterGroup .APIUsers [adminuser ]; ok {
165
175
adminpassword = user .Password
166
176
}
167
- buf2 := strings .NewReader ("export MYSQL_ROOT_PASSWORD=\" " + server .Pass + "\" ;export REPLICATION_MANAGER_URL=\" https://" + server .ClusterGroup .Conf .MonitorAddress + ":" + server .ClusterGroup .Conf .APIPort + "\" ;export REPLICATION_MANAGER_USER=\" " + adminuser + "\" ;export REPLICATION_MANAGER_PASSWORD=\" " + adminpassword + "\" ;export REPLICATION_MANAGER_HOST_NAME=\" " + server .Host + "\" ;export REPLICATION_MANAGER_HOST_PORT=\" " + server .Port + "\" ;export REPLICATION_MANAGER_CLUSTER_NAME=\" " + server .ClusterGroup .Name + "\" \n " )
177
+ buf2 := strings .NewReader ("export MYSQL_ROOT_PASSWORD=\" " + server .Pass + "\" ;export REPLICATION_MANAGER_URL=\" https://" + server .ClusterGroup .Conf .MonitorAddress + ":" + server .ClusterGroup .Conf .APIPort + "\" ;export REPLICATION_MANAGER_USER=\" " + adminuser + "\" ;export REPLICATION_MANAGER_PASSWORD=\" " + adminpassword + "\" ;export REPLICATION_MANAGER_HOST_NAME=\" " + server .Host + "\" ;export REPLICATION_MANAGER_HOST_PORT=\" " + server .Port + "\" ;export REPLICATION_MANAGER_CLUSTER_NAME=\" " + server .ClusterGroup .Name + "\" \n sudo -E " )
168
178
r := io .MultiReader (buf2 , buf )
169
179
170
180
var (
0 commit comments