ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
经过上面的分析,这些模块中,每个模块都可以作为一个`execution`元素,mariadb的安装与卸载可为一组(group)(3)替换配置文件(4)修改文件执行权限(5)同步系统时间可为一组,作为基本功能。因此, - 编写mariadb安装`execution`:操作是`OperRunDependency`类,它需要执行两个依赖(`dependency`)操作。而实际的操作是两个子操作(`sub-execution`),它们是`OperRunCommand`类,一个是安装数据库,一个是初始化数据库。分别通过执行`install_mysqldb.sh`和`import_mysql_sql.sh`实现。安装同时开通端口,安装前需先执行(3)(4)(5),因此使用`dependency`来实现。因此,xml配置如下: ```xml <execution name="安装MySQL及初始化数据库" id="installMysqlAndInitDb" display="true" class-name="deploy.OperRunDependency"> <dependencies> <dependency ref-id="installMysql"/> <dependency ref-id="createMysqlDb"/> </dependencies> <sub-execution> <execution name="安装MySQL" id="installMysql" display="true" class-name="deploy.OperRunCommand"> <configuration> <commands> <command charset="utf-8"> <exec><![CDATA[scripts/linux/db/mariadb/install_mysqldb.sh]]></exec> <args> <arg><![CDATA[$${server.mysql.db.password}]]></arg> </args> </command> <!-- 开通端口 --> <command charset="utf-8"> <exec><![CDATA[scripts/linux/common/add_port.sh]]></exec> <args> <arg><![CDATA[$${server.mysql.port}]]></arg> </args> </command> </commands> </configuration> <dependencies> <dependency ref-id="updateConfigFiles"/> <dependency ref-id="chmodFile"/> <dependency ref-id="syncOsTime"/> </dependencies> </execution> <execution name="初始化MySQL数据库" id="createMysqlDb" display="true" class-name="deploy.OperRunCommand"> <configuration> <commands> <command charset="utf-8"> <exec><![CDATA[scripts/linux/db/mariadb/import_mysql_sql.sh]]></exec> <args> <arg><![CDATA[$${server.mysql.db.username}]]></arg> <arg><![CDATA[$${server.mysql.db.password}]]></arg> <arg><![CDATA[$${server.mysql.port}]]></arg> </args> </command> </commands> </configuration> <dependencies> <dependency ref-id="updateConfigFiles"/> <dependency ref-id="chmodFile"/> <dependency ref-id="syncOsTime"/> </dependencies> </execution> </sub-execution> </execution> ``` - 由于要把mariadb安装和卸载为一组显示,添加组合(`group`)用于显示,即可。如下: ```xml <group name="MySQL安装与卸载"> 安装及卸载的execution </group> ``` 此示例,使用部署工具运行后,显示结果如下: ![mysql安装卸载](https://gitee.com/mianshenglee/datastorage/raw/master/md-photo/deploy-tool/mysql.png) [21]: http://static.zybuluo.com/miansheng/oyvszacmgyuxazkk7p80w56w/mysql.png