I.はじめに
では、「ジェンキンス+ Mavenの+ Gitのソースコードの展開を実現し、解放するために、」ジェンキンスこの記事のプロセス全体への展開プロジェクトのコードベースから+ Mavenの+ Gitリポジトリベースの自動展開は、導入されている方法。しかし、実際の運用環境では、多くの場合、データベース構造の変化をもたらす新しいオンライン機能は、初期化データを増やすというように。アプリケーションサーバは、インターネット環境にアクセスすることができながら、一般的な製造環境のアプリケーションサーバにおいて、データベースサーバは、分離され、データベース・サーバは、インターネット環境(一般)から単離されます。この記事では、自動展開プロセスとデータテーブルを更新するためにどのようなネットワーク環境に基づいて、ビルド環境に焦点を当てています。
第二に、テスト環境
- クラウド(クラウドHuawei社のWindows環境)でジェンキンス環境を導入しました。一方で「ジェンキンス+ Mavenの+ Gitのソースコードは、展開を実現し、解放するために」設定が完了しました。その後もSSHプラグを超える公開インストール、および構成システムでSSHを超える公開構成される。
- サーバー環境
のクラウドサーバーの展開ジェンキンスに加えて、私はまだ2つのローカル仮想マシン環境(CentOS7)を展開しています、JDK、Tomcatおよびその他の環境を展開しているの1、内部ネットワークアドレスは次のとおりです。192.168.1.10、Webサーバでありますアプリケーションサーバ、データベースサーバの別の1、展開MySQLの環境、ネットワークアドレス:192.168.1.9。2台のローカルエリアネットワーク内のサーバ、および22ポートのWebサーバーは、ポート8080は、ポート8080を使用するには、22ポートのSSHが使用するTomcatのとなっている、パブリックIPアドレスを通じてポートにアクセスすることができ、インターネットにマッピングされています。 - 测试使用的项目
项目地址:https://gitee.com/hsh2015/jenkins-test。该项目就是一个最简单的Spring Boot项目,同时,在resources目录下,有需要更新的SQL文件。
三、自动化流程配置
1、 源码管理,即配置Git
2、Spring Boot项目构建
3、数据更新配置
这部分是本篇内容的核心,如何实现在项目部署前,先更新对应的Sql语句呢?这些Sql语句应该如何管理呢?带着这些问题,我们开始这进行下面内容。
- 数据更新语句存储
数据更新语句,这里会存储在resources/sql目录下。每次提交,都要新的SQL文件,后续会根据文件名称进行SQL语句的执行。 - SQL执行时机
SQL文件执行,一般放在系统部署前执行,本示例中放到了spring boot项目构建后,项目部署前。 - 需要执行的SQL文件判断
每次提交新功能的代码,如果有需要更新数据表的,就建立对应的SQL文件。然后进行部署的时候,读取该目录下所有的SQL文件,和当前系统已经执行的SQL文件对比(执行过的SQL文件,会添加到备份目录中),没有执行过SQL文件,然后执行SQL操作即可。 - 执行方式
执行SQL文件,我们首先需要通过“Send files or execute commands over SSH”把对应的SQL文件,远程复制到应用服务器(数据库服务无法互联网连接)上,然后在应用服务器上,通过SSH命令执行SQL文件即可。
#!/bin/sh
for dir in $(find /usr/soft/sql/sql/*.sql) #循环sql文件所在的目录
do
if [ ! -f "/usr/soft/sql/sql/bak/${dir##*/}" ];then#判断备份文件中是否存在,存在说明已经执行过,就不再执行
echo $dir;
echo ${dir##*/};
scp -r $dir [email protected]:/usr/local/soft/sql #复制文件到数据库服务器,指定目录
ssh [email protected] "mysql -hlocalhost -uroot -p123456 test --default-character-set=utf8 < /usr/local/soft/sql/${dir##*/};exit;" #通过ssh命令执行数据SQL更新语句,注意:执行命令需要使用双引号
mv $dir /usr/soft/sql//sql/bak/${dir##*/};#把执行过的SQL文件,放到本分目录下
fi
done
4、项目发布
5、测试
访问系统,出现如下页面,说明项目部署成功了(中文乱码未处理,见谅)。
然后查看数据库表,如果数据插入成功,说明SQL也执行成功了。
注:展開だけSQLファイルを実行するために完了することができます前に、SQL文とプロジェクトのこのアップデートは単なるテストには何の関係、ではありませんので、これは、データの更新を発揮し、展開するための単純なプロジェクトです。