使用Azure管道将工件部署到物理计算机

使用Azure管道将工件部署到物理计算机,azure,azure-devops,azure-pipelines,azure-devops-self-hosted-agent,Azure,Azure Devops,Azure Pipelines,Azure Devops Self Hosted Agent,我有一个用azure管道构建的项目,工件被发送到文件共享和azure DevOps。自托管代理当前用于构建我的项目的管道。现在,我想在公司网络中的物理计算机上部署我的工件。工件是支持“静默安装模式”的安装文件,因此我可以通过使用PowerShell执行相应的文件来安装所有内容 我的问题是:我应该做什么来实现我的目标?我认为我只需要创建一个发布管道(我使用微软的经典UI编辑器来创建管道)并添加必要的任务。最后,一切都会像这样: 从构建产品的计算机复制工件(A) 到要安装产品的计算机(B) 安装主系

我有一个用azure管道构建的项目,工件被发送到文件共享和azure DevOps。自托管代理当前用于构建我的项目的管道。现在,我想在公司网络中的物理计算机上部署我的工件。工件是支持“静默安装模式”的安装文件,因此我可以通过使用PowerShell执行相应的文件来安装所有内容

我的问题是:我应该做什么来实现我的目标?我认为我只需要创建一个发布管道(我使用微软的经典UI编辑器来创建管道)并添加必要的任务。最后,一切都会像这样:

  • 从构建产品的计算机复制工件(A) 到要安装产品的计算机(B)
  • 安装主系统所需的服务 应用程序
  • 从主应用程序执行安装。是这个吗 正确的行动方针,还是我应该选择别的

  • 还有一个问题。我不完全清楚应该如何划分部署阶段,因为:步骤1仍然由计算机A上的代理完成。步骤2和3应该已经完成另一个代理。因此,计算机B上也必须有一个代理(我总共需要两个代理,一个用于计算机A上的构建管道,另一个用于目标计算机B)。这是否正确?

    我们有一个web应用程序,它有类似的要求,当我们将应用程序部署到该位置时,我们需要包含特定于位置的文件

    我不确定这是不是最好的路线,但我们在部署管道中使用了Ansible。我们的Ansible playbook使用hosts文件,该文件包含要部署的位置和jar版本的变量

    同样,我们的情况是不同的,但同样的情况应该适用

    例如,你可以做这样的事情

    您的Ansible资源清册(主机)文件可能如下所示

    [服务器]
    xxx.xxx.xxx.xxx
    [全部:vars]
    app_name=mfgweb
    环境=质量保证
    app_版本=2020.03.4
    ***如果您的工件是一个jar文件
    jar_group=com.somegroup
    
    jar\u name=some\u jar我们有一个web应用程序,它有类似的需求,当我们将应用程序部署到那个位置时,我们需要包含特定于位置的文件

    我不确定这是不是最好的路线,但我们在部署管道中使用了Ansible。我们的Ansible playbook使用hosts文件,该文件包含要部署的位置和jar版本的变量

    同样,我们的情况是不同的,但同样的情况应该适用

    例如,你可以做这样的事情

    您的Ansible资源清册(主机)文件可能如下所示

    [服务器]
    xxx.xxx.xxx.xxx
    [全部:vars]
    app_name=mfgweb
    环境=质量保证
    app_版本=2020.03.4
    ***如果您的工件是一个jar文件
    jar_group=com.somegroup
    jar\u name=某个jar
    使用Azure管道将工件部署到物理计算机

    我认为你很接近答案,但我不确定我提供的建议是否是最好的,因为这更多是一个品味问题,你可以在下面查看我的建议

    我们可以通过计算机上的一个代理实现这一点:

    • 使用任务将计算机A上的代理将工件复制到
      计算机B
    • 使用计算机A上的代理
    在这种情况下,我们不需要在计算机B上创建新代理,也不需要划分部署阶段

    希望这有帮助

    使用Azure管道将工件部署到物理计算机

    我认为你很接近答案,但我不确定我提供的建议是否是最好的,因为这更多是一个品味问题,你可以在下面查看我的建议

    我们可以通过计算机上的一个代理实现这一点:

    • 使用任务将计算机A上的代理将工件复制到
      计算机B
    • 使用计算机A上的代理
    在这种情况下,我们不需要在计算机B上创建新代理,也不需要划分部署阶段


    希望这有帮助。

    @LeoLiu MSFT是的,你的回答帮助了我,非常感谢。我一定会尝试使用PowerShell进行远程安装。然而,自从第一个答案给出后,我通常会等两三天,这样其他人仍然有动力写下他们的观点。如果今晚之前没有人写答案,那么我会选择最好的答案。@LeoLiu MSFT是的,你的答案帮助了我,非常感谢。我一定会尝试使用PowerShell进行远程安装。然而,自从第一个答案给出后,我通常会等两三天,这样其他人仍然有动力写下他们的观点。如果今晚之前没有人写答案,那么我会选择最好的答案。嗨,利奥!我想知道是否有一种很好的方法可以做到这一点,从windows构建服务器上传一个zip文件(构建工件)到目标机器Linux。这些答案似乎都是围绕着一个个窗口。有没有一种好方法可以使用Devops发布管道将压缩构建工件从windows复制到linux服务器?@PaulCarlton,请你用你的问题打开一个新的线程好吗?自从我们存档了这个帖子,谢谢。我开始了一个新问题:谢谢!你好,利奥!我想知道是否有一种很好的方法可以做到这一点,从windows构建服务器上传一个zip文件(构建工件)到目标机器Linux。这些答案似乎都是围绕着一个个窗口。有没有一种好方法可以使用Devops发布管道将压缩构建工件从windows复制到linux服务器?@PaulCarlton,请你用你的问题打开一个新的线程好吗?自从我们存档了这条线索,谢谢。我有