![无法将自托管 Linux VM 连接到 Azure DevOps](https://linux22.com/image/758902/%E6%97%A0%E6%B3%95%E5%B0%86%E8%87%AA%E6%89%98%E7%AE%A1%20Linux%20VM%20%E8%BF%9E%E6%8E%A5%E5%88%B0%20Azure%20DevOps.png)
我正在尝试使用自托管 Linux VM 作为部署目标,使用 Azure DevOps 设置 docker 部署过程。似乎我必须先在目标 Linux VM 上安装 AzurePipelines 代理,但它总是停滞在“连接”阶段。由于这是我第一次这样做,我怀疑我错过了过程中的一些关键步骤。
我目前所做的:
创建了一个 Azure DevOps 项目,其中的构建管道成功将 Docker 映像推送到 AzureCR
在(第三方托管的)Linux VM VM 上创建了一个管理员用户(已尝试过 CentOS 7 64 位和 Ubuntu 18.04 LTS 64 位 - 结果相同)
在 DevOps Pipelines 中创建环境
尝试通过将提供的脚本复制到虚拟机上的 SSH 命令提示符来将资源添加到新环境。-->下载和解压成功,但以错误结束:
./config.sh: Zeile 86: 4947 Speicherzugriffsfehler ./bin/Agent.Listener configure "$@" sudo: ./svc.sh: Befehl nicht gefunden sudo: ./svc.sh: Befehl nicht gefunden
手动运行
~/azagent$ sudo bin/installdependencies.sh
-->成功完成手动运行
~/azagent$ sudo ./config.sh
-->以下输出,之后它会停止并且不执行任何操作;Azure Pipelines 环境资源中没有出现任何 VM:
___ ______ _ _ _
/ _ \ | ___ (_) | (_)
/ /_\ \_____ _ _ __ ___ | |_/ /_ _ __ ___| |_ _ __ ___ ___
| _ |_ / | | | '__/ _ \ | __/| | '_ \ / _ \ | | '_ \ / _ \/ __|
| | | |/ /| |_| | | | __/ | | | | |_) | __/ | | | | | __/\__ \
\_| |_/___|\__,_|_| \___| \_| |_| .__/ \___|_|_|_| |_|\___||___/
| |
agent v2.175.2 |_| (commit 5c4925c)
>> Endbenutzer-Lizenzbestimmungen:
Für das Erstellen von Quellen aus einem TFVC-Repository muss die Zustimmung zu den Team Explorer Everywhere-Endbenutzer-Lizenzbestimmungen erfolgen. Dieser Schritt ist für das Erstellen von Quellen aus Git-Repositorys nicht erforderlich.
Eine Kopie der Team Explorer Everywhere-Endbenutzer-Lizenzbestimmungen finden Sie hier:
/home/admin/azagent/externals/tee/license.html
Geben Sie (J/N) Den Team Explorer Everywhere-Lizenzbedingungen jetzt zustimmen? ein (Drücken Sie die EINGABETASTE, um N). > J
>> Verbinden:
Server-URL eingeben > https://dev.azure.com/[~~~~~]
Geben Sie Authentifizierungstyp ein (Drücken Sie die EINGABETASTE, um PAT). >
Persönliches Zugriffstoken eingeben > ****************************************************
当然,我在 URL 中插入了一个适当的名称,而不是[~~~~~]
。
顺便提一下,我可以通过安装 Azure CLI 为同一个 VM 提供托管标识,具体说明如下本文,但这并不能解决我的问题;它只是排除了连接问题。
我错过了什么?