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 }
 | ||
| }
 |