Documentation
¶
Index ¶
- Constants
- Variables
- func GetSSHKnownHostsFile() string
- func Init(configFile string) error
- func IsDeploymentResourceBusiness(business deployPB.ExecuteBusinesType) bool
- func IsSSHConfigured(sshConfig *SSHConfig) bool
- func PrepareRuntimeDirs() error
- type ALBConfig
- type CDNConfig
- type CLBConfig
- type COSConfig
- type Configuration
- type DCDNConfig
- type DeployConfig
- type DeploymentResource
- type DeploymentResourceDirectoryEntry
- type ESAConfig
- type EdgeOneConfig
- type FeiNiuSSHConfig
- type LogConfig
- type NLBConfig
- type OSSConfig
- type OnePanelConfig
- type Provider
- type ProviderAuth
- type RustFSConfig
- type SSHConfig
- type SafeLineConfig
- type ServerConfig
- type UpdateConfig
Constants ¶
const ( // ProviderAliyun 是阿里云 provider 的配置名称。 ProviderAliyun = "aliyun" // ProviderTencentCloud 是腾讯云 provider 的配置名称。 ProviderTencentCloud = "cloudTencent" // ProviderQiniu 是七牛云 provider 的配置名称。 ProviderQiniu = "qiniu" )
Variables ¶
var ( Config *Configuration URL = URLProd URLProd = "https://anssl.cn/deploy" URLLocal = "http://localhost:9000/deploy" )
var Version = "dev"
Version is injected by release builds with:
go build -ldflags="-X github.com/https-cert/deploy/internal/config.Version=vX.Y.Z"
Development builds keep "dev" to avoid shipping stale hard-coded versions.
Functions ¶
func GetSSHKnownHostsFile ¶ added in v0.6.5
func GetSSHKnownHostsFile() string
GetSSHKnownHostsFile 返回与当前配置文件同目录的 SSH 主机密钥记录文件。
func IsDeploymentResourceBusiness ¶ added in v0.6.4
func IsDeploymentResourceBusiness(business deployPB.ExecuteBusinesType) bool
IsDeploymentResourceBusiness 判断业务是否需要解析一个精确部署资源。
func IsSSHConfigured ¶ added in v0.6.5
IsSSHConfigured 判断除默认端口外是否已经填写任一 SSH 字段。
func PrepareRuntimeDirs ¶ added in v0.6.0
func PrepareRuntimeDirs() error
PrepareRuntimeDirs 创建启动和部署需要的本地目录
Types ¶
type ALBConfig ¶ added in v0.6.5
type ALBConfig struct {
Label string `yaml:"label,omitempty"` // Label 控制台展示名称,留空时使用规范化域名
Domain string `yaml:"domain"` // Domain 监听器默认或 SNI 扩展绑定的精确域名
Region string `yaml:"region"` // Region ALB 实例所在地域 ID
LoadBalancerID string `yaml:"loadBalancerId"` // LoadBalancerID ALB 实例 ID
ListenerID string `yaml:"listenerId"` // ListenerID ALB HTTPS 或 QUIC 监听器 ID
}
ALBConfig 描述阿里云 ALB HTTPS 或 QUIC 监听器部署资源。
type CDNConfig ¶ added in v0.6.4
type CDNConfig struct {
Label string `yaml:"label,omitempty"` // Label 控制台展示名称,留空时使用规范化域名
Domain string `yaml:"domain"` // Domain CDN 绑定的精确域名
}
CDNConfig 描述一个 CDN 精确域名部署资源。
type CLBConfig ¶ added in v0.6.5
type CLBConfig struct {
Label string `yaml:"label,omitempty"` // Label 控制台展示名称,留空时使用规范化域名
Domain string `yaml:"domain"` // Domain 监听器默认或 SNI 扩展绑定的精确域名
Region string `yaml:"region"` // Region CLB 实例所在地域 ID
LoadBalancerID string `yaml:"loadBalancerId"` // LoadBalancerID CLB 实例 ID
ListenerPort int `yaml:"listenerPort"` // ListenerPort 阿里云 CLB HTTPS 监听端口
ListenerID string `yaml:"listenerId"` // ListenerID 腾讯云 CLB 监听器 ID
}
CLBConfig 描述阿里云或腾讯云 CLB 监听器部署资源;字段按 provider 名称使用。
type COSConfig ¶ added in v0.6.4
type COSConfig struct {
Label string `yaml:"label,omitempty"` // Label 控制台展示名称,留空时使用规范化域名
Domain string `yaml:"domain"` // Domain COS Bucket 绑定的精确自定义域名
Region string `yaml:"region"` // Region COS Bucket 所在地域
Bucket string `yaml:"bucket"` // Bucket 包含 APPID 的完整 COS Bucket 名称
}
COSConfig 描述一个 COS Bucket 自定义域名部署资源。
type Configuration ¶
type Configuration struct {
Server *ServerConfig `yaml:"server"` // Server 服务端连接和本地 HTTP-01 配置
SSL *DeployConfig `yaml:"ssl"` // SSL 本地部署目标配置
Update *UpdateConfig `yaml:"update"` // Update 自更新配置
Log *LogConfig `yaml:"log"` // Log 日志轮转配置
Provider []*Provider `yaml:"provider"` // Provider 云服务提供商配置
}
Configuration 应用配置结构
type DCDNConfig ¶ added in v0.6.4
type DCDNConfig struct {
Label string `yaml:"label,omitempty"` // Label 控制台展示名称,留空时使用规范化域名
Domain string `yaml:"domain"` // Domain DCDN 绑定的精确域名
}
DCDNConfig 描述一个 DCDN 精确域名部署资源。
type DeployConfig ¶ added in v0.5.0
type DeployConfig struct {
NginxPath string `yaml:"nginxPath"` // NginxPath 是 Nginx SSL 证书目录
ApachePath string `yaml:"apachePath"` // ApachePath 是 Apache SSL 证书目录
RustFSPath string `yaml:"rustFSPath"` // RustFSPath 兼容旧版 RustFS 本机目录配置
RustFS *RustFSConfig `yaml:"rustFS"` // RustFS 是本机或 SSH 远程部署配置
FeiNiu *SSHConfig `yaml:"feiNiu"` // FeiNiu 是可选的 SSH 远程配置,空值表示本机部署
OnePanel *OnePanelConfig `yaml:"onePanel"` // OnePanel 是 1Panel API 配置
SafeLine *SafeLineConfig `yaml:"safeLine"` // SafeLine 是雷池 WAF OpenAPI 配置
}
DeployConfig 本地证书部署目标配置
type DeploymentResource ¶ added in v0.6.4
type DeploymentResource struct {
TargetRef string // TargetRef 客户端根据资源身份自动生成的不透明稳定引用
Label string // Label 控制台展示名称
Domain string // Domain 资源绑定的精确域名
Region string // Region 云资源所在地域
Endpoint string // Endpoint OSS API Origin 覆盖值
Bucket string // Bucket 对象存储 Bucket 名称
SiteID string // SiteID 阿里云 ESA Site ID
ZoneID string // ZoneID 腾讯云 EdgeOne Zone ID
LoadBalancerID string // LoadBalancerID 负载均衡实例 ID
ListenerPort int // ListenerPort 负载均衡监听端口
ListenerID string // ListenerID 腾讯云 CLB 或阿里云 ALB/NLB 监听器 ID
}
DeploymentResource 描述从固定业务配置中解析出的精确部署资源。
func GetDeploymentResource ¶ added in v0.6.4
func GetDeploymentResource(providerName string, business deployPB.ExecuteBusinesType, targetRef string) (*DeploymentResource, bool)
GetDeploymentResource 按 provider、业务类型和 targetRef 精确查询本地部署资源。
type DeploymentResourceDirectoryEntry ¶ added in v0.6.4
type DeploymentResourceDirectoryEntry struct {
Provider string // Provider 云服务提供商配置名称
ExecuteBusinesType deployPB.ExecuteBusinesType // ExecuteBusinesType 明确的产品部署业务
TargetRef string // TargetRef 客户端自动生成的不透明引用
Label string // Label 资源展示名称
Domain string // Domain 资源精确域名
}
DeploymentResourceDirectoryEntry 是可上报给后端的脱敏部署资源目录项。
func GetDeploymentResourceDirectory ¶ added in v0.6.4
func GetDeploymentResourceDirectory() []DeploymentResourceDirectoryEntry
GetDeploymentResourceDirectory 返回不含凭据和私有资源定位字段的部署资源目录。
type ESAConfig ¶ added in v0.6.4
type ESAConfig struct {
Label string `yaml:"label,omitempty"` // Label 控制台展示名称,留空时使用规范化域名
Domain string `yaml:"domain"` // Domain ESA Record 绑定的精确域名
SiteID string `yaml:"siteId"` // SiteID ESA 站点 ID
}
ESAConfig 描述一个 ESA Record 部署资源。
type EdgeOneConfig ¶ added in v0.6.4
type EdgeOneConfig struct {
Label string `yaml:"label,omitempty"` // Label 控制台展示名称,留空时使用规范化域名
Domain string `yaml:"domain"` // Domain EdgeOne Host 的精确域名
ZoneID string `yaml:"zoneId"` // ZoneID EdgeOne 站点 ID
}
EdgeOneConfig 描述一个 EdgeOne Host 部署资源。
type FeiNiuSSHConfig ¶ added in v0.6.5
type FeiNiuSSHConfig = SSHConfig
FeiNiuSSHConfig 兼容已有飞牛 SSH 配置类型名称。
type LogConfig ¶ added in v0.6.0
type LogConfig struct {
MaxSizeMB int `yaml:"maxSizeMB"` // MaxSizeMB 单个日志文件最大体积,单位 MB
MaxBackups int `yaml:"maxBackups"` // MaxBackups 最多保留的轮转文件数量
MaxAgeDays int `yaml:"maxAgeDays"` // MaxAgeDays 轮转文件最长保留天数
}
LogConfig 日志轮转配置
type NLBConfig ¶ added in v0.6.5
type NLBConfig struct {
Label string `yaml:"label,omitempty"` // Label 控制台展示名称,留空时使用规范化域名
Domain string `yaml:"domain"` // Domain 监听器默认或 SNI 扩展绑定的精确域名
Region string `yaml:"region"` // Region NLB 实例所在地域 ID
LoadBalancerID string `yaml:"loadBalancerId"` // LoadBalancerID NLB 实例 ID
ListenerID string `yaml:"listenerId"` // ListenerID NLB TCPSSL 监听器 ID
}
NLBConfig 描述阿里云 NLB TCPSSL 监听器部署资源。
type OSSConfig ¶ added in v0.6.4
type OSSConfig struct {
Label string `yaml:"label,omitempty"` // Label 控制台展示名称,留空时使用规范化域名
Domain string `yaml:"domain"` // Domain OSS Bucket 绑定的精确自定义域名
Region string `yaml:"region"` // Region OSS Bucket 所在地域
Bucket string `yaml:"bucket"` // Bucket OSS Bucket 名称
Endpoint string `yaml:"endpoint,omitempty"` // Endpoint 可选的 OSS HTTPS API Origin
}
OSSConfig 描述一个 OSS Bucket 自定义域名部署资源。
type OnePanelConfig ¶ added in v0.5.1
type OnePanelConfig struct {
URL string `yaml:"url"` // 1Panel API 地址
APIKey string `yaml:"apiKey"` // 1Panel API 密钥
}
OnePanelConfig 1Panel 配置
type Provider ¶
type Provider struct {
Name string `yaml:"name"` // Name 提供商内部名称
Remark string `yaml:"remark"` // Remark 提供商展示备注
Auth *ProviderAuth `yaml:"auth"` // Auth 提供商认证配置
CDN []*CDNConfig `yaml:"cdn"` // CDN 精确域名部署资源
DCDN []*DCDNConfig `yaml:"dcdn"` // DCDN 精确域名部署资源
ESA []*ESAConfig `yaml:"esa"` // ESA Record 部署资源
OSS []*OSSConfig `yaml:"oss"` // OSS 自定义域名部署资源
EdgeOne []*EdgeOneConfig `yaml:"edgeOne"` // EdgeOne Host 部署资源
COS []*COSConfig `yaml:"cos"` // COS 自定义域名部署资源
CLB []*CLBConfig `yaml:"clb"` // 阿里云或腾讯云 CLB 监听器部署资源
ALB []*ALBConfig `yaml:"alb"` // 阿里云 ALB 监听器部署资源
NLB []*NLBConfig `yaml:"nlb"` // 阿里云 NLB 监听器部署资源
}
Provider 云服务提供商配置
func (*Provider) GetAccessKey ¶ added in v0.5.0
GetAccessKey 获取七牛云 AccessKey
func (*Provider) GetAccessKeyId ¶ added in v0.5.0
GetAccessKeyId 获取阿里云 AccessKeyId
func (*Provider) GetAccessKeySecret ¶ added in v0.5.0
GetAccessKeySecret 获取阿里云 AccessKeySecret
func (*Provider) GetAccessSecret ¶ added in v0.5.0
GetAccessSecret 获取七牛云 AccessSecret
func (*Provider) GetSecretId ¶ added in v0.5.0
GetSecretId 获取腾讯云 SecretId
func (*Provider) GetSecretKey ¶ added in v0.5.0
GetSecretKey 获取腾讯云 SecretKey
type ProviderAuth ¶ added in v0.5.0
type ProviderAuth struct {
// 阿里云认证字段
AccessKeyId string `yaml:"accessKeyId,omitempty"`
AccessKeySecret string `yaml:"accessKeySecret,omitempty"`
// 腾讯云认证字段
SecretId string `yaml:"secretId,omitempty"`
SecretKey string `yaml:"secretKey,omitempty"`
// 七牛云认证字段
AccessKey string `yaml:"accessKey,omitempty"`
AccessSecret string `yaml:"accessSecret,omitempty"`
}
ProviderAuth 云服务提供商认证字段集合
type RustFSConfig ¶ added in v0.6.5
type RustFSConfig struct {
Path string `yaml:"path"` // Path 是 RustFS TLS 证书根目录
SSHConfig `yaml:",inline" mapstructure:",squash"` // SSHConfig 是可选的 SSH 远程连接配置
}
RustFSConfig 保存 RustFS 证书目录及可选的 SSH 远程配置。
type SSHConfig ¶ added in v0.6.5
type SSHConfig struct {
Host string `yaml:"host"` // Host 是远程主机名或 IP 地址
Port int `yaml:"port"` // Port 是 SSH 端口,默认 22
Username string `yaml:"username"` // Username 是 SSH 登录用户名
Password string `yaml:"password"` // Password 是密码认证及 sudo 使用的密码
PrivateKeyPath string `yaml:"privateKeyPath"` // PrivateKeyPath 是 deploy 客户端本地私钥绝对路径
PrivateKeyPassphrase string `yaml:"privateKeyPassphrase"` // PrivateKeyPassphrase 是加密私钥的可选口令
}
SSHConfig 保存仅供 deploy 客户端本地使用的 SSH 认证配置。
type SafeLineConfig ¶ added in v0.6.5
type SafeLineConfig struct {
URL string `yaml:"url"` // URL 是雷池管理端地址
APIToken string `yaml:"apiToken"` // APIToken 是通用设置中生成的 API Token
InsecureSkipVerify bool `yaml:"insecureSkipVerify"` // InsecureSkipVerify 仅用于显式信任自签名 HTTPS 证书
}
SafeLineConfig 雷池 WAF OpenAPI 配置。
type ServerConfig ¶
type ServerConfig struct {
AccessKey string `yaml:"accessKey"` // AccessKey 后端鉴权令牌
Env string `yaml:"env"` // Env 服务环境,空值为生产环境,local 为本地开发环境
Port int `yaml:"port"` // Port HTTP-01 challenge 服务端口,默认 19000
}
ServerConfig 服务端连接和本地 HTTP-01 challenge 配置
type UpdateConfig ¶
type UpdateConfig struct {
// 镜像源类型: github, ghproxy, custom
Mirror string `yaml:"mirror"`
// 自定义镜像地址(当 mirror=custom 时使用)
CustomURL string `yaml:"customUrl"`
// HTTP 代理地址
Proxy string `yaml:"proxy"`
}
UpdateConfig 自更新下载源和代理配置