Azure DevOps Agent를 systemd 서비스로 구동 시 No such file or directory 오류를 만날 수 있다

Last Update: 공유

Azure DevOps Pipeline Agent머신으로 Linux 머신을 사용할 때 실행되는 Agent 프로그램을 systemd 서비스로 구동 시킬 수 있습니다. 일반적인 경우에는 https://docs.microsoft.com/ko-kr/azure/devops/pipelines/agents/v2-linux?view=azure-devops#run-as-a-systemd-service 문서 내용을 참고하여 systemd 서비스로의 설정에는 복잡한 문제가 있어 보이진 않습니다. 하지만, 흥미롭게도 아래와 같은 문제를 만날 수도 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[testadm@scselagentw1 azure-devops]$ sudo ./svc.sh status
/etc/systemd/system/vsts.agent.testcorp.Default.scselagentw1.service
● vsts.agent.testcorp.Default.scselagentw1.service - Azure Pipelines Agent (testcorp.Default.scselagentw1)

Loaded: loaded (/etc/systemd/system/vsts.agent.testcorp.Default.scselagentw1.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Mon 2021-11-08 17:53:45 KST; 45s ago
Process: 1259 ExecStart=/agent/azure-devops/runsvc.sh (code=exited, status=200/CHDIR)
Main PID: 1259 (code=exited, status=200/CHDIR)

Nov 08 17:53:45 scselagentw1 systemd[1]: Started Azure Pipelines Agent (testcorp.Default.scselagentw1).
Nov 08 17:53:45 scselagentw1 systemd[1259]: Failed at step CHDIR spawning /agent/azure-devops/runsvc.sh: No such file or directory
Nov 08 17:53:45 scselagentw1 systemd[1]: vsts.agent.testcorp.Default.scselagentw1.service: main process exited, code=exit...0/CHDIR
Nov 08 17:53:45 scselagentw1 systemd[1]: Unit vsts.agent.testcorp.Default.scselagentw1.service entered failed state.
Nov 08 17:53:45 scselagentw1 systemd[1]: vsts.agent.testcorp.Default.scselagentw1.service failed.
Hint: Some lines were ellipsized, use -l to show in full.

해당 문제가 흥미로운 이유는 오류메시지에 기인하여 관련된 서비스 파일등의 권한문제를 확인해 봤음에도 불구하고 별다른 권한 등의 문제가 존재하지 않는 다는 점입니다. 만일, 그렇다면 해당 agent가 설치된 폴더의 위치가 blobfuse에 위치하는 지 확인해 보실 수 있습니다.
원인은 blobfuse file system이 mount되기 전에 Azure DevOps agent 서비스가 더 일찍 실행되는 경우가 발생할 수 있으며 이로 인하여 No such file or directory오류가 발생할 수 있기 때문입니다. 그러므로, 이와 같은 경우에는 agent 설치 위치를 blobfuse가 아닌 local 로 변경하여 해당 문제를 회피하는 것이 좋겠습니다.

※본 정보의 내용(첨부문서, 링크처 등을 포함)은 작성일 현재이며, 예고없이 변경될 수 있습니다.