Локальные агенты Linux (2.x)
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
Внимание
В этой статье приведены рекомендации по использованию программного обеспечения агента версии 2.x с Azure DevOps Server и TFS. Если вы используете Azure DevOps Services, см. раздел "Локальные агенты Linux".
Для выполнения заданий вам потребуется по крайней мере один агент. Агент Linux может создавать и развертывать различные виды приложений, включая приложения Java и Android. Мы поддерживаем Ubuntu и Red Hat.
Подготовка к работе:
Сведения об агентах
Если вы уже знаете, какой агент и как он работает, вы можете перейти прямо к следующим разделам. Но если вы хотите получить дополнительные сведения о том, что они делают и как они работают, см . агенты Azure Pipelines.
Проверка предварительных требований
Агент основан на .NET Core 3.1. Этот агент можно запустить в нескольких дистрибутивах Linux. Мы поддерживаем следующее подмножество поддерживаемых дистрибутивов .NET Core:
- x64
- Debian 9
- Fedora 30, 29
- Linux Mint 18, 17
- openSUSE 42.3 или более поздней версии
- Oracle Linux 8, 7
- Red Hat Enterprise Linux 8, 7, 6 (см. примечание 1)
- SUSE Enterprise Linux 12 с пакетом обновления 2 (SP2) или более поздней версии
- Ubuntu 20.04, 18.04, 16.04
- Azure Linux 1.0 (см. примечание 3)
- ARM32 (см. примечание 2)
- Debian 9
- Ubuntu 18.04
- ARM64
- Debian 9
- Ubuntu 21.04, 20.04, 18.04
Примечание.
Примечание 1. RHEL 6 требует установки специализированной rhel.6-x64
версии агента.
Внимание
По состоянию на февраль 2023 г. больше выпусков агента не поддерживает RHEL 6. Дополнительные сведения см. в статье "Клиенты, использующие Red Hat Enterprise Linux (RHEL) 6, должны обновить ОС на локальных агентах.
Примечание.
Примечание 2. Требуется набор инструкций ARM ARMv7 или более поздней версии.
Запустите uname -a
, чтобы просмотреть набор инструкций дистрибутива Linux.
Примечание.
Дистрибутив ОС Azure Linux в настоящее время поддерживает частичное использование агента Azure DevOps.
Мы предоставляем механизм для обнаружения распространения этой ОС в installdependencies.sh
скрипте, но из-за отсутствия поддержки на стороне .Net Core мы не могли гарантировать полную работоспособность всех функций агента при выполнении в этом дистрибутиве ОС.
Независимо от платформы, необходимо установить Git 2.9.0 или более поздней версии. Настоятельно рекомендуется установить последнюю версию Git.
Примечание.
Установщик агента знает, как проверка для других зависимостей.
Эти зависимости можно установить на поддерживаемых платформах Linux, выполнив в ./bin/installdependencies.sh
каталоге агента.
Помните, что некоторые из этих зависимостей, необходимых .NET Core, извлекаются из сторонних сайтов, например packages.efficios.com
. Просмотрите скрипт и убедитесь, installdependencies.sh
что все ссылки на сторонние сайты доступны на компьютере Linux перед запуском скрипта.
Также убедитесь, что все необходимые репозитории подключены к соответствующему диспетчеру пакетов, используемому ( installdependencies.sh
например apt
, или zypper
).
Для проблем с установкой зависимостей (например, "зависимость не найдена в репозитории" или "проблема с получением файла индекса репозитория") можно обратиться к владельцу дистрибутива для дальнейшей поддержки.
Subversion
Если вы создаете репозиторий Subversion, необходимо установить клиент Subversion на компьютере.
При первом запуске программы установки агента необходимо выполнить настройку агента вручную. После получения сведений о том, как работают агенты или вы хотите автоматизировать настройку множества агентов, рассмотрите возможность использования автоматической настройки конфигурации.
TFVC
Если вы используете TFVC, вам также потребуется Oracle Java JDK 1.6 или более поздней версии. (Для этой цели не хватает Oracle JRE и OpenJDK.)
Подключаемый модуль TEE используется для функциональных возможностей TFVC. Он имеет EULA, который необходимо принять во время настройки, если вы планируете работать с TFVC.
Так как подключаемый модуль TEE больше не поддерживается и содержит некоторые устаревшие зависимости Java, начиная с агента 2.198.0, он больше не включен в дистрибутив агента. Однако подключаемый модуль TEE загружается во время выполнения задачи проверка out, если вы проверка вы используете репозиторий TFVC. Подключаемый модуль TEE удаляется после выполнения задания.
Примечание.
Примечание. Вы можете заметить, что задача проверка out занимает много времени, чтобы начать работу из-за этого механизма загрузки.
Если агент работает за прокси-сервером или брандмауэром, необходимо обеспечить доступ к следующему сайту: https://vstsagenttools.blob.core.windows.net/
Подключаемый модуль TEE скачан с этого адреса.
Если вы используете локальный агент и сталкиваетесь с проблемами с скачиванием TEE, вы можете установить TEE вручную:
- Задайте
DISABLE_TEE_PLUGIN_REMOVAL
для переменной среды или конвейера значениеtrue
. Эта переменная запрещает агенту удалять подключаемый модуль TEE после проверка выхода репозитория TFVC. - Скачайте TEE-CLC версии 14.135.0 вручную из Team Обозреватель Выпуски GitHub везде.
- Извлеките содержимое
TEE-CLC-14.135.0
папки<agent_directory>/externals/tee
в .
Подготовка разрешений
Информационная безопасность для локальных агентов
Пользователь, настроив агент, нуждается в разрешениях администратора пула, но пользователь, выполняющий агент, не имеет.
Папки, контролируемые агентом, должны быть ограничены как можно меньше пользователей, и они содержат секреты, которые могут быть расшифрованы или расшифрованы.
Агент Azure Pipelines — это программный продукт, предназначенный для выполнения кода, скачиваемого из внешних источников. По сути это может быть мишенью для атак удаленного выполнения кода (RCE).
Поэтому важно рассмотреть модель угроз, связанную с каждым отдельным использованием агентов конвейеров для выполнения работы, и решить, какие минимальные разрешения могут быть предоставлены пользователю, на котором выполняется агент, на компьютере, где работает агент, пользователям, имеющим доступ на запись к определению конвейера, репозиториям git, в которых хранится yaml, или группа пользователей, которые управляют доступом к пулу для новых конвейеров.
Рекомендуется, чтобы удостоверение, запущенное агентом, отличалось от удостоверения с разрешениями на подключение агента к пулу. Пользователь, создающий учетные данные (и другие файлы, связанные с агентом), отличается от пользователя, который должен читать их. Поэтому рекомендуется тщательно рассмотреть доступ к самому компьютеру агента, а также папки агента, содержащие конфиденциальные файлы, такие как журналы и артефакты.
Имеет смысл предоставить доступ к папке агента только для администраторов DevOps и удостоверения пользователя, выполняющего процесс агента. Администратор istrator может потребоваться исследовать файловую систему, чтобы понять сбои сборки или получить файлы журналов, чтобы сообщить о сбоях Azure DevOps.
Определите, какой пользователь вы будете использовать
В качестве однократного шага необходимо зарегистрировать агент. Кто-то с разрешением на администрирование очереди агента должен выполнить эти действия. Агент не будет использовать учетные данные этого пользователя в повседневной работе, но они необходимы для завершения регистрации. Узнайте больше о том, как агенты взаимодействуют.
Проверка подлинности с помощью личного маркера доступа (PAT)
- Войдите с помощью учетной записи пользователя, который планируется использовать на веб-портале Azure DevOps Server (
https://{your-server}/DefaultCollection/
).
- Войдите с помощью учетной записи пользователя, которую планируется использовать в организации Azure DevOps (
https://dev.azure.com/{your_organization}
).
На домашней странице откройте свой профиль. Перейдите к сведениям о безопасности.
Создайте личный маркер доступа.
Примечание.
Если вы настраиваете агент группы развертывания или возникает ошибка при регистрации ресурса среды виртуальной машины, необходимо задать область PAT для всех доступных организаций.
На домашней странице откройте параметры пользователя и выберите Личные маркеры доступа.
Создайте личный маркер доступа.
Для область выберите пулы агентов (чтение, управление) и убедитесь, что все остальные поля очищаются. Если это агент группы развертывания, для область выберите группу развертывания (чтение, управление) и убедитесь, что все остальные поля очищены.
Выберите "Показать все область" в нижней части окна "Создание нового окна маркера личного доступа", чтобы просмотреть полный список область.
Скопируйте маркер. Этот маркер будет использоваться при настройке агента.
Убедитесь, что у пользователя есть разрешение
Убедитесь, что учетная запись пользователя, которую вы собираетесь использовать, имеет разрешение на регистрацию агента.
Является ли пользователь администратором Azure DevOps владелец организации или TFS или Azure DevOps Server? Остановитесь здесь, у вас есть разрешение.
В противном случае:
Откройте браузер и перейдите на вкладку пулов агентов для организации Azure Pipelines или сервера Azure DevOps Server или TFS:
Войдите в свою организацию (
https://dev.azure.com/{yourorganization}
).Выберите Azure DevOps, параметры организации.
Выберите пулы агентов.
Войдите в коллекцию проектов (
http://your-server/DefaultCollection
).Выберите Azure DevOps, параметры коллекции.
Выберите пулы агентов.
Выберите Azure DevOps, параметры коллекции.
Выберите пулы агентов.
Выберите пул справа от страницы и нажмите кнопку "Безопасность".
Если учетная запись пользователя, которую вы собираетесь использовать, не отображается, получите администратора, чтобы добавить его. Администратор может быть администратором пула агентов, владелец организации Azure DevOps или администратором TFS или Azure DevOps Server.
Если это агент группы развертывания, администратор может быть администратором группы развертывания, владелец организации Azure DevOps или администратором TFS или Azure DevOps Server.
Вы можете добавить пользователя в роль администратора группы развертывания на вкладке "Безопасность " на странице "Группы развертывания" в Azure Pipelines.
Примечание.
Если вы видите следующее сообщение: К сожалению, не удалось добавить удостоверение. Попробуйте другое удостоверение.Возможно, вы выполнили описанные выше действия для администратора владелец организации или TFS или Azure DevOps Server. Вам ничего не нужно делать; У вас уже есть разрешение на администрирование очереди агента.
Скачивание и настройка агента
Azure Pipelines
Войдите на компьютер с помощью учетной записи, для которой вы подготовили разрешения, как описано выше.
В веб-браузере войдите в Azure Pipelines и перейдите на вкладку пулов агентов :
Войдите в свою организацию (
https://dev.azure.com/{yourorganization}
).Выберите Azure DevOps, параметры организации.
Выберите пулы агентов.
Войдите в коллекцию проектов (
http://your-server/DefaultCollection
).Выберите Azure DevOps, параметры коллекции.
Выберите пулы агентов.
Выберите Azure DevOps, параметры коллекции.
Выберите пулы агентов.
Выберите пул по умолчанию, перейдите на вкладку "Агенты" и выберите "Создать агент".
В диалоговом окне "Получить агент" щелкните Linux.
На левой панели выберите конкретный вкус. Мы предлагаем x64 или ARM для большинства дистрибутивов Linux.
На правой панели нажмите кнопку "Скачать ".
Следуйте инструкциям на странице.
Распакуйте агент в выбранный каталог.
cd
в этом каталоге и запустите./config.sh
.
Azure DevOps Server 2019 и Azure DevOps Server 2020
Войдите на компьютер с помощью учетной записи, для которой вы подготовили разрешения, как описано выше.
В веб-браузере войдите в Azure DevOps Server 2019 и перейдите на вкладку пулов агентов :
Войдите в свою организацию (
https://dev.azure.com/{yourorganization}
).Выберите Azure DevOps, параметры организации.
Выберите пулы агентов.
Войдите в коллекцию проектов (
http://your-server/DefaultCollection
).Выберите Azure DevOps, параметры коллекции.
Выберите пулы агентов.
Выберите Azure DevOps, параметры коллекции.
Выберите пулы агентов.
Нажмите кнопку " Скачать агент".
В диалоговом окне "Получить агент" щелкните Linux.
На левой панели выберите конкретный вкус. Мы предлагаем x64 или ARM для большинства дистрибутивов Linux.
На правой панели нажмите кнопку "Скачать ".
Следуйте инструкциям на странице.
Распакуйте агент в выбранный каталог.
cd
в этом каталоге и запустите./config.sh
.
URL-адрес сервера
Azure Pipelines: https://dev.azure.com/{your-organization}
Azure DevOps Server 2019: https://{your_server}/DefaultCollection
Тип аутентификации
Azure Pipelines
Выберите PAT и вставьте маркер PAT, созданный в окно командной строки.
Примечание.
При использовании PAT в качестве метода проверки подлинности маркер PAT используется только для начальной настройки агента. Узнайте больше о взаимодействии с Azure Pipelines или TFS.
TFS или Azure DevOps Server
Внимание
Убедитесь, что сервер настроен для поддержки метода проверки подлинности, который требуется использовать.
При настройке агента для подключения к TFS у вас есть следующие параметры:
Альтернативные Подключение в TFS или Azure DevOps Server с помощью базовой проверки подлинности. После выбора альтернативного запроса вам будет предложено указать учетные данные.
Встроенная не поддерживается в macOS или Linux.
Согласование (по умолчанию) Подключение с TFS или Azure DevOps Server в качестве пользователя, отличного от пользователя, вошедшего в систему, с помощью схемы проверка подлинности Windows, например NTLM или Kerberos. После выбора "Переговоры" вам будет предложено указать учетные данные.
PAT поддерживается только в Azure Pipelines и TFS 2017 и более поздней версии. После выбора PAT вставьте маркер PAT, созданный в окне командной строки. Используйте личный маркер доступа (PAT), если экземпляр Azure DevOps Server или TFS и компьютер агента не находятся в доверенном домене. Проверка подлинности PAT обрабатывается экземпляром Azure DevOps Server или TFS вместо контроллера домена.
Примечание.
При использовании PAT в качестве метода проверки подлинности маркер PAT используется только для начальной настройки агента на сервере Azure DevOps Server и более новых версий TFS. Узнайте больше о взаимодействии с Azure Pipelines или TFS.
Интерактивное выполнение
Рекомендации по запуску агента в интерактивном режиме или в качестве службы см. в разделе "Агенты: интерактивная служба и служба".
Чтобы запустить агент в интерактивном режиме, выполните следующие действия.
Если вы работали с агентом в качестве службы, удалите службу.
Запустите агент.
./run.sh
Чтобы перезапустить агент, нажмите клавиши CTRL+C и выполните его run.sh
, чтобы перезапустить его.
Чтобы использовать агент, запустите задание с помощью пула агента. Если вы не выбрали другой пул, агент помещается в пул по умолчанию .
Запуск один раз
Для агентов, настроенных для интерактивного запуска, можно выбрать, чтобы агент принял только одно задание. Чтобы выполнить эту конфигурацию, выполните указанные ниже действия.
./run.sh --once
Агенты в этом режиме принимают только одно задание, а затем отключаются корректно (полезно для работы в Docker в службе, например Экземпляры контейнеров Azure).
Запуск в качестве системной службы
Если агент работает в этих операционных системах, можно запустить агент как systemd
службу:
- Ubuntu 16 LTS или более поздней версии
- Red Hat 7.1 или более поздней версии
Мы предоставляем пример ./svc.sh
скрипта для запуска агента и управления им в качестве systemd
службы.
Этот скрипт создается после настройки агента.
Мы рекомендуем вам просмотреть и при необходимости обновить скрипт перед его запуском.
Некоторые важные предостережения:
- Если вы запускаете агент как службу, вы не можете запустить службу агента как
root
пользователя. - Пользователи, работающие под управлением SELinux , сообщили о трудностях с предоставленным
svc.sh
скриптом. Обратитесь к этой проблеме агента в качестве отправной точки. SELinux не является официально поддерживаемой конфигурацией.
Примечание.
Если у вас есть другое распределение или вы предпочитаете другие подходы, вы можете использовать любой тип механизма обслуживания, который вы предпочитаете. См . файлы службы.
Команды
Изменение каталога агента
Например, если вы установили в подпапке myagent
домашнего каталога:
cd ~/myagent$
Установка
Команда:
sudo ./svc.sh install [username]
Эта команда создает файл службы, указывающий на ./runsvc.sh
. Этот скрипт настраивает среду (дополнительные сведения ниже) и запускает узел агентов. Если username
параметр не указан, имя пользователя берется из переменной среды $SUDO_USER, которая устанавливается командой sudo. Эта переменная всегда равна имени пользователя, вызвавшего sudo
команду.
Начать
sudo ./svc.sh start
Состояние
sudo ./svc.sh status
Остановить
sudo ./svc.sh stop
Удаление
Перед удалением следует остановиться.
sudo ./svc.sh uninstall
Обновление переменных среды
При настройке службы требуется моментальный снимок некоторых полезных переменных среды для текущего пользователя входа, например PATH, LANG, JAVA_HOME, ANT_HOME и MYSQL_PATH. Если необходимо обновить переменные (например, после установки нового программного обеспечения):
./env.sh
sudo ./svc.sh stop
sudo ./svc.sh start
Моментальный снимок переменных среды хранится в файле (PATH
хранится в .env
.path
корневом каталоге агента), вы также можете изменить эти файлы напрямую, чтобы применить изменения переменной среды.
Выполнение инструкций перед запуском службы
Вы также можете выполнять собственные инструкции и команды для запуска службы. Например, можно настроить среду или вызвать скрипты.
Измените
runsvc.sh
.Замените следующую строку инструкциями:
# insert anything to setup env when running as a service
Файлы службы
При установке службы некоторые файлы служб помещаются.
Системный файл службы
Создается системный файл службы:
/etc/systemd/system/vsts.agent.{tfs-name}.{agent-name}.service
Например, вы настроили агент (см. выше) с именем our-linux-agent
. Файл службы имеет следующий тип:
Azure Pipelines: имя вашей организации. Например, если вы подключаетесь
https://dev.azure.com/fabrikam
, то имя службы будет иметь значение/etc/systemd/system/vsts.agent.fabrikam.our-linux-agent.service
TFS или Azure DevOps Server: имя локального сервера. Например, если вы подключаетесь
http://our-server:8080/tfs
, то имя службы будет иметь значение/etc/systemd/system/vsts.agent.our-server.our-linux-agent.service
sudo ./svc.sh install
создает этот файл из этого шаблона: ./bin/vsts.agent.service.template
Файл .service
sudo ./svc.sh start
находит службу, считывая .service
файл, содержащий имя системного файла службы, описанного выше.
Альтернативные механизмы обслуживания
Мы предоставляем ./svc.sh
скрипт в качестве удобного способа запуска агента и управления им в качестве системной службы. Но вы можете использовать любой тип предпочитаемого механизма обслуживания (например, initd или upstart).
Шаблон, описанный выше, можно использовать для упрощения создания других типов файлов службы.
Использование группы cgroup для предотвращения сбоя агента
Важно избежать ситуаций, в которых агент завершается сбоем или становится непригодным для использования, так как в противном случае агент не может передавать журналы конвейера или состояние конвейера отчетов обратно на сервер. Вы можете снизить риск возникновения этой проблемы, вызванной высоким давлением в памяти, с помощью групп cgroups и более низкой oom_score_adj
. После этого Linux освобождает системную память из процессов задания конвейера перед восстановлением памяти из процесса агента. Узнайте, как настроить группы cgroups и оценку OOM.
Замена агента
Чтобы заменить агент, следуйте инструкциям по загрузке и настройке действий агента еще раз.
При настройке агента с тем же именем, что и агент, который уже существует, вам будет предложено заменить существующий агент. При ответе Y
убедитесь, что вы удалите агент (см. ниже), что вы заменяете. В противном случае после нескольких минут конфликтов один из агентов завершит работу.
Удаление и повторная настройка агента
Вот как удалить агент:
Остановите и удалите службу, как описано выше.
Удалите агент.
./config.sh remove
Введите свои учетные данные.
После удаления агента его можно настроить еще раз.
Автоматическая настройка
Агент можно настроить из скрипта без вмешательства человека.
Необходимо передать --unattended
и ответы на все вопросы.
Чтобы настроить агент, он должен знать URL-адрес вашей организации или коллекции и учетные данные пользователя, авторизованного для настройки агентов.
Все остальные ответы являются необязательными.
Любой параметр командной строки можно указать с помощью переменной среды: присвойте ей имя в верхнем регистре и предустановке VSTS_AGENT_INPUT_
.
Например, VSTS_AGENT_INPUT_PASSWORD
вместо указания --password
.
Обязательные параметры
--unattended
— настройка агента не будет запрашивать сведения, и все параметры должны быть предоставлены в командной строке.--url <url>
— URL-адрес сервера. Например: https://dev.azure.com/myorganization или http://my-azure-devops-server:8080/tfs.--auth <type>
— тип проверки подлинности. Допустимые значения:pat
(Личный маркер доступа) — это единственная схема, которая работает с Azure DevOps Services.negotiate
(Kerberos или NTLM)alt
(Обычная проверка подлинности)integrated
(Учетные данные Windows по умолчанию)
Варианты проверки подлинности
- Если вы выбрали
--auth pat
:--token <token>
— указывает личный маркер доступа- PAT — это единственная схема, которая работает с Azure DevOps Services.
- Если вы выбрали или
--auth alt
:--auth negotiate
--userName <userName>
— указывает имя пользователя Windows в форматеdomain\userName
илиuserName@domain.com
--password <password>
— указывает пароль
Имена пулов и агентов
--pool <pool>
— имя пула для соединения агента--agent <agent>
— имя агента--replace
— замените агент в пуле. Если другой агент прослушивает то же имя, он начнет сбой с конфликтом
Настройка агента
--work <workDirectory>
— рабочий каталог, в котором хранятся данные задания. По умолчанию используется_work
корневой каталог агента. Рабочий каталог принадлежит заданному агенту и не должен быть предоставлен общий доступ между несколькими агентами.--acceptTeeEula
— примите соглашение о лицензионном соглашении Обозреватель группы (только macOS и Linux)--disableloguploads
— не перенаправляйте или не отправляете выходные данные журнала консоли на сервер. Вместо этого вы можете получить их из файловой системы узла агента после завершения задания.
Запуск только для Windows
--runAsService
— настройка агента для запуска в качестве службы Windows (требуется разрешение администратора)--runAsAutoLogon
— настройте автоматический вход и запустите агент при запуске (требуется разрешение администратора)--windowsLogonAccount <account>
— используется или используется для--runAsService
--runAsAutoLogon
указания имени пользователя Windows в форматеdomain\userName
илиuserName@domain.com
--windowsLogonPassword <password>
— используется с--runAsService
паролем входа в Систему Windows (--runAsAutoLogon
не требуется для групповых управляемых учетных записей служб и Windows, встроенных учетных записей, таких как NT AUTHORITY\NETWORK SERVICE)--enableservicesidtypeunrestricted
— используется для--runAsService
настройки агента с типомSERVICE_SID_TYPE_UNRESTRICTED
безопасности службы как (требуется разрешение администратора)--overwriteAutoLogon
— используется для--runAsAutoLogon
перезаписи существующего автоматического входа на компьютере--noRestart
— используется для--runAsAutoLogon
остановки перезапуска узла после завершения настройки агента
Устранение неполадок при настройке runAsAutoLogon
агента с помощью параметра
Настройка агента с параметром runAsAutoLogon
запускает агент каждый раз после перезапуска компьютера.
Выполните следующие действия, если агент не запущен после перезагрузки компьютера.
Если агент уже настроен на компьютере
Прежде чем перенастроить агент, необходимо удалить старую конфигурацию агента, поэтому попробуйте выполнить эту команду из папки агента:
.\config.cmd remove --auth 'PAT' --token '<token>'
Проверьте, был ли агент удален из пула агентов после выполнения команды:
<Azure DevOps organization> / <Project> / Settings / Agent pools / <Agent Pool> / Agents
Удалите агент из пула агентов вручную, если он не был удален, выполнив команду.
Затем попробуйте перенастроить агент, выполнив следующую команду из папки агента:
.\config.cmd --unattended --agent '<agent-name>' --pool '<agent-pool-name>' --url '<azure-dev-ops-organization-url>' --auth 'PAT' --token '<token>' --runAsAutoLogon --windowsLogonAccount '<domain\user-name>' --windowsLogonPassword '<windows-password>'
Укажите имя агента (любое уникальное имя) и проверка, если этот агент появился в пуле агентов после перенастройки.
Гораздо лучше распаковывать архив агента (который можно скачать здесь) и выполнить эту команду из новой распаковки папки агента.
Проверка правильности записи и сохранения раздела реестра Windows
whoami /user
Выполните команду, чтобы получить <sid>
. Откройте Registry Editor
и выполните следующий путь:
Computer\HKEY_USERS\<sid>\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
Проверьте, есть VSTSAgent
ли ключ. Удалите этот ключ, если он существует, а затем закройте Registry Editor
и настройте агент, выполнив .\config.cmd
команду (без args) из папки агента. Перед ответом на вопрос Enter Restart the machine at a later time?
откройте Registry Editor
еще раз и проверка, если VSTSAgent
ключ появился. НажмитеEnter
, чтобы ответить на вопрос, и проверка, если VSTSAgent
ключ остается на месте после перезапуска компьютера.
Проверка правильности работы разделов реестра Windows на компьютере
autorun.cmd
Создайте файл, содержащий следующую строку: echo "Hello from AutoRun!"
Откройте Registry Editor
и создайте путь над новой парой "ключ-значение" с ключом AutoRun
и значением
C:\windows\system32\cmd.exe /D /S /C start "AutoRun" "D:\path\to\autorun.cmd"
Перезагрузите свой компьютер. У вас возникли проблемы с разделами реестра Windows, если окно консоли не отображается с сообщением Hello from AutoRun!
.
Только группа развертывания
--deploymentGroup
— настройка агента в качестве агента группы развертывания--deploymentGroupName <name>
— используется для--deploymentGroup
указания группы развертывания для соединения агента--projectName <name>
— используется для--deploymentGroup
задания имени проекта--addDeploymentGroupTags
— используется для--deploymentGroup
указания того, что теги группы развертывания должны быть добавлены--deploymentGroupTags <tags>
— используется для--addDeploymentGroupTags
указания разделенного запятыми списка тегов для агента группы развертывания, например web, db.
Только среды
--addvirtualmachineresourcetags
— используется для указания, что теги ресурсов среды должны быть добавлены--virtualmachineresourcetags <tags>
— используется для--addvirtualmachineresourcetags
указания разделенного запятыми списка тегов агента ресурсов среды, например web, db.
./config.sh --help
всегда перечисляет последние необходимые и необязательные ответы.
Диагностика
Если у вас возникли проблемы с локальным агентом, попробуйте запустить диагностика. После настройки агента:
./run.sh --diagnostics
Это приведет к выполнению набора диагностики, который может помочь устранить проблему. Функция диагностика доступна, начиная с версии агента 2.165.0.
Справка по другим параметрам
Чтобы узнать о других вариантах, выполните следующие действия.
./config.sh --help
Эта справка содержит сведения о альтернативных вариантах проверки подлинности и автоматической настройке.
Возможности
Возможности агента каталогиируются и объявляются в пуле, чтобы только сборки и выпуски, которые он может обрабатывать, назначаются ему. См. статью о возможностях агента сборки и выпуска.
Во многих случаях после развертывания агента необходимо установить программное обеспечение или служебные программы. Как правило, необходимо установить агенты на любом программном обеспечении и средствах, которые вы используете на компьютере разработки.
Например, если сборка включает задачу npm, сборка не будет выполняться, если в пуле установлен npm агент сборки.
Внимание
Возможности включают все переменные среды и значения, заданные при запуске агента. Если любое из этих значений изменяется во время выполнения агента, агент должен быть перезапущен для получения новых значений. После установки нового программного обеспечения на агенте необходимо перезапустить агент, чтобы новая возможность отображалась в пуле, чтобы выполнить сборку.
Если вы хотите исключить переменные среды в качестве возможностей, их можно назначить, задав переменную VSO_AGENT_IGNORE
среды с разделителями-запятыми списком переменных, которые следует игнорировать.
Вопросы и ответы
Разделы справки убедитесь, что у меня установлена последняя версия агента?
Перейдите на вкладку пулов агентов :
Войдите в свою организацию (
https://dev.azure.com/{yourorganization}
).Выберите Azure DevOps, параметры организации.
Выберите пулы агентов.
Войдите в коллекцию проектов (
http://your-server/DefaultCollection
).Выберите Azure DevOps, параметры коллекции.
Выберите пулы агентов.
Выберите Azure DevOps, параметры коллекции.
Выберите пулы агентов.
Щелкните пул, содержащий агент.
Убедитесь, что агент включен.
Перейдите на вкладку возможностей:
На вкладке пулов агентов выберите нужный пул агентов .
Выберите агенты и выберите нужный агент.
Перейдите на вкладку " Возможности".
Примечание.
Размещенные корпорацией Майкрософт агенты не отображают системные возможности. Список программного обеспечения, установленного в агентах, размещенных корпорацией Майкрософт, см. в разделе "Использование размещенного майкрософт агента".
На вкладке пулов агентов выберите нужный пул.
Выберите агенты и выберите нужный агент.
Перейдите на вкладку " Возможности".
На вкладке пулов агентов выберите нужный пул.
Выберите агенты и выберите нужный агент.
Перейдите на вкладку " Возможности".
Agent.Version
Найдите возможность. Это значение можно проверка для последней опубликованной версии агента. Ознакомьтесь с агентом Azure Pipelines и проверка страницей с наибольшим номером версии, указанным в списке.Каждый агент автоматически обновляется при выполнении задачи, требующей более новой версии агента. Если вы хотите вручную обновить некоторые агенты, щелкните пул правой кнопкой мыши и выберите "Обновить все агенты".
Можно ли обновить агенты, которые являются частью пула серверов Azure DevOps?
Да. Начиная с Azure DevOps Server 2019, можно настроить сервер для поиска файлов пакета агента на локальном диске. Эта конфигурация переопределит версию по умолчанию, которая была связана с сервером во время выпуска. Этот сценарий также применяется, если сервер не имеет доступа к Интернету.
С компьютера с доступом к Интернету скачайте последнюю версию файлов пакета агента (в .zip или .tar.gz форме) на странице выпусков агента Azure Pipelines GitHub.
Передайте скачанные файлы пакетов на каждый уровень приложений Azure DevOps Server с помощью выбранного метода (например, USB-накопителя, передачи сети и т. д.). Поместите файлы агента в следующую папку:
- Windows:
%ProgramData%\Microsoft\Azure DevOps\Agents
- Linux:
usr/share/Microsoft/Azure DevOps/Agents
- macOS:
usr/share/Microsoft/Azure DevOps/Agents
Создайте папку "Агенты", если она отсутствует.
- Все готово! Сервер Azure DevOps теперь будет использовать локальные файлы при обновлении агентов. Каждый агент автоматически обновляется при выполнении задачи, требующей более новой версии агента. Но если вы хотите вручную обновить некоторые агенты, щелкните пул правой кнопкой мыши и выберите "Обновить все агенты".
Разделы справки убедитесь, что у меня установлена последняя версия агента версии 2?
Перейдите на вкладку пулов агентов :
Войдите в свою организацию (
https://dev.azure.com/{yourorganization}
).Выберите Azure DevOps, параметры организации.
Выберите пулы агентов.
Войдите в коллекцию проектов (
http://your-server/DefaultCollection
).Выберите Azure DevOps, параметры коллекции.
Выберите пулы агентов.
Выберите Azure DevOps, параметры коллекции.
Выберите пулы агентов.
Щелкните пул, содержащий агент.
Убедитесь, что агент включен.
Перейдите на вкладку возможностей:
На вкладке пулов агентов выберите нужный пул агентов .
Выберите агенты и выберите нужный агент.
Перейдите на вкладку " Возможности".
Примечание.
Размещенные корпорацией Майкрософт агенты не отображают системные возможности. Список программного обеспечения, установленного в агентах, размещенных корпорацией Майкрософт, см. в разделе "Использование размещенного майкрософт агента".
На вкладке пулов агентов выберите нужный пул.
Выберите агенты и выберите нужный агент.
Перейдите на вкладку " Возможности".
На вкладке пулов агентов выберите нужный пул.
Выберите агенты и выберите нужный агент.
Перейдите на вкладку " Возможности".
Agent.Version
Найдите возможность. Это значение можно проверка для последней опубликованной версии агента. Ознакомьтесь с агентом Azure Pipelines и проверка страницей с наибольшим номером версии, указанным в списке.Каждый агент автоматически обновляется при выполнении задачи, требующей более новой версии агента. Если вы хотите вручную обновить некоторые агенты, щелкните пул правой кнопкой мыши и выберите "Обновить все агенты".
Можно ли обновить агенты версии 2, которые являются частью пула серверов Azure DevOps?
Да. Начиная с Azure DevOps Server 2019, можно настроить сервер для поиска файлов пакета агента на локальном диске. Эта конфигурация переопределит версию по умолчанию, которая была связана с сервером во время выпуска. Этот сценарий также применяется, если сервер не имеет доступа к Интернету.
С компьютера с доступом к Интернету скачайте последнюю версию файлов пакета агента (в .zip или .tar.gz форме) на странице выпусков агента Azure Pipelines GitHub.
Передайте скачанные файлы пакетов на каждый уровень приложений Azure DevOps Server с помощью выбранного метода (например, USB-накопителя, передачи сети и т. д.). Поместите файлы агента в папку
%ProgramData%\Microsoft\Azure DevOps\Agents
. Создайте папку "Агенты", если она отсутствует.Все готово! Сервер Azure DevOps теперь будет использовать локальные файлы при обновлении агентов. Каждый агент автоматически обновляется при выполнении задачи, требующей более новой версии агента. Но если вы хотите вручную обновить некоторые агенты, щелкните пул правой кнопкой мыши и выберите "Обновить все агенты".
Почему требуется sudo для выполнения команд службы?
./svc.sh
использует , для которого требуется systemctl
sudo
.
Исходный код: systemd.svc.sh.template на GitHub
Я использую брандмауэр, и мой код находится в Azure Repos. С какими URL-адресами агенту нужно взаимодействовать?
Если агент запущен в защищенной сети за брандмауэром, убедитесь, что агент может инициировать связь со следующими URL-адресами и IP-адресами.
URL-адрес домена | Description |
---|---|
https://{organization_name}.pkgs.visualstudio.com |
API упаковки Azure DevOps для организаций с помощью {organization_name}.visualstudio.com домена |
https://{organization_name}.visualstudio.com |
Для организаций, использующих {organization_name}.visualstudio.com домен |
https://{organization_name}.vsblob.visualstudio.com |
Данные телеметрии Azure DevOps для организаций, использующих {organization_name}.visualstudio.com домен |
https://{organization_name}.vsrm.visualstudio.com |
Службы управления выпусками для организаций с помощью {organization_name}.visualstudio.com домена |
https://{organization_name}.vssps.visualstudio.com |
Azure DevOps Platform Services для организаций, использующих {organization_name}.visualstudio.com домен |
https://{organization_name}.vstmr.visualstudio.com |
Службы управления тестами Azure DevOps для организаций, использующих {organization_name}.visualstudio.com домен |
https://*.blob.core.windows.net |
Azure Artifacts |
https://*.dev.azure.com |
Для организаций, использующих dev.azure.com домен |
https://*.vsassets.io |
Артефакты Azure через CDN |
https://*.vsblob.visualstudio.com |
Данные телеметрии Azure DevOps для организаций, использующих dev.azure.com домен |
https://*.vssps.visualstudio.com |
Azure DevOps Platform Services для организаций, использующих dev.azure.com домен |
https://*.vstmr.visualstudio.com |
Службы управления тестами Azure DevOps для организаций, использующих dev.azure.com домен |
https://app.vssps.visualstudio.com |
Для организаций, использующих {organization_name}.visualstudio.com домен |
https://dev.azure.com |
Для организаций, использующих dev.azure.com домен |
https://login.microsoftonline.com |
Вход Microsoft Entra |
https://management.core.windows.net |
API управления Azure |
https://vstsagentpackage.azureedge.net |
Пакет агента |
Чтобы убедиться, что ваша организация работает с существующими ограничениями брандмауэра или IP-адресов, убедитесь, что dev.azure.com
они открыты и *dev.azure.com
обновляют разрешенные IP-адреса, чтобы включить следующие IP-адреса на основе вашей IP-версии. Если вы в настоящее время разрешаете перечисление 13.107.6.183
IP-адресов, 13.107.9.183
оставьте их на месте, так как их не нужно удалять.
Диапазоны IPv4
13.107.6.0/24
13.107.9.0/24
13.107.42.0/24
13.107.43.0/24
Диапазоны IPv6
2620:1ec:4::/48
2620:1ec:a92::/48
2620:1ec:21::/48
2620:1ec:22::/48
Примечание.
Дополнительные сведения о разрешенных адресах см. в списках разрешенных адресов и сетевых подключениях.
Разделы справки запустить агент с самозаверяющий сертификат?
Запуск агента с самозаверяющий сертификат
Разделы справки запустить агент за веб-прокси?
Разделы справки перезапуск агента
Если агент запущен в интерактивном режиме, ознакомьтесь с инструкциями по перезапуску в интерактивном режиме. Если вы запускаете агент в качестве системной службы, выполните действия, описанные в разделе "Остановить ", а затем запустите агент.
Разделы справки настроить агент для обхода веб-прокси и подключения к Azure Pipelines?
Если агент должен обойти прокси-сервер и подключиться к Azure Pipelines напрямую, необходимо настроить веб-прокси, чтобы агент мог получить доступ к следующим URL-адресам.
Для организаций, использующих *.visualstudio.com
домен:
https://login.microsoftonline.com
https://app.vssps.visualstudio.com
https://{organization_name}.visualstudio.com
https://{organization_name}.vsrm.visualstudio.com
https://{organization_name}.vstmr.visualstudio.com
https://{organization_name}.pkgs.visualstudio.com
https://{organization_name}.vssps.visualstudio.com
Для организаций, использующих dev.azure.com
домен:
https://dev.azure.com
https://*.dev.azure.com
https://login.microsoftonline.com
https://management.core.windows.net
https://vstsagentpackage.azureedge.net
https://vssps.dev.azure.com
Чтобы убедиться, что ваша организация работает с существующими ограничениями брандмауэра или IP-адресов, убедитесь, что dev.azure.com
они открыты и *dev.azure.com
обновляют разрешенные IP-адреса, чтобы включить следующие IP-адреса на основе вашей IP-версии. Если вы в настоящее время разрешаете перечисление 13.107.6.183
IP-адресов, 13.107.9.183
оставьте их на месте, так как их не нужно удалять.
Диапазоны IPv4
13.107.6.0/24
13.107.9.0/24
13.107.42.0/24
13.107.43.0/24
Диапазоны IPv6
2620:1ec:4::/48
2620:1ec:a92::/48
2620:1ec:21::/48
2620:1ec:22::/48
Примечание.
Эта процедура позволяет агенту обойти веб-прокси. Конвейер сборки и скрипты по-прежнему должны обрабатывать обход веб-прокси для каждой задачи и инструмента, выполняемого в сборке.
Например, если вы используете задачу NuGet, необходимо настроить веб-прокси для поддержки обхода URL-адреса сервера, на котором размещен канал NuGet, который вы используете.
Я использую TFS и URL-адреса в приведенных выше разделах не работают для меня. Куда обратиться за помощью?
Я использую Team Foundation Server локально и не вижу некоторые из этих функций. Почему?
Некоторые из этих функций доступны только в Azure Pipelines и пока недоступны в локальной среде. Некоторые функции доступны в локальной среде, если вы выполнили обновление до последней версии Team Foundation Server.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по