2026.04.13 - [프로젝트/OpenCSP] - [OpenCSP] Index - Provisioning Flow
[OpenCSP] Index - Provisioning Flow
2026.03.23 - [프로젝트/OpenCSP] - API 요청으로 Terraform CR 생성하기 2026.03.25 - [프로젝트/OpenCSP] - API 요청으로 PVE VM 생성하기 2026.03.26 - [프로젝트/OpenCSP] - OpenCSP Console로 VM 생성해보기 2026.03.28 - [프로젝
miiml.tistory.com
이전 글까지가 Terraform으로 리소스를 생성하는 거였다면 여기부턴 생성 이후 프로비저닝을 Ansible로 자동화하는 로직을 구현하는 단계다.
Ansible은 SSH와 CLI 기반으로 동일한 스크립트를 여러 서버에 한번에 적용하거나 구성을 관리하는 IT 자동화 도구(RedHat 꺼) 이고,
Semaphore는 Ansible을 웹 UI로 편하게 관리할 수 있는 툴이다. (비슷한 포지션 도구로는 Ansible Tower(유료), AWX 등이 있음)
좋은 점은 반응형 웹 UI와 별도의 API를 지원한다는 점이고 다른 툴에 비해 가볍기 때문에 Core에 넣기 좋아보였다.
Semaphore도 Flux가 구성을 관리해주는데 얘는 별도의 CR을 제공하지 않고 API로 기능을 다 제어한다.
프로젝트에서 이 툴의 역할은 Post-provisioning인데 (테라폼으로 리소스 생성이 끝난 후에 Agent 및 기본 패키지 설치/업데이트, 보안 스크립트 실행 등을 할 예정)
아래 이미지의 박스 부분을 담당하기 위해 구성했다.

지금 당장할 건 Teleport Agent 설치와 기본 설정 변경 정도고
얘네들은 어느정도 모듈화되어서 OpenCSP-modules/ansible에 올라가 있다.
이제 하나씩 정리해 보겠음
처음에 관리자 계정 생성을 바로 못해서 (방법이 있을 수도 있긴한데 모르겠음) 아래 명령어로 생성해줬다.
kubectl exec -it $(kubectl get pod -n semaphore -l app.kubernetes.io/name=semaphore -o name) -n semaphore -- semaphore user add --admin \
--name "Admin" --login "admin" --email "admin@domain.com" --password 'PASSWORD'
비밀번호에 특수기호가 들어가면 '' 로 묶어주면 되고 잘못 입력했으면 아래 명령어로 수정 가능
kubectl exec -it $(kubectl get pod -n semaphore -l app.kubernetes.io/name=semaphore -o name) -n semaphore -- semaphore user change-by-login \
--login "admin" \
--password 'NEW_PASSWORD'
로그인하면 아래처럼 UI가 보인다.

먼저 console로 vm 만들어주고

semaphore로 와서 git repository를 등록해줌.
ansible 실행하는 주체가 local에서 semaphore가 된거라 requirements와 site.yaml이 있는 core를 등록해주면 된다. (public이라 key는 필요없지만 private이면 github 키도 별도 등록과 연결 필요)

vm 접근할 ssh 키도 생성해준다. (pub 키는 해당 VM의 ~/.ssh/authorized 에 추가)

인벤토리를 만들면서 위에서 생성한 키 연결해주고 node_name은 텔레포트에 등록해줄 이름을 담은 변수임

이제 모듈에서 사용하는 변수들 채워서 등록해주고

템플릿 생성하면서 site.yaml 파일을 지정해주고 변수는 Variable Group 에 설정해주면 됨

Task 잘 완료됐다

텔레포트에서도 잘 생성됨

웹 UI에서는 잘 생성됐으니까 curl로 요청해보고 BE에서 WebClient로 동일하게 요청만 보내주면 완성
| Lago기반 Billing 파이프라인 구조 고민 (1) | 2026.04.19 |
|---|---|
| Ansible Semaphore로 VM post-provisioning하기(2) (2) | 2026.04.13 |
| OpenCSP Console로 VM 생성해보기 (0) | 2026.03.28 |
| API 요청으로 PVE VM 생성하기 (0) | 2026.03.25 |
| API 요청으로 Terraform CR 생성하기 (0) | 2026.03.23 |