Search

[Helix Core] Helix Core 서버를 Oracle Ampere A1 인스턴스에 설치하는 방법 (linux-arm64)

작성일시
2024/09/21 13:22
수정일시
2024/11/14 14:50
스택
Helix Core
카테고리
Tip
태그
Oracle Cloud
p4
p4d
Perforce
ARM
1 more property

개요

스터디에서 사용하기 위해 Helix Core 서버를 미니PC에 설치하여 사용하고 있었으나, 24시간 안정적인 서비스 차원에서 클라우드로 이관이 필요해졌다.
그 중 독보적으로 비용이 저렴하다고 알려진 OCI Ampere A1 인스턴스를 이용하고자 했고, 마침 Perforce 측에서도 올해 2024년 릴리즈를 진행하며 ARM 아키텍처를 공식적으로 지원해주기 시작했다. (출처)

설치 방법

Perforce 측에서 잘 알려져 있는 리눅스 배포판에 대해서는 패키지 매니저만으로 설치가 가능하지만 Oracle Cloud 따위 지원해주지 않기 때문에 수동으로 설치해야 한다.
공식으로 제공하는 친절한 non-package installation 가이드를 참조하면 쉽게 설치할 수 있다. 이하의 글은 공식 가이드를 참조하여 부족하다고 생각했던 내용을 추가하여 작성한 내용이다.
우선 Helix Core 서버를 구동할 사용자를 생성해야 한다.
메뉴얼에 따르면 서버 구동에 root 권한은 필요 없으며, 서버 보안을 위해서 unprivileged 사용자에서 구동하라고 한다.
이 글에선 perforce 라는 이름의 사용자를 생성하지만 원하는 사용자가 있다면 변경해도 된다.
sudo useradd perforce sudo su perforce
Shell
복사
Helix Core 서버를 설치할 경로를 생성한다.
마찬가지로 이 글에서는 /home/perforce 경로에 helix_install 이라는 이름의 경로를 생성하지만 원하는 설치 경로가 있다면 변경해도 된다.
cd /home/perforce mkdir helix_install
Shell
복사
공식 Helix Core 다운로드 페이지로 이동하여 Helix Core 서버를 다운로드 한다.
Family에서 Linux 선택
Platform에서 Linux (ARM64) 선택
다운로드한 helix-core-server.tgz 파일을 처음 생성한 helix_install 디렉토리로 이동시켜 압축을 해제한다.
mv helix-core-server.tgz helix_install/ cd helix_install tar -zxvf helix-core-server.tgz # 혹시 모르니 소유권 설정 sudo chown -R perforce:perforce /home/perforce/helix_install
Shell
복사
실행을 위해서 권한을 부여
sudo chmod 755 p4 p4d p4p p4broker
Shell
복사
설정을 위해서 환경 변수를 설정한다.
export P4USER=perforce export P4PORT=0.0.0.0:1666 export P4ROOT=/home/perforce/helix_install
Shell
복사
p4d 를 실행시켜 Helix Core 서버를 데몬 모드로 실행한다.
./p4d -r `pwd` -p 1666 -J journal -L log -d
Shell
복사
정상적으로 실행됐는지 확인하기 위해, p4 클라이언트 프로그램 실행한다.
예시처럼 서버 information 정보가 출력 되면 서버가 정상적으로 구동 중인 상태이다.
./p4 info # 이하는 p4 명령어 출력 메시지 예시 User name: perforce Client name: linux-bruno Client host: linux-bruno Client unknown. Current directory: /home/bruno/newinstall Peer address: 127.0.0.1:12345 Client address: 127.0.0.1 Server address: localhost:1666 Server root: /home/bruno/newinstall Server date: 2018/11/14 15:18:55 -0800 PST Server uptime: 00:00:09 Server version: P4D/LINUX26X86_64/2018.2/1234567 (2018/11/02) Server license: none Case Handling: sensitive
Shell
복사

