### schema specification
eg. schema.yml
```yaml
parent_product_name: DTinsight
product_name: dtstack easy-stack
product_name_display: dtstack easy-stack(product_name的显示名,可选)
product_version: 2.1-xinwang
service:
dtlog:
service_display: dtlog(service的显示名,可选)
version: 1.8.1
instance:
pseudo: true #伪服务
ha_role_cmd: echo master #HA command
#install path /opt/dtstack/dtstack easy-stack/dtlog
cmd: bin/dtlog --port ${SLB.dtlog_front_port} --config ${config_path} --ca ${es.ca_file} --uic ${dtuic.jjww} #服务tar包内路径
config_paths:
- ${config_path}
environment:
MYSQL_ADDRESS: ${mysql.esip}:${es.bizdb}
ES_ADDR: ${@es} #es service first ip
healthcheck:
shell: curl http://${dtlog_ip_port}/xxx/healthcheck
#period: 30s #default 60s
start_period: 10s #default 10s
timeout: 10s #default 10s
retries: 1 #default 1
max_replica: 3
start_after_install: false
post_deploy: chown 0644 dtlog && zkcreate node xxx --ip ${@es}
post_undeploy: rm -rf /var/data/dtlog
logs:
- log/abc.log
- /var/log/dtlog/*.log
group: default
depends_on:
- es
- dtuic
config:
log_port: 8888
config_path: dtlog.ini
dtlog_ip_port: ${@dtlog}:8080 #self service's node ip
es_ips: ${@es} #es service ip lists
self_ip: ${@dtlog}
es:
version: 1.2
instance:
use_cloud: true # same as instance == null
cmd: start.sh
config:
ca_file:
type: filepath
desc: CA-File for EasyLog
default: etc/es.ca.key
bizdb: guyan${mysql.dsn}
mysql:
version: 5.7
instance:
cmd: start.sh
max_replica: 1
prometheus_port: ${prometheus_port}
update_recreate: true
config:
username:
type: string
desc: Database Username for EasyLog
default: root
password:
type: string
desc: Database Password for EasyLog
default: dtstack
dsn: /dbname?encode=utf8
prometheus_port: 9104
esip: ${@es}
SLB:
version: 8.7
#no instance, usually for cloud or other service/product
config:
dtlog_front_port:
type: port
desc: Uic port for EasyLog
default: ${dtlog.log_port}
dtlog_back_port: 8879
dtuic@other_product.uic:
#other-product uic's instance field not inherit
version: 1.0
#no instance, usually for cloud or other service/product
depends_on:
- es
- SLB
config:
username:
type: string
desc: Username for UIC
default: root
password:
type: string
desc: Password for UIC
default: dtstack
```
dtlog config file .eg dtlog.ini
```ini
es-server: http://{{.Join .es_ips ","}}/aaa
arg: -c {{.config_path}} -self {{.dtlog_ip_port}} -host {{.Hostname .es_ips}}
node-count: {{.NodeCount .self_ip}}
node-index: {{.NodeIndex .self_ip}}
node-id: {{.NodeID .self_ip}} ##分配后不变
broker-id: {{.LastSegIP .self_ip}} ##IP最后一段作为broker-id
add-one: {{.AddOne 100}}
JoinHost: http://{{.JoinHost .self_ip ","}}
JoinHost_: http://{{.JoinHost "self_ip" ","}} ##使用字符串,不推荐
JoinxHost: http://{{.JoinxHost .self_ip ","}}
Hostname: {{.Hostname .self_ip}}
IPList: {{range $v := .IPList .self_ip}}{{$v}},{{end}}
HostList: {{range $v := .HostList .self_ip}}{{$v}},{{end}}
HostList_: {{range $v := .HostList "self_ip"}}{{$v}},{{end}} ##使用字符串,不推荐
GetIpByNodeID: {{.GetIpByNodeID .NodeID .self_ip}}
```
### All keys must match same as program variable name limit.
## 顶层字段:
- parent_product_name: 产品名称
- product_name:产品名称,不能重复,不能修改[必填]
- product_name_display:产品显示名称 [选填]
- product_version: 产品版本号,对外唯一可见版本号(升级/回滚)[必填]
- product_type: 产品包类型,默认为传统包 [选填]
- service: 服务字典列表,对应服务包xxx.zip[非空]
## 服务字段:
xxx@other_product.yyy:xxx是本产品内的唯一服务名,
`@`表示继承于,other-product表示其它产品名称,yyy表示服务名称
xxx@other_product.yyy[#other_product_version]@xxxx:
继承服务扩展,xxxx为继承服务属性,如xxxx=option表示非部署依赖必须,为可选继承服务;xxxx=bridge表示跨集群桥接依赖
可选继承服务的服务IP缺省为[127.0.0.1]
[#other_product_version]可省,默认依赖同集群已部署服务,k8s部署模式下依赖传统集群服务的必须带
## 服务内关键字段:
- service_display:服务的显示名 [选填]
- version:服务版本号(判断是否需要升级/回滚)[必填]
- depends_on:依赖服务列表 [可选]
- relatives: 部署血缘,需要部署在相同的节点上 [可选]
- instance:实例数组(从上到下顺序执行),没有表示`虚拟服务`,只提供配置信息给其它服务,如RDS,ELB eg. [可选]
- instance.empty_car:空车模式|空包模式,表示仅部署实例管控逻辑,不产生实际的文件部署,可用于现有系统被EM接管[可选]
- instance.install_path:指定实例的安装路径,缺省时使用默认安装路径[可选]
- instance.use_cloud:是否使用云上资源,跟`虚拟服务`意义相同[可选]
- instance.run_user:指定实例启动用户,没有表示跟父进程一致 [选填]
- instance.data_dir:数据目录配置,配置run_user时会按照run_user做目录chown run_user:run_user[选填]
- instance.cmd:实例启动命令行,必须hang住(空格间隔参数,非shell,忽略std/stderr输出) [必填]
- instance.image:实例镜像,kubernetes产品包必填 [选填]
- instance.replica:副本数量, kubernetes产品包必填 [可选]
- instance.home_page:实例home页面 [可选]
- instance.ha_role_cmd:实例HA角色探测命令 [可选]
- instance.pseudo:是否是伪服务实例,默认false [可选]
- instance.max_replica:最大实例副本数量 [可选]
- instance.start_after_install:当所有节点安装完成后再启动[可选]
- instance.update_recreate:先删除老实例,再启动新实例[可选]
- instance.config_path:配置文件路径[可选]
- instance.environment:环境变量列表 [必填]
- instance.post_deploy:部署完成后运行命令[可选]
- instance.post_upgrade:部署完成后执行特定升级命令,如执行增量sql[可选]
- instance.post_undeploy:卸载部署完成后运行命令[可选]
- instance.prometheus_port:prometheus监听端口(如果有exporter,必须包含在产品包中且在cmd脚本中启动)[可选]
- instance.logs: 日志文件(支持*号匹配)[可选]
- instance.healthcheck:健康检查 [可选]
- instance.healthcheck.shell:return code=0表示成功[必填]
- instance.healthcheck.period:检查周期(>=1s),如"300s", "5m", "1.5h"[可选,默认60s]
- instance.healthcheck.start_period:开始检查时间,如"10s"[可选]
- instance.healthcheck.timeout:超时时间,如"10s"[可选]
- instance.healthcheck.retries:重试次数,如果都失败,才认为健康检查失败[可选,默认1]
- group: 组名称,默认default[可选]
- config: 可配置字段块,用来被本服务配置文件或所有服务instance,config字段引用
## 页面提示`可配置字段`(前端暂不支持)
- type:类型(filepath,port,ip,number,string),用来校验输入信息
- desc:描述信息
- default:默认值
## 普通`可配置字段`
除上面类型字段外的字段
## 变量引用
- `${[service.]field}`:引用service服务config块中的变量field。service可以省略,表示引用本服务块内的变量
- `${@service[.instance-name]}`:引用service服务中instance-name实例ip列表。instance-name可以省略,表示所有实例IP列表
## 服务配置文件
用golang模板引用本服务内�
没有合适的资源?快使用搜索试试~ 我知道了~
一款支持标准化schema定义、自动化部署产品包的软件.zip
共1601个文件
go:515个
tsx:209个
sh:161个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 45 浏览量
2024-03-23
12:37:26
上传
评论
收藏 47.32MB ZIP 举报
温馨提示
旨在对产品包下每个服务进行部署、升级、卸载、配置等操作,解放人工运维成本。 运维(Operations & Maintenance,简称O&M)是IT行业中至关重要的角色,负责确保信息系统和服务的高效稳定运行。运维工程师的工作涵盖了系统架构搭建、维护、优化,以及故障排查与解决等多个方面。 首先,运维工作包括基础设施的部署与配置,如服务器、网络设备、存储设备等硬件资源的安装调试与监控,同时还需要安装操作系统、数据库和其他应用软件,并进行性能调优以满足业务需求。 其次,运维人员承担着日常监控与安全管理任务,他们借助各类工具持续监控系统的运行状态,及时发现并处理异常情况,预防服务中断。此外,运维还包括制定备份恢复策略,确保数据的安全性和可用性,以及实施网络安全策略,防止黑客攻击、病毒感染等安全风险。 再者,运维团队还需参与系统升级、扩容等工作,以应对业务增长带来的挑战。他们通过对资源的合理调度与规划,保证系统性能和用户体验的不断提升。 最后,运维工程师还涉及自动化运维体系的建设和完善,通过脚本编写、配置管理工具的运用,实现批量部署、自动巡检、故障自愈等功能,从而提升运维效率,减轻人工压力。 总之,运维工作的核心目标在于保障业务的连续性和稳定性,为用户提供优质、高效的服务环境,同时紧跟技术发展步伐,不断推动运维工作的智能化、自动化进程。
资源推荐
资源详情
资源评论
收起资源包目录
一款支持标准化schema定义、自动化部署产品包的软件.zip (1601个子文件)
.babelrc 694B
slaves.bak 41B
zoo.cfg 568B
haproxy.cfg 465B
container-executor.cfg 428B
hadoop-env.cmd 4KB
yarn-env.cmd 2KB
mapred-env.cmd 931B
my.cnf 4KB
my.cnf 4KB
my-new.cnf 943B
utf8mb4.cnf 193B
my.cnf 176B
binlog.cnf 133B
nginx.default.conf 2KB
em.conf 2KB
nginx.conf 1KB
dt-alert.conf 926B
dt-alert.conf 924B
spark-defaults.conf 867B
jaas.conf 555B
client-jaas.conf 341B
crond 218B
crond 62B
iconfont.css 4KB
custom.css 1KB
index.module.css 365B
styles.module.css 138B
agent.ddl 4KB
Dockerfile 1KB
Dockerfile 923B
Dockerfile 818B
dockerfile 737B
Dockerfile 640B
Dockerfile 315B
Dockerfile 258B
Dockerfile 164B
Dockerfile 162B
Dockerfile.dt 797B
Dockerfile.dt 535B
Dockerfile.dt 510B
easyfiler 14.92MB
entrypoint 34B
java.env 466B
iconfont.eot 15KB
ssl-server.xml.example 3KB
ssl-client.xml.example 2KB
gcconfig 47B
gcconfig 32B
gcconfig 32B
gcconfig 32B
gcconfig 27B
gcconfig 27B
.gitignore 145B
.gitignore 54B
.gitignore 39B
.gitignore 39B
.gitignore 25B
.gitignore 18B
.gitignore 8B
service.pb.go 451KB
product.go 305KB
cluster.go 213KB
assets.go 190KB
k8s_rke_system_images.go 170KB
instance.go 69KB
docs.go 62KB
agent.go 56KB
inspect_report.go 51KB
assets.go 39KB
instance.go 38KB
instancer.go 36KB
schema.go 32KB
dryrun_test.go 29KB
upgrade.go 26KB
filetansfer_service.pb.go 25KB
product-api.go 23KB
task.go 22KB
user.go 22KB
resource_monitor.go 22KB
product.go 22KB
agent_linux.go 21KB
agent_darwin.go 21KB
switcher.go 21KB
agent_windows.go 21KB
moleDeployment.go 20KB
service.go 19KB
switcher_test.go 18KB
gocron.go 17KB
cluster-api.go 17KB
kube_test.go 17KB
service.go 16KB
server.go 16KB
product_line.go 15KB
agent_sync.go 15KB
main.go 14KB
kube_client.go 14KB
cluster_product_rel.go 14KB
host.go 13KB
agent-apis.go 13KB
共 1601 条
- 1
- 2
- 3
- 4
- 5
- 6
- 17
资源评论
JJJ69
- 粉丝: 6355
- 资源: 5918
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功