Closed hyeseung-of-dable closed 2 years ago
untrusted workflows가 실행된다면 -> 서버와 네트워크 환경에 심각한 보안 위험 ( private 레포에서만 실행하면 문제 없어 보임. 참고 )
-> 현재는 repository-level로 테스트중 organization 관리자 권한이 없어서, 레포에서 각각 runner 설정해주어야함
i. nohup
nohup bash run.sh &
-> 주말에 켜두었는데, 꺼졌음!
ii. service
https://docs.github.com/en/actions/hosting-your-own-runners/configuring-the-self-hosted-runner-application-as-a-service
docs대로 실행하면, /etc/systemd/system에 service가 생성된다.
( 장비가 리부트되어도 자동으로 켜짐 👍 )
sudo service actions{tab} status
로 확인가능
필요한 script들을 도커이미지에 미리 생성 -> github hosted runner에서 docker 실행해서 사용 가능
(-) vv script들이 업데이트될때마다 도커이미지 업데이트해야함
@hyeseung-of-dable self-hosted runner를 github actions로 연결할 때 장점 갑자기 생각이 났는데, CI와 branch protect 등에 활용될 것 같아서 좋아보입니다.
self-hosted 장비(온프레미스 or 클라우드)를 러너머신으로 사용 -> actions 탭에서 workflows를 트리거하면 어디서 작업이 실행?
i. runner machine에서 직접 실행
ii. Docker contatiner에서 실행
https://docs.github.com/en/actions/using-containerized-services/about-service-containers
AS-IS 2022-03-15) 오피스 2번 장비로 하는 중.
TO-BE)
CI gpu가 있어야, ml 프로세서의 unittest가 가능해짐 -> 필요한 때에 g4dn.xlarge aws 인스턴스 생성 or 오피스 장비 이용
CD cpu만 있어도 가능함. 비교적 단순한 작업을 실행 -> aws의 저렴한 인스턴스 사용하는 것이 어떤지? ( 1번장비는 테스트 장비로 환경이 일정하지않고, 재부팅이 잦음 2번장비는 장애 발생시, 대체할 수 있는 장비임. )
private repo -> 제한이 있음 ( 참고 )
한 달에 3000분은 무료 -> 거의 무료라고 생각해도 될듯
갑작스럽게 self hosted server가 바뀌게 되더라도 신속하게 대응 가능 ( 필요한 스크립트들이 전부 해당 도커 컨테이너에 있어야 함 ) -> (-) vv-edge-setup 업데이트되면 도커이미지도 업데이트해야함 -> (-) aws를 상시 띄워두면, 갑자기 server를 변경해야하는 일이 없지않을까?
결론)
장비를 분리하면 도커는 아직 필요하지않아보임
1번장비: gpu를 이미 50%사용중 -> ml unittest로는 환경 분리해도 gpu사용에 무리가 있을 수도 있음
2번장비: 대체장비로 사용하지않아야 가능
aws ec2: 다 좋지만, 요금 부과. 후에 ml unittest 추가되어서 gpu 장비를 사용하게되면, 비싸짐
AS-IS)
github에서 제공하는 cloud runner 사용 (-) private pip 라이브러리 설치하기 위해, parameter로 extra-index-url , trusted-host를 제공해야함 ( 보안 이슈 ? ) 팀에서 사용하는 private pip 라이브러리
(-) CI를 할 때도, GPU가 없어서 제한적임
TO-BE)