项目部署

Posted fxzm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了项目部署相关的知识,希望对你有一定的参考价值。

一、手工部署项目

(1)在IDEAZ中开发SpringBoot项目并打成jar包

(2)将jar包上传到Linux服务器

  mkdir /usr/local/app      创建目录,将项目jar包放到此目录

(3)启动SpringBoot程序

  java -jar [jar包名]

 (4)改为后台运行SpringBoot程序,并将日志输出到日志文件

目前程序运行的问题:

  * 线上程序不会采用控制台霸屏的形式运行程序,而是将程序在后台运行

  * 线上程序不会将日志输出到控制台,而是输出到日志文件,方便运维查阅信息

nohup命令:no hang up(不挂起),用于不挂断地运行指定命令,退出终端不会影响程序的运行

语法格式:nohup Command [Arg ...] [&]

参数说明:

Command:要执行命令

Arg:一些参数,可以指定输出文件

&:让命令在后台运行

举例:

nohup java -jar boot工程.jar &> hello.log &    后台启动java -jar命令,并将日志输出到hello.log文件

(5)停止SpringBoot程序

查找进程号:ps -ef | grep java

kill -9 进程号

 

二、通过Shell脚本自动部署项目

(1)在Linux中安装Git

(2)在Linux中安装maven

(3)编写Shell脚本(拉取代码、编译、打包、启动)

(4)为用户授予执行Shell脚本的权限

(5)执行Shell脚本

Linux服务器<——编译打包启动pull——Git仓库<——push——本地开发环境

在本地创建git仓库后,添加远程仓库,为这两个仓库建立连接:git pull origin master --allow-unrelated-histories。将本地仓库的内容commit,push到远程仓库即可。

(1)在linux中安装Git

  yum list git     列出git安装包

  yum install git      在线安装git

(2) 使用Git克隆代码

  cd /usr/locla/

  git clone [远程仓库url]

(3)将maven安装包上传到linux,在linux中安装maven

  tar -zxvf apche-maven-3.5.4-bin.tar.gz -C /usr/local

  vim /etc/profile      修改配置文件,加入如下内容

  export MAVEN_HOME=/usr/local/apache-maven-3.5.4

  export PATH=$JAVE_HOME/bin:$MAVEN_HOME/bin:$PATH

  完成后

  source /etc/profile

  mvn -version

  vim /usr/local/apache-maven-3.5.4/conf/settings.xml  修改配置文件内容如下

  <localRepository>/usr/local/repo</localRepository>

(4)将shell脚本文件复制到Linux 

 Shell脚本(shell script),是一种linux系统中的脚本程序,使用Shell脚本编程跟JavaScript、java编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以。

#!/bin/sh
echo =================================
echo  自动化部署脚本启动
echo =================================

echo 停止原来运行中的工程
APP_NAME=helloworld

tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk \'print $2\'`
if [ $tpid ]; then
    echo \'Stop Process...\'
    kill -15 $tpid
fi
sleep 2
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk \'print $2\'`
if [ $tpid ]; then
    echo \'Kill Process!\'
    kill -9 $tpid
else
    echo \'Stop Success!\'
fi

echo 准备从Git仓库拉取最新代码
cd /usr/local/helloworld

echo 开始从Git仓库拉取最新代码
git pull
echo 代码拉取完成

echo 开始打包
output=`mvn clean package -Dmaven.test.skip=true`

cd target

echo 启动项目
nohup java -jar helloworld-1.0-SNAPSHOT.jar &> helloworld.log &
echo 项目启动完成

(5)为用户授权

  chmod(change mode)命令是控制用户对文件的权限的命令

  Linux中权限分为:读r、写w、执行x三种权限 

  Linux的文件调用权限分为三级:文件所有者(Owner)、用户组(Group)、其它用户(Other Users)

  只有文件的所有者和超级用户可以修改文件或目录的权限

  要执行Shell脚本需要有对此脚本文件的执行权限,如果没有则不能执行

  ll命令可以查看

  -r--r--r--

  第一个"-"表示是文件-还是目录~,剩下9位,第一个三位是文件所有者的权限,第二个三位是用户组的权限,第三个三位是其它用户的权限

  为用户授权:chmod命令可以使用八进制数来指定权限

  7 读写执行 rwx 、6读写rw-、5读执行 r-x、4 只读 r--、3 写执行 -wx、2 只写 -w-、1 只执行 --x、0 无 ---

  如:chmod 777 bootStart.sh 为所有用户赋予读写执行权限、chmod 755 bootStart.sh为文件拥有者赋予读写执行权限,同组用户和其它用户授予读执行权限

    chmod 210 bootStart.sh 为文件拥有者授予写权限,同组用户授予执行权限,其它用户没有任何权限。

(6)使用 ./bootStart.sh启动shell脚本,查看日志是否启动成功,在浏览器上通过虚拟机ip:8080/ 访问

(7)设置静态ip

  线上系统运行使用的是静态ip

  修改文件/etc/sysconfig/network-scripts/ifcfg-ens33,要与虚拟中的的虚拟网络编辑器网段ip对应

  BOOTTPROTO="static"

  IPADDR="192.168.189.128"

  NETMASK="255.255.255.0"

  GATEWAY="192.168.189.2"

  DNS1="192.168.189.2"

  重启网络服务: systemctl restart network

注:重启网络服务后ip地址发生改变,新建Finalshell连接

 

 

  

 

