mirror of https://github.com/certd/certd
141 lines
3.3 KiB
JavaScript
141 lines
3.3 KiB
JavaScript
import _ from 'lodash'
|
||
import optionsPrivate from './options.private.js'
|
||
const defaultOptions = {
|
||
args: {
|
||
forceCert: false, // 强制更新证书
|
||
skipCert: false, // 是否跳过证书申请环节
|
||
forceDeploy: true,
|
||
test: false
|
||
},
|
||
accessProviders: {
|
||
aliyun: {
|
||
providerType: 'aliyun',
|
||
accessKeyId: '',
|
||
accessKeySecret: ''
|
||
},
|
||
dnspod: {
|
||
providerType: 'dnspod',
|
||
id: '',
|
||
token: ''
|
||
},
|
||
tencent: {
|
||
providerType: 'tencent',
|
||
secretId: '',
|
||
secretKey: ''
|
||
},
|
||
myLinux: {
|
||
providerType: 'SSH',
|
||
username: 'xxx',
|
||
password: 'xxx',
|
||
host: '1111.com',
|
||
port: 22,
|
||
publicKey: ''
|
||
}
|
||
},
|
||
cert: {
|
||
domains: ['*.docmirror.cn'],
|
||
email: 'xiaojunnuo@qq.com',
|
||
dnsProvider: {
|
||
type:'aliyun',
|
||
accessProvider:'aliyun'
|
||
},
|
||
csrInfo: {
|
||
country: 'CN',
|
||
state: 'GuangDong',
|
||
locality: 'ShengZhen',
|
||
organization: 'CertD Org.',
|
||
organizationUnit: 'IT Department',
|
||
emailAddress: 'xiaojunnuo@qq.com'
|
||
}
|
||
},
|
||
deploy: [
|
||
{
|
||
deployName: '流程1-部署到阿里云系列产品',
|
||
disabled: false,
|
||
tasks: [
|
||
{
|
||
taskName: '上传证书到云',
|
||
type: 'uploadCertToAliyun',
|
||
props:{
|
||
accessProvider: 'aliyun'
|
||
}
|
||
},
|
||
{ // CDN、SCDN、DCDN和负载均衡(SLB)
|
||
taskName: '部署证书到CDN',
|
||
type: 'deployCertToAliyunCDN',
|
||
props:{
|
||
domainName: 'certd-cdn-upload.docmirror.cn',
|
||
certName: 'certd部署测试(upload)',
|
||
from: 'upload',
|
||
accessProvider: 'aliyun'
|
||
}
|
||
}
|
||
// {
|
||
// name: '部署证书到阿里云集群Ingress',
|
||
// type: 'deployCertToAliyunK8sIngress',
|
||
// accessProvider: 'aliyun'
|
||
// }
|
||
]
|
||
},
|
||
{
|
||
deployName: '流程2-部署到nginx服务器',
|
||
disabled: false,
|
||
tasks: [
|
||
{
|
||
taskName: '上传证书到服务器',
|
||
type: 'uploadCertToHost',
|
||
props:{
|
||
accessProvider: 'aliyun-ssh',
|
||
crtPath: '/root/certd-test/cert.pem',
|
||
keyPath: '/root/certd-test/cert.key'
|
||
}
|
||
},
|
||
{
|
||
taskName: '重启linux',
|
||
type: 'hostShellExecute',
|
||
props:{
|
||
accessProvider: 'aliyun-ssh',
|
||
script: ['ls']
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
deployName: '流程4-部署到腾讯云ingress',
|
||
disabled: true,
|
||
tasks: [
|
||
{
|
||
taskName: '上传到腾讯云',
|
||
type: 'uploadCertToTencent',
|
||
props:{
|
||
accessProvider: 'tencent-yonsz'
|
||
}
|
||
},
|
||
{
|
||
taskName: '部署到TKE-ingress',
|
||
type: 'deployCertToTencentTKEIngress',
|
||
props:{
|
||
clusterId:'cls-6lbj1vee',
|
||
ingressName:'ingress-base',
|
||
secretName:'certd-base-yonsz-net-hnuzjrzf',
|
||
accessProvider: 'tencent-yonsz'
|
||
}
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
|
||
_.merge(defaultOptions, optionsPrivate)
|
||
|
||
export function createOptions(){
|
||
return _.cloneDeep(defaultOptions)
|
||
}
|
||
|
||
export function getDnsProviderOptions (options) {
|
||
if(!options){
|
||
options = createOptions()
|
||
}
|
||
return { accessProviders: options.accessProviders, props: options.cert.dnsProvider }
|
||
}
|