Proxmox VE ๊ฐ์
>V. ๊ณ ๊ธ ๊ธฐ๋ฅ ๋ฐ CLI ํ์ฉ
๐ป Proxmox VE ๊ฐ์ข V-4. Proxmox API ํ์ฉ: ์ธ๋ถ ์๋ํ ์คํฌ๋ฆฝํธ ์์ฑ ๊ธฐ์ด
์๋ฃ ๊ธฐ๋ณธ์ ๋ณด
์ฃผ์ ํ๋ก๊ทธ๋จ ์คํ
- ํ์ : 10.0
- ๋ผ์ด์ ์ค: free
ํผ๋๋ฐฑ ๋ฐ ๋ค์ด๋ก๋
- ์ฌ์ฉ์ ํ์ : 10.0
- ์กฐํ: 84
์ ์กฐ์ฌ ๋ฐ ๋ฑ๋ก ์ ๋ณด
- ์ ์์ฌ: LUZENSOFT
- ๋ฑ๋ก์ผ: 2026-02-10 11:29:29
- ์ค๋ช
โก ๋จ์ ๋ฐ๋ณต ์ ๋ฌด๋ฅผ ๋๋ด๋ ๋ง๋ฒ, Proxmox API์ ์ธ๊ณ
์๋ฒ ์ธํ๋ผ๋ฅผ ์ด์ํ๋ค ๋ณด๋ฉด ์์ญ ๋, ์๋ฐฑ ๋์ VM์ ๋์์ ์์ฑํ๊ฑฐ๋ ์ํ๋ฅผ ์ ๊ฒํด์ผ ํ๋ ์ํฉ์ด ๋ฐ๋์ ๋ฐ์ํฉ๋๋ค ์ผ์ผ์ด GUI์ ์ ์ํด ํด๋ฆญํ๋ ๊ฒ์ ์๊ฐ ๋ญ๋น์ผ ๋ฟ๋ง ์๋๋ผ ํด๋จผ ์๋ฌ์ ์์ธ์ด ๋๊ธฐ๋ ํ์ฃ Proxmox VE๋ ๊ฐ๋ ฅํ RESTful API๋ฅผ ์ ๊ณตํ์ฌ, ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ ์น ๋์๋ณด๋์์ ์ํํ๋ ๋ชจ๋ ๋์์ ์ฝ๋๋ก ์ ์ดํ ์ ์๊ฒ ํด์ค๋๋ค ์ด๋ฒ #๊ฐ์ข์์๋ ๊ฐ๋ฐ์์ ์์คํ ๊ด๋ฆฌ์ ๋ชจ๋์๊ฒ ํ์์ ์ธ Proxmox API์ ๊ตฌ์กฐ๋ฅผ ํ์ ํ๊ณ , ์ธ๋ถ ์คํฌ๋ฆฝํธ๋ฅผ ํตํด ์ธํ๋ผ๋ฅผ ์๋ํํ๋ ์ฒซ๊ฑธ์์ ๋ผ์ด๋ณด๊ฒ ์ต๋๋ค
1. Proxmox API์ ๊ตฌ์กฐ์ ์ธ์ฆ ๋ฐฉ์
Proxmox API๋ HTTP ์์ฒญ์ ํตํด ์๋ฒ์ ๋ํํ๋ ํ์ค์ ์ธ ๋ฐฉ์์ ๋ฐ๋ฆ ๋๋ค
A. RESTful ์ํคํ ์ฒ์ ์ดํด
๋ชจ๋ ์์(VM, ์คํ ๋ฆฌ์ง, ๋ ธ๋)์ ๊ณ ์ ํ URL ๊ฒฝ๋ก๋ฅผ ๊ฐ์ง๋๋ค GET(์กฐํ), POST(์์ฑ/์คํ), PUT(์์ ), DELETE(์ญ์ ) ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ํ #์์คํ ์ ์ฒด๋ฅผ ์์ ์์ฌ๋ก ์ปจํธ๋กคํ ์ ์์ต๋๋ค
B. API Token ์์ฑ๊ณผ ๋ณด์
๊ณผ๊ฑฐ์๋ ์ฌ์ฉ์ ํจ์ค์๋๋ฅผ ์ง์ ์ฌ์ฉํ์ง๋ง, ํ์ฌ๋ 'API Token' ๋ฐฉ์์ด ๊ถ์ฅ๋ฉ๋๋ค ํน์ ๊ถํ๋ง ๋ถ์ฌ๋ ํ ํฐ์ ์์ฑํจ์ผ๋ก์จ ํจ์ค์๋ ๋ ธ์ถ ์ํ์ ์ค์ด๊ณ , ์คํฌ๋ฆฝํธ๋ณ๋ก ์ ๊ทผ #๊ธฐ๋ฅ์ ์ ํํ ์ ์์ด ๋ณด์์ฑ์ด ๋งค์ฐ ๋์ต๋๋ค
C. JSON ๋ฐ์ดํฐ ํฌ๋งท
API์์ ํต์ ๊ฒฐ๊ณผ๋ ํ์ค JSON ํ์์ผ๋ก ๋ฐํ๋ฉ๋๋ค ์ด๋ Python, JavaScript, PHP ๋ฑ ์ด๋ค ์ธ์ด๋ฅผ ์ฌ์ฉํ๋๋ผ๋ ์๋ต #๋ฐ์ดํฐ๋ฅผ ๋ถ์ํ๊ณ ๊ฐ๊ณตํ๊ธฐ์ ๋งค์ฐ ํธ๋ฆฌํ ํ๊ฒฝ์ ์ ๊ณตํฉ๋๋ค
2. ์๋ํ ์คํฌ๋ฆฝํธ ์์ฑ์ ์ํ ํ๊ฒฝ ์ค๋น
์คํฌ๋ฆฝํธ๊ฐ Proxmox ์๋ฒ์ ์์ ํ๊ฒ ์ ๊ทผํ ์ ์๋๋ก ๊ธฐ์ด ๊ณต์ฌ๋ฅผ ์งํํด์ผ ํฉ๋๋ค
A. ๊ถํ ๋ฐ ์ญํ (Role) ์ค์
๋ฌด๋ถ๋ณํ API ์ ๊ทผ์ ์ํํฉ๋๋ค ํน์ VM๋ง ๊ด๋ฆฌํ๊ฑฐ๋ ๋ชจ๋ํฐ๋ง๋ง ๊ฐ๋ฅํ๋๋ก PVEVMAdmin ๋๋ PVEOuditor ๊ฐ์ ์ญํ ์ ํ ๋นํ๋ ์ธ๋ฐํ #์ ๋ต์ด ํ์ํฉ๋๋ค
B. API ํ ํฐ ID์ ์ํฌ๋ฆฟ ๊ด๋ฆฌ
์์ฑ๋ ํ ํฐ ID์ Secret Value๋ ์คํฌ๋ฆฝํธ ์์ค ์ฝ๋์ ํ๋์ฝ๋ฉํ๊ธฐ๋ณด๋ค ํ๊ฒฝ ๋ณ์๋ ๋ณ๋์ ์ค์ ํ์ผ์ ์ ์ฅํ๋ ๊ฒ์ด #์์ ์ฑ ์ธก๋ฉด์์ ์ ๋ฆฌํฉ๋๋ค
C. ํต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ํ
์ง์ curl ๋ช ๋ น์ด๋ฅผ ์จ๋ ๋์ง๋ง, Python์
proxmoxer๋ Go ์ธ์ด์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฑ์ ํ์ฉํ๋ฉด ํจ์ฌ ๋ ์ฝ๋์ ๊ฐ๋ ์ฑ์ ๋์ด๊ณ #์ต์ ํ๋ ๊ฐ๋ฐ์ด ๊ฐ๋ฅํฉ๋๋ค
3. ์ค์ ! API ํธ์ถ ์๋๋ฆฌ์ค์ ์์
๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ์๋ํ ํจํด์ ํตํด API ํ์ฉ๋ฒ์ ์ตํ๋ณด๊ฒ ์ต๋๋ค
A. VM ์ํ ๋ชจ๋ํฐ๋ง ์๋ํ
ํน์ ๋ ธ๋์ ๋ชจ๋ VM ๋ฆฌ์คํธ๋ฅผ ๋ถ๋ฌ์ CPU/๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ฒดํฌํ๊ณ , ์๊ณ์น๋ฅผ ๋์ผ๋ฉด ์๋ฆผ์ ๋ณด๋ด๋ ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ ์ ์์ต๋๋ค ์ด๋ ๋๊ท๋ชจ #์ ์ฑ ๊ธฐ๋ฐ ์ธํ๋ผ ๊ด๋ฆฌ์ ํต์ฌ์ ์ธ ์ญํ ์ ํฉ๋๋ค
B. ํ ํ๋ฆฟ ๊ธฐ๋ฐ VM ์ผ๊ด ์์ฑ
๋์ผํ ์ค์ ์ ๊ฐ์ง ์น ์๋ฒ 10๋๋ฅผ ํ ๋ฒ์ ์์ฑํ๊ณ IP๋ฅผ ํ ๋นํ๋ ์์ ๋ API ํ ๋ฒ์ ๋ฃจํ(Loop)๋ก ํด๊ฒฐ๋ฉ๋๋ค ์๋ ์์ ๋๋น ์์ญ ๋ฐฐ ๋น ๋ฅธ #์ธํ๋ผ ๋ฐฐํฌ ์๋๋ฅผ ์๋ํฉ๋๋ค
C. ๋ฐฑ์ ๋ฐ ์ค๋ ์ท ์ฃผ๊ธฐ์ ์คํ
Proxmox ์์ฒด ์ค์ผ์ค๋ฌ ์ธ์, ํน์ ์ด๋ฒคํธ(์: ์์ค ์ฝ๋ ๋ฐฐํฌ ์ง์ )๊ฐ ๋ฐ์ํ์ ๋ API๋ฅผ ํธ์ถํ์ฌ ์ฆ์ ์ค๋ ์ท์ ์ฐ๋๋ก ์ค์ ํจ์ผ๋ก์จ #๋คํธ์ํฌ ์๋น์ค์ ๊ฐ์ฉ์ฑ์ ๊ทน๋ํํ ์ ์์ต๋๋ค
4. API ํ์ฉ ์ ์ฃผ์์ฌํญ ๋ฐ ๋๋ฒ๊น
๊ฐ๋ ฅํ ๋๊ตฌ์ผ์๋ก ์ ์คํ ๊ด๋ฆฌ๊ฐ ํ์ํฉ๋๋ค
A. ์๋ ์ ํ(Rate Limiting)๊ณผ ๋ถํ ๊ด๋ฆฌ
์งง์ ์๊ฐ ๋ด์ ์์ฒ ๋ฒ์ API ์์ฒญ์ ๋ณด๋ด๋ฉด API ์๋ฒ ์์ฒด์ ๋ถํ๋ฅผ ์ค ์ ์์ต๋๋ค ์ ์ ํ ์ง์ฐ ์๊ฐ(Sleep)์ ๋์ด ์๋ฒ ์์์ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๋ #๋ณด์ ๋ฐ ๊ด๋ฆฌ ์ต๊ด์ด ํ์ํฉ๋๋ค
B. ์ธ์ฆ ์ค๋ฅ ๋ฐ ๊ถํ ๋ถ์กฑ ํด๊ฒฐ
API ํธ์ถ ์ 401(Unauthorized) ๋๋ 403(Forbidden) ์๋ฌ๊ฐ ๋ฐ์ํ๋ค๋ฉด ํ ํฐ์ ์ ํจ ๊ธฐ๊ฐ๊ณผ ํ ๋น๋ #์์ ๋ฒ์๋ฅผ ๋ค์ ์ ๊ฒํด์ผ ํฉ๋๋ค
C. ์๋ฌ ํธ๋ค๋ง๊ณผ ์์ธ ์ฒ๋ฆฌ
๋คํธ์ํฌ ๋จ์ ์ด๋ ์๋ฒ ์๋ต ์ง์ฐ ๋ฑ ์์์น ๋ชปํ ์ํฉ์ #๋์ํ ์ ์๋๋ก ์คํฌ๋ฆฝํธ ๋ด์ Try-Except ๊ตฌ๋ฌธ์ ๊ผผ๊ผผํ ์์ฑํด์ผ ์๋ํ ์์คํ ์ ์ ๋ขฐ๋๋ฅผ ๋์ผ ์ ์์ต๋๋ค
Proxmox API๋ ๋จ์ํ ๊ธฐ๋ฅ์ ๋์ด '์ธํ๋ผ๋ฅผ ์ฝ๋๋ก ๊ด๋ฆฌํ๋(IaC)' ์๋๋ก ๊ฐ๋ ๊ด๋ฌธ์ ๋๋ค ์ฒ์์๋ curl ๋ช ๋ น์ด ํ ์ค๋ก ์์ํ๊ฒ ์ง๋ง, ๋์ค์๋ ์ฌ๋ฌ๋ถ๋ง์ ์ปค์คํ ๊ด๋ฆฌ ๋์๋ณด๋๋ ์๋ ๋ณต๊ตฌ ์์คํ ์ ๊ตฌ์ถํ๊ฒ ๋ ๊ฒ์ ๋๋ค ๋ฐ๋ณต๋๋ ํด๋ฆญ์์ ๋ฒ์ด๋ ์ฝ๋๋ก ์ธํ๋ผ๋ฅผ ์งํํ๋ ์ฆ๊ฑฐ์์ ๋๊ปด๋ณด์๊ธฐ ๋ฐ๋๋๋ค ํจ์จ์ ์ธ ์๋ํ๋ ๋จ์ํ ์๊ฐ์ ์๋ผ๋ ๊ฒ์ ๋์ด, ๋ ๊ฐ์น ์๋ ์ค๊ณ์ ์ง์คํ ์ ์๋ ํ๊ฒฝ์ ๋ง๋ค์ด์ค ๊ฒ์ ๋๋ค ๋ค์ ์๊ฐ์๋ CLI์ ์ ์ ์ด๋ผ ํ ์ ์๋ 'Proxmox VE Cluster ์์ฑ ๋ฐ ๋ค์ค ๋ ธ๋ ๊ด๋ฆฌ'์ ๋ํด ์์ธํ ์์๋ณด๊ฒ ์ต๋๋ค
๊ฐ์ข, ์์คํ , ๊ธฐ๋ฅ, ๋ฐ์ดํฐ, ์ ๋ต, ์์ ์ฑ, ์ต์ ํ, ์ ์ฑ , ์ธํ๋ผ, ๋คํธ์ํฌ, ๋ณด์, ์์, ๋์
์ต์ ์ ์ฑ๋ฅ, ์ต๊ณ ์ ๋น์ฉ ํจ์จ์ฑ! ๋น์ ์ ํ๋ก์ ํธ์ ๋ฑ ๋ง๋ Proxmox VE ๊ธฐ๋ฐ ํธ์คํ ์ ๊ฒฝํํด ๋ณด์ธ์. ๋ฃจ์ ํธ์คํ ๋ฐ๋ก๊ฐ๊ธฐ