配置
配置主要分为2类,1类是文件类配置文件,1类是数据库配置
配置文件
配置文件主要有2个 config/config.yml
和config/ip_lists.ini
(dev) ➜ RexDeployV3 git:(master) tree -L 2 config
config
├── config.yml
└── ip_lists.ini
主配置文件: config/config.yml
这个配置的文件格式为yml,主要存放环境变量,认证相关配置,并发配置以及日志以及发布等相关配置,你也可以自定义其他环境变量。
- 配置文件格式如下:
#主配置文件
#环境变量设置,dev/uat/com等不同的环境变量设置
env: #环境变量设置,当key设置为dev,则读取dev下的所有配置。当key设置为prod,则读取prod下的所有配置。
key: "dev"
#开发环境配置
dev:
key_auth: "false"
pass_auth: "true"
user: "autotask"
password: "autotask"
......
#预生产环境配置
uat:
key_auth: "true"
pass_auth: "false"
user: "autotask"
password: ""
......
#生产环境配置
prod:
key_auth: "true"
pass_auth: "false"
user: "autotask"
password: ""
......
- 主配置解释
## 数据库配置
# dbname: "autotask" 数据库明
# dbhost: "127.0.0.1" 数据库主机
# dbuser: "root" 数据库用户
# dbpassword: "root" 数据库密码
# dbport: "3306" 数据库端口
## 认证相关配置
# key_auth=true时,为秘钥认证. pass_auth=true,为密码认证。秘钥认证和密码认证不能同时为真;
# 当key_auth=true时,仅支持秘钥认证密码为空的情况
# user:用户名 password:密码 private_key:私钥文件 public_key:公钥文件
# global_sudo:是否开启sudo,on为开启,off为关闭 sudo_password:sudo时密码
# timeout:SSH超时时间
# max_connect_retries:SSH失败时最大连接尝试次数
## 日志/分组/并发配置
# logfile:日志文件
# groups_file:IP分组文件
# parallelism:最大的并发数量
## 现暂未使用,新版可能使用
# table:主机信息表(废弃)
# monitor_table:监控数据表(暂时不使用)
# rerite_info_table:是否写入json文件(暂时不使用)
# default_jsonfile:默认json串存储文件(暂时不使用)
## 基于名字服务的自动发布相关配置项
# table_string:数据库初始化主机信息要查询的字段(不要轻易修改)
# softdir:待发布应用目录
# configuredir:待发布配置目录
# local_prodir:远程同步应用目录
# local_confdir:远程同步配置目录
# temp:应用发布时临时目录
# backup_dir:发布应用时,当数据库字段中backupdir_same_level为0时,且当配置目录在应用目录时,备份该应用程序的所在目录
# baseapp_dir:发布应用时,当数据库字段中deploydir_same_level为0时,即是待发布目录的目录(发布目录不能和发布目录同层级),比如你的应用在webapp下,你的新的发布应用时不能再webapp下面,因为当你放在webapp下面时就相当于会启动2个app,所以需要另外的发布目录
# download_all:是否下载所有的目录(暂时不使用,不能为空)
# is_link: 是否是软链接(暂时不使用,不能为空)
# is_stop:是否停止应用 (暂时不使用,不能为空)
# is_start:是否启动应用(暂时不使用,不能为空)
# download_record_log:下载应用的日志记录
# deploy_config_table:主机详细配置文件数据表(重要)
# deploy_record_table:发布时记录数据表
# deploy_status_table:发布时状态数据表
# external_status:是否开启外网表,当开启外网表时,需要你将新建 复制主机详细配置文件数据表,同时将内网地址和外网地址交换,当external_status为true时,deploy_config_table将不起作用,读取外网表
# external_deploy_config_table: 主机详细配置文件数据表(外网表)
# service_start_retry:启动服务失败时的尝试次数
# rsync_log_stdout:是否显示传输包的进度和传输速度
## 通用配置
# list_all_task_status:是否要打印所有的模块信息,如果不为false,则打印所有的模块信息。为false时,则打印list_task所列出的模块
# list_task:执行rex -T 要显示的模块
## 基于名字服务的日志系统相关配置项
# download_dir: 默认日志下载路径
# log_rsync_server: 日志rsync服务器地址
# log_rsync_user: 日志rsync服务器用户
# log_rsync_pass: 日志rsync服务器密码
# log_rsync_module: 日志rsync服务器模块
# max_grep_row: 默认最大显示日志行数
## 用户管理
# common_public_key: 缺省默认公钥设置
## 灰度发布相关配置
# is_weight_allow: 是否允许负载均衡下所有节点都是摘取状态,1不允许(意味着至少保证1个节点在使用) 0允许
# max_sleep_time: 定义灰度发布摘掉节点之后,应用的最大等待时间
# random_temp_file: 随机存储文件(弃用)
# checkurl_respoon_print: 校验url时,是否输出校验结果 0不输出 1输出
# checkurl_max_count: 校验url最多次数
# checkurl_interval_time: 校验url时间 也就是说如果校验url失败,会重试校验${checkurl_max_count}次 每次交验完等待${checkurl_interval_time}秒
# checkurl_init_time: 校验url初始化等待时间
# deploy_finish_file: 发布完成后等待临时文件(弃用)
# deploy_max_count: 发布完成最大次数(弃用)
# deploy_interval_time: 发布完成最多等待时间(弃用)
# table_load_key: 灰度发布表
# max_weight_count: 灰度发布摘取节点或者添加节点,失败后重试次数
## 微信和QQ消息配置
# is_weixin: 是否发送微信消息 1发送 0不发送
# is_qq: 是否发送QQ消息 1发送 0不发送
# weixin_config: 微信消息配置接口
# qq_config: QQ消息配置接口1
# finish_qq_config: QQ消息配置接口2
## 其他配置
# allow_env: release,deploy允许的跨环境关键词
# default_download_env: 默认的下载环境关键词
# upload_method: 默认上传文件的方式,支持rsync和sftp两种
# download_method: 默认下载文件的方式,支持rsync和sftp两种
# envDesc: 当前环境的描述
# savetmpDir: 临时存储文件
# httpdowndir: http下载的默认路径
# is_check_dir: http下载包合并时,是否校验包层级
# is_download_process_status: 是否输出下载进度(弃用)
分组配置文件: config/ip_lists.ini
这个文件主要记录IP分组文件,比如定义192.168.0.1 192.168.0.2 为 test分组,将10.0.0.1 10.0.0.2 定义为server分组。那么在批量执行命令/批量分发文件等模块时,可以直接使用分组名来操作服务器。
[test]
192.168.0.1
192.168.0.2
[group]
10.0.0.1
10.0.0.2
数据库配置
这里的数据库配置不是指 数据库用户信息等配置,而是指自动发布等需要读取数据库字段的配置。有关介绍,请参见 数据库表字段/pre_server_detail