SSIS2012 项目部署模型

SSIS 2012 支持两种部署模型:项目部署模型和包部署模型。 使用项目部署模型可以将项目部署到 Integration Services 服务器,使用包部署模型可以将单独的包部署到Integration Services 服务器。

关于部署

SSIS 2012 支持两种部署模型:项目部署模型和包部署模型。 使用项目部署模型可以将项目部署到 Integration Services 服务器,使用包部署模型可以将单独的包部署到Integration Services 服务器。 下表显示使用项目部署模型和使用包部署模型之间的差异和相似之处。

在使用项目部署模型时

使用包部署模型时

项目是部署单元。

包是部署单元。

参数用于向包属性赋值。

配置用于向包属性赋值。

将包含包和参数的项目生成为一个项目部署文件(.ispac 扩展名)。

包(.dtsx 扩展名)和配置(.dtsConfig 扩展名)单独保存到文件系统中。

将包含包和参数的项目部署到 SQL Server 实例上的 SSISDB 目录中。

包和配置复制到另一台计算机上的文件系统中。 包也可以保存到 SQL Server 实例上的 MSDB 数据库中。

数据库引擎需要 CLR 集成。

数据库引擎不需要 CLR 集成。

特定于环境的参数值存储于环境变量中。

特定于环境的配置值存储于配置文件中。

可在执行前在服务器上验证目录中的项目和包。 可以使用 SQL Server Management Studio、存储过程或托管代码执行该验证。

恰好在执行之前对包进行验证。 还可以使用 dtExec 或托管代码验证包。

通过对数据库引擎启动执行,来执行包。 在开始执行前,将项目标识符、显式参数值(可选)和环境引用(可选)分配给某一执行。

还可以使用 dtExec 执行包。

使用 dtExec 和 DTExecUI 执行实用工具执行包。 适用配置是通过命令提示符参数(可选)来标识的。

在执行过程中,包生成的事件将自动捕获并保存到目录中。 您可以使用 TRANSACT-SQL 视图查询这些事件。

在执行过程中,包生成的事件不自动捕获。 日志提供程序必须添加到包以便捕获事件。

包在单独的 Windows 进程中运行。

包在单独的 Windows 进程中运行。

SQL Server 代理用于计划包执行。

SQL Server 代理用于计划包执行。

项目部署模型

下面列出了适用于项目部署模型时的功能:

功能

说明

参数 参数指定包将使用的数据。 您可以分别使用包参数和项目参数将参数范围限定在包级别或项目级别。 参数可用于表达式或任务中。 在将项目部署到目录时,可为每个参数分配文字值,或者使用在设计时分配的默认值。 还可以引用环境变量来代替文字值。 在包执行时解析环境变量值。
环境 环境是可由 Integration Services 项目引用的变量的容器。 每个项目可以具有多个环境引用,但包执行的单个实例只能引用来自单个环境的变量。 环境允许您对分配给包的值进行组织。 例如,您可以具有名为“开发”、“测试”和“生产”的环境。
环境变量 环境变量定义可在包执行过程中赋给参数的文字值。 若要使用某一环境变量,请创建环境引用(在与具有参数的环境相对应的项目中),向该环境变量的名称分配某一参数值,并且在配置执行实例时指定相应的环境引用。
SSISDB 目录 所有 Integration Services 对象都在某一 SQL Server 实例上称作 SSISDB 目录的数据库中进行存储和管理。通过该目录,您可以使用文件夹组织您的项目和环境。每个 SQL Server 实例可具有一个目录。 每个目录中可具有零个或多个文件夹。 每个文件夹可具有零个或多个项目以及零个或多个环境。 该目录中的文件夹也可以用作针对 Integration Services 对象的权限的边界。
目录存储过程和视图 可以使用大量存储过程和视图来管理该目录中的 Integration Services 对象。 例如,您可以指定参数和环境变量值,创建和启动执行,以及监视目录操作。 您甚至可以精确看到在执行开始前将由包使用的值。

 

部署一个项目

编译项目

在解决方案窗口,选中项目文件,右键单击并选择“编译”。此时Visual Studio将编译整个项目,并在Bin目录下的Development(默认)或Release目录中生成ispac文件。

技术分享

该文件包含如下信息

@Project.manifest -- SSIS项目的所有基础数据,包扩项目属性,连接,参数,包的属性,连接,参数等等。

[Content_Types].xml -- 该目录下文件的内容类型,如dtsx的内容是text/xml,conmgr 的内容是text/xml等等。

*.conmgr -- 该项目的连接管理器下面的连接

*.dtsx -- 该项目所包含的包文件

Project.params -- 项目的参数。

 

部署项目

在解决方案窗口,选中项目文件,右键单击并选择“部署”(或者双击编译后的ispac文件)。会打开部署向导窗口。

技术分享

 

选择源文件,这里可以选择从项目部署文件或者Intergration Services目录

技术分享

选择目的地

技术分享

检查核对信息

技术分享

部署结果

技术分享

在Intergration Services目录查看部署后的结构

技术分享

以上是关于项目部署的主要内容,如果未能解决你的问题,请参考以下文章

Nginx部署Vue项目

nodejs项目的部署

小白研究项目部署-关于vue项目部署遇到的一些问题

在weblogic上部署vue项目

Apache中同一个端口如何部署多个项目

使用docker部署node项目(一)