【问题标题】:How to use Azure Pipelines to remote to Azure Ubuntu Server VM then do deployment?如何使用 Azure Pipelines 远程连接到 Azure Ubuntu Server VM 然后进行部署?
【发布时间】:2019-11-20 07:49:42
【问题描述】:

我想使用 Azure Ubuntu Server 通过 Azure Pipelines 进行部署。 下面是我想要的流程,但不知道该怎么做:

当 Git-Hub dev 分支有新更新时,触发 Pipelines 执行:

  1. 远程 Azure Ubuntu 服务器(带 UI 界面)
  2. 在终端中关闭正在运行的进程
  3. 从 Git-Hub 存储库下载文件
  4. 在终端中重新运行进程

已完成的步骤

在 Azure 门户中创建 Ubuntu Server VM 的过程:

  1. 在 Azure 门户中创建 Ubuntu Server VM
  2. 添加入站规则(RDP 端口 3389)(Reference link)
  3. SSH 到 Ubuntu 服务器虚拟机,例如 ssh user@138.30.xx.xxx
  4. sudo apt-get update -y
  5. sudo apt-get upgrade -y
  6. sudo apt-get install lxde -y
  7. sudo apt-get install xrdp -y
  8. /etc/init.d/xrdp start
  9. 通过 RDP 从 Mac/Windows 远程(可以轻松复制文件):
  10. sudo apt-get install -f
  11. sudo apt-get -y install nodejs
  12. sudo apt-get -y install npm
  13. sudo apt-get -y install chromium-browser
  14. sudo apt-get -y update
  15. sudo apt-get -y upgrade

设置环境后:
使用以下命令在终端中启动进程:
node node.js

【问题讨论】:

  • 这个问题缺少信息。您需要提供哪种类型的应用程序以及您尝试在哪种类型的基础架构中部署它。但要开始,您需要创建不同的任务,这里有 Microsoft 提供的不同类型的构建、测试、实用程序和部署任务的完整列表:docs.microsoft.com/en-us/azure/devops/pipelines/tasks/…
  • 嗨@ZetaPR,添加了我迄今为止所做的更多步骤。请指教。
  • 正如我所看到的 apt-get 命令,您正在尝试部署 web 应用程序,您能否提供有关您使用什么来为应用程序提供服务的更多信息? Tomcat、Apache、Nginx?另外,您尝试部署哪种类型的应用程序 NodeJS、Angular、..?没有这些信息,就不可能为您提供帮助
  • 嗨@ZetaPR,我正在使用以下软件包运行NodeJS:npm install puppeteer@1.20.0 puppeteer-core@1.20.0 adal-node@0.2.0 azure-keyvault@3.0.4 azure- sb@0.11.1 azure-storage@2.10.3 http@0.0.0
  • 好的,但是访问应用程序以提供服务呢?您使用的是 Apache 吗? Nginx?还是什么?

标签: azure-devops azure-pipelines ubuntu-server


【解决方案1】:

我可以想到以下三种不同的方法来做到这一点,您可以尝试一下。

1、使用SSH任务在远程机器(Azure Ubuntu Server)上运行脚本。

首先,您需要向您的 Azure 组织添加 SSH 服务连接。新建服务连接的步骤请查看here,SSH服务连接的设置请​​查看here

然后您需要创建一个空的构建管道并添加 SSH 任务。选择您在上述步骤中创建的 SSH 服务连接,然后您可以在命令字段中运行您的自定义命令。检查here 以获取创建构建管道的示例步骤。下面的屏幕截图是经典 UI 视图。

2,在您的 Azure Ubuntu 服务器上安装自托管代理并在此代理上运行您的构建管道。

首先,查看here 了解创建自托管 linux 代理的详细步骤。

其次,创建构建管道并选择具有自托管代理的自代理池。以便任务和命令将在您的 Azure Ubuntu 服务器上运行 然后您可以添加 bash 任务 来运行您的自定义脚本。或根据您的项目添加其他任务。

3、在你的https://www.azuredevopslabs.com/labs/vstsextend/deploymentgroups/上创建一个部署代理

您可以按照here 的详细步骤创建部署组并配置代理。

Here 只是关于如何在发布管道中使用用户部署组的示例

添加:为 Git-Hub 开发分支的每个新更新启用 CI 构建。您需要在构建管道中启用 CI 触发器。 转到您的管道的编辑页面,选择 Triggers 并启用 Continuous Integration

希望以上有所帮助!

【讨论】:

  • 第 1 步和第 3 步应该没问题。但是,当使用脚本lxterminal --title="MyScriptWindow" 使用 Bash/SSH 任务运行第 2 步时,出现错误 ##[error]Unable to init server: Could not connect: Connection denied(lxterminal: 22437): Gtk-WARNING **: 06:32:07.089: 无法打开显示:
  • 您的代理是在交互模式下运行还是作为服务运行,如果它作为服务运行,请尝试运行您的代理interatively
  • 它以交互模式运行:sudo ./svc.sh status,输出为not installed
  • 你关注这个document
  • 是的,因为我只需要以交互方式运行,那么我只执行./run.sh,我错了吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多