mirror of
https://github.com/certd/certd.git
synced 2026-04-23 19:57:27 +08:00
refactor: host
This commit is contained in:
@@ -1,13 +1,16 @@
|
||||
import _ from 'lodash-es'
|
||||
import { accessProviderRegistry } from '@certd/api'
|
||||
|
||||
import { AliyunAccessProvider } from './providers/aliyun.js'
|
||||
import { DnspodAccessProvider } from './providers/dnspod.js'
|
||||
import { TencentAccessProvider } from './providers/tencent.js'
|
||||
import { accessProviderRegistry } from '@certd/api'
|
||||
import { SSHAccessProvider } from './providers/ssh.js'
|
||||
|
||||
export const DefaultAccessProviders = {
|
||||
AliyunAccessProvider,
|
||||
DnspodAccessProvider,
|
||||
TencentAccessProvider,
|
||||
SSHAccessProvider
|
||||
}
|
||||
export default {
|
||||
install () {
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import _ from 'lodash-es'
|
||||
export class AliyunAccessProvider{
|
||||
export class AliyunAccessProvider {
|
||||
static define () {
|
||||
return {
|
||||
name: 'aliyun',
|
||||
@@ -28,7 +27,4 @@ export class AliyunAccessProvider{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
constructor () {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
export class DnspodAccessProvider {
|
||||
export class DnspodAccessProvider {
|
||||
static define () {
|
||||
return {
|
||||
name: 'dnspod',
|
||||
@@ -23,8 +23,4 @@ export class DnspodAccessProvider {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
constructor () {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
export class SSHAccessProvider {
|
||||
static define () {
|
||||
return {
|
||||
name: 'ssh',
|
||||
label: '主机',
|
||||
desc: '',
|
||||
input: {
|
||||
host: { required: true },
|
||||
port: {
|
||||
label: '端口',
|
||||
type: Number,
|
||||
default: '22',
|
||||
required: true
|
||||
},
|
||||
username: {
|
||||
default: 'root',
|
||||
required: true
|
||||
},
|
||||
password: { desc: '登录密码' },
|
||||
publicKey: {
|
||||
desc: '密钥,密码或此项必填一项'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
export class TencentAccessProvider {
|
||||
export class TencentAccessProvider {
|
||||
static define () {
|
||||
return {
|
||||
name: 'tencent',
|
||||
@@ -6,7 +6,7 @@ export class TencentAccessProvider {
|
||||
input: {
|
||||
secretId: {
|
||||
type: String,
|
||||
label:'secretId',
|
||||
label: 'secretId',
|
||||
component: {
|
||||
placeholder: 'secretId',
|
||||
rules: [{ required: true, message: '该项必填' }]
|
||||
@@ -23,8 +23,4 @@ export class TencentAccessProvider {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
constructor () {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -13,7 +13,10 @@ export class HostShellExecute extends AbstractHostPlugin {
|
||||
label: '执行远程主机脚本命令',
|
||||
input: {
|
||||
script: {
|
||||
label: 'shell脚本命令'
|
||||
label: 'shell脚本命令',
|
||||
component: {
|
||||
name: 'a-textarea'
|
||||
}
|
||||
},
|
||||
accessProvider: {
|
||||
label: '主机登录配置',
|
||||
@@ -21,7 +24,7 @@ export class HostShellExecute extends AbstractHostPlugin {
|
||||
desc: '登录',
|
||||
component: {
|
||||
name: 'access-provider-selector',
|
||||
filter: 'host'
|
||||
filter: 'ssh'
|
||||
},
|
||||
required: true
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import ssh2 from 'ssh2'
|
||||
import logger from '../utils/util.log.js'
|
||||
import path from 'path'
|
||||
import { util } from '@certd/api'
|
||||
const logger = util.logger
|
||||
export class SshClient {
|
||||
/**
|
||||
*
|
||||
|
||||
@@ -13,10 +13,10 @@ export class UploadCertToHost extends AbstractHostPlugin {
|
||||
label: '上传证书到主机',
|
||||
input: {
|
||||
crtPath: {
|
||||
label: '证书路径'
|
||||
label: '证书保存路径'
|
||||
},
|
||||
keyPath: {
|
||||
label: '私钥路径'
|
||||
label: '私钥保存路径'
|
||||
},
|
||||
accessProvider: {
|
||||
label: '主机登录配置',
|
||||
@@ -24,7 +24,7 @@ export class UploadCertToHost extends AbstractHostPlugin {
|
||||
desc: 'access授权',
|
||||
component: {
|
||||
name: 'access-provider-selector',
|
||||
filter: 'host'
|
||||
filter: 'ssh'
|
||||
},
|
||||
required: true
|
||||
}
|
||||
|
||||
@@ -9,6 +9,10 @@ import { DeployCertToTencentCDN } from './tencent/deploy-to-cdn/index.js'
|
||||
import { DeployCertToTencentCLB } from './tencent/deploy-to-clb/index.js'
|
||||
|
||||
import { DeployCertToTencentTKEIngress } from './tencent/deploy-to-tke-ingress/index.js'
|
||||
|
||||
import { UploadCertToHost } from './host/upload-to-host/index.js'
|
||||
import { HostShellExecute } from './host/host-shell-execute/index.js'
|
||||
|
||||
import { pluginRegistry } from '@certd/api'
|
||||
|
||||
export const DefaultPlugins = {
|
||||
@@ -17,7 +21,9 @@ export const DefaultPlugins = {
|
||||
UploadCertToTencent,
|
||||
DeployCertToTencentTKEIngress,
|
||||
DeployCertToTencentCDN,
|
||||
DeployCertToTencentCLB
|
||||
DeployCertToTencentCLB,
|
||||
UploadCertToHost,
|
||||
HostShellExecute
|
||||
}
|
||||
export default {
|
||||
install () {
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import dayjs from 'dayjs'
|
||||
import tencentcloud from 'tencentcloud-sdk-nodejs'
|
||||
import { AbstractTencentPlugin } from '../abstract-tencent.js'
|
||||
|
||||
|
||||
Reference in New Issue
Block a user