서비스 파일 작성

설치는 완료했지만 서비스 등록이 안되어 있기 때문에 인스턴스를 재시작하면 서버를 수동으로 시작해줘야 하는 문제가 있다. 그러므로 서비스를 등록하여 인스턴스 시작시 자동으로 Helix Core 서버가 시작되도록 만드는게 좋다.
Perforce 측에서 친절하게도 서비스 파일 샘플을 제공해주고 있다.
위 샘플 파일에 다소 부족한 내용이 있어 서비스 파일을 입맛대로 수정했다. 주석 내용을 참고하여 자신에게 맞게 커스텀 하면 된다.
sudo vi /etc/systemd/system/p4d.service
Shell
복사
[Unit] Description=Perforce Server After=network-online.target Wants=network-online.target [Service] Type=forking # 설치한 사용자의 이름과 그룹명으로 변경합니다. User=perforce Group=perforce # 설치한 사용자 이름으로 설정합니다. Environment="P4USER=perforce" # 서버의 포트를 설정합니다. Environment="P4PORT=0.0.0.0:1666" # 서버의 설치 경로로 설정합니다. Environment="P4ROOT=/home/perforce/helix_install" ExecStart=/home/perforce/helix_install/p4d -J journal -L /home/perforce/helix_install/error.log -d ExecStop=/home/perforce/helix_install/p4 admin stop [Install] WantedBy=multi-user.target
Plain Text
복사
이제 systemctl 명령어를 이용하여 Helix Core 서버 서비스를 관리할 수 있다.
sudo systemctl daemon-reload sudo systemctl enable p4d.service sudo systemctl start p4d.service sudo systemctl status p4d.service
Shell
복사

SELinux

리눅스 배포판마다 차이가 있으나, OCI 에서 생성할 수 있는 Ampere A1 인스턴스의 경우 SELinux 가 기본적으로 활성화되어 있어서 서비스가 정상적으로 실행이 안될 수 있다.
ausearch 명령어를 이용하면 p4d 프로세스가 어떤 권한에 의해 차단되었는지 확인할 수 있다.
sudo ausearch -m avc -c p4d
Shell
복사
ausearch 명령어에 audit2allow 명령어를 파이프로 연결하면 p4d 프로세스에 필요한 권한을 부여하는 정책을 생성할 수 있다.
sudo ausearch -m avc -c p4d | audit2allow -M p4d_local
Shell
복사
명령어가 정상적으로 처리되면 필요한 권한 정책이 포함된 p4d_local.te 파일이 생성된다.
이제 semodule 명령어로 p4d_local.pp 파일에 정의된 정책을 시스템에 적용한다.
sudo semodule -i p4d_local.pp
Shell
복사
실행이 완료된 후에 서비스를 다시 시작하면 이번에는 오류 없이 처리되는 것을 확인할 수 있다.
sudo systemctl restart p4d.service
Shell
복사

방화벽

추가적으로 OCI 콘솔 가상 클라우드 네트워크 보안 정책에서 수신 규칙을 추가했음에도 외부에서 1666번 포트로 접근할 수 없다면 Oracle Linux 설치시 기본적으로 활성화 되어 있는 방화벽 규칙을 수정하면 해결된다.
sudo firewall-cmd --permanent --zone=public --add-port=1666/tcp sudo firewall-cmd --reload
Shell
복사

결론

이렇게 하여 Ampere A1 인스턴스에 Perforce Helix Core Server 를 설치해봤다. 아직 PC 클라이언트를 이용하여 정식으로 기능을 하는지 테스트 해본건 아니지만 실행 자체는 정상적으로 되는 모습이다.
Perforce 에서 제공하는 공식 가이드도 충분히 잘 되어 있지만, 필요한 정보가 나눠져 있기에 이렇게 노션 한 페이지 분량으로 정리한 것 만으로도 도움이 크게 될 것 같다.

참조