
`replace-files`元素主要用于設置文件替換,它包含>=1個`replace-file`元素,`replace-file`元素表示進行文件替換操作,并通過`file-type`屬性指定替換方式,部署工具當前支持的文件替換方式有三種:
(1) **使用模板文件替換**:`file-type`屬性設置為`template`,此方式會對使用指定的模板文件,部署工具對模板文件進行占位符替換后,直接替換到指定的目錄中。若指定目錄已有同名文件,則會對同名文件添加`_backup`后綴進行備份。使用此方式,在`target`元素中需要設置模板文件位置`source`元素及替換目標文件位置`destination`。`target`元素可以設置多個,以進行多個文件的替換。
(2) **對xml文件的查找替換**:對xml文件,可設置查找匹配相應的元素或屬性,然后對匹配到的元素或屬性進行替換操作。與模板替換方式不同,此操作是局部替換。首次替換時,會對要替換的文件進行添加"_backup"備份,若發現備份文件已有,則不會再備份。它需要設置`target`元素下的`file-path`元素及`replacement`元素。`file-path`元素指定需要替換的xml文件位置,`replacement`指定需要查找的方式及需要替換的值。`replacement`元素包含`find-type`,`find-key`,`replace-type`,`replace-attr-name`,`replace-value`元素,分別是:
- `find-type`查找類型:支持`attribute`,`element`,`xpath`三種查找方式,即查找屬性,查找元素,xpath查找
- `find-key`查找值:若查找類型是`attribute`,則可以設置為`attribute=vlue`,如需要查找屬性值為"name",值為"workDir"的元素,則設置為"name=workDir"即可。
- `replace-type`替換類型:支持`attribute`,`element`兩種,即替換屬性值、替換元素值。
- `replace-attr-name`替換屬性的名稱:找到元素后,若是替換屬性值,則設置此屬性名。如上面查找到"name",值為"workDir"的元素,但是要替換此元素的"value"屬性,此處應設置為"value"。若是替換元素值,則不需要設置此元素。
- `replace-value`替換值:找到元素后,確定要替換的屬性或元素,則把屬性或元素值設置為此值。
(3) **對properties文件的匹配替換**:對properties文件,可設置查找匹配相應的key,然后替換此key的值。首次替換時,會對要替換的文件進行添加"_backup"備份,若發現備份文件已有,則不會再備份。它需要設置`target`元素下的`file-path`元素及`replacement`元素。`replacement`元素需設置`find-key`,`replace-value`元素:、
- `find-key`查找值:若查找key為`server_msg_tcp_port`,直接設置此值即可。
- `replace-value`替換值:找到key后,把此key的值設置為此值。
> * `target`元素都可添加`condiction`以限制執行此替換的條件,例如只有是https部署時,才會替換某文件,則在`target`元素中添加屬性`condiction="$${server_web_extranet_protocol}==https"`,若占位符`$${server_web_extranet_protocol}`值不是https,則會跳過此target,不進行操作。
> * `replace-file`元素下所有元素的值建議都添加在`<![CDATA[]]>`中,以免出現特殊字符匹配失敗的情況。
[16]: http://ww1.sinaimg.cn/large/72d660a7gw1fbn8j79ddkj20or0d5wf1.jpg
- 關于部署工具
- 1. 使用場景
- 1.1 傳統部署方式痛點
- 1.2 自動部署方式
- 2. 功能概覽
- 2.1 部署工具面向的人員
- 2.2 部署工具功能
- 3. 部署工具運行流程
- 3.1 部署工具從制作到使用
- 3.2 部署工具目錄結構
- 3.3 運行流程
- 3.4 配置文件概述
- 3.4.1 全局屬性配置文件global_config
- 3.4.2 用戶屬性配置文件custom_config
- 3.4.3 其它屬性配置文件
- 3.4.4 流程配置文件
- 3.4.5 占位符
- 4. 部署工具使用詳解
- 4.1 流程配置文件簡單示例
- 4.2 流程配置文件結構
- 4.2.1 首行及根元素
- 4.2.2 xml文件結構
- 4.2.3 properties/property元素
- 4.2.4 executions/group元素
- 4.2.5 execution元素
- 4.2.6 configuration元素
- 4.2.7 dependencies元素
- 4.2.8 sub-execution元素
- 4.2.9 commands元素
- 4.2.10 replace-files元素
- 4.2.11 datasourse/statements元素
- 4.2.12 args元素
- 4.3 流程配置文件功能示例
- 4.3.1 分析安裝及卸載mariadb需要的模塊
- 4.3.2 確定用戶統一配置
- 4.3.3 編寫流程配置文件
- 4.4 部署腳本編寫
- 5. 完整db(mariadb及redis)部署示例
- 5.1 mariadb及redis部署結構分析
- 5.1.1 模塊劃分
- 5.1.2 部署環境包制作
- 5.1.3 項目實施人員使用流程
- 5.2 db部署包示例及腳本
- 5.3 部署環境升級
- 6. 問題與反饋