서버 관리 도구
서버 그 자체에 관한 모든 것을 다루는 도구입니다. 서버 레코드를 찾고 갱신하고, 서버에 노트를 남기고, Alpacon 에이전트를 제어하고, OS를 재부팅하거나 업그레이드하고, 등록 토큰으로 새 호스트를 등록합니다. “우리한테 어떤 서버가 있지”, “web-01의 에이전트를 재시작해줘”, “새 Debian 서버용 설치 스크립트를 줘” 같은 요청에 대응합니다.
모든 도구는 workspace(필수)와 region(선택, 미지정 시 설정된 리전 사용)을 인자로 받습니다. 아래 표에서는 이 공통 파라미터를 생략합니다.
요약
| 도구 | 설명 | 접근 수준 |
|---|---|---|
list_servers | 워크스페이스의 전체 서버 목록 조회 | 읽기 전용 |
get_server | 서버 하나의 상세 정보 조회 | 읽기 전용 |
update_server | 서버 이름·설명 변경 | 멱등적 쓰기 |
unregister_server | 워크스페이스에서 서버 등록 해제 | 파괴적 |
star_server | 빠른 접근을 위해 서버 고정/해제 | 멱등적 쓰기 |
list_server_notes | 서버에 달린 노트 목록 조회 | 읽기 전용 |
create_server_note | 서버에 노트 추가 | 추가적 |
get_server_note | 노트 하나의 상세 조회 | 읽기 전용 |
update_server_note | 기존 노트 수정 | 멱등적 쓰기 |
delete_server_note | 노트 삭제 | 파괴적 |
restart_agent | Alpacon 에이전트 재시작 | 파괴적 |
shutdown_agent | Alpacon 에이전트 종료 | 파괴적 |
upgrade_agent | Alpacon 에이전트를 최신 버전으로 업그레이드 | 파괴적 |
update_information | 하드웨어·OS·네트워크·패키지 정보 갱신 | 추가적 |
upgrade_system | OS 패키지 전체 업그레이드 | 파괴적 |
reboot_system | 서버 재부팅 | 파괴적 |
shutdown_system | 서버 전원 종료 | 파괴적 |
list_registration_tokens | Alpamon 등록 토큰 목록 조회 | 읽기 전용 |
create_registration_token | 신규 등록 토큰 발급 | 추가적 |
delete_registration_token | 등록 토큰 폐기 | 파괴적 |
get_registration_guide | 플랫폼별 설치 스크립트 조회 | 읽기 전용 |
서버 인벤토리
워크스페이스 인벤토리에서 서버를 조회·이름 변경·고정·삭제합니다.
list_servers
워크스페이스의 전체 서버 목록을 조회합니다. 각 서버의 이름, UUID, 상태, OS, 연결 정보를 반환합니다. 사용 가능한 서버를 찾고 다른 대부분의 도구에서 필요한 UUID를 얻으려면 먼저 이 도구를 사용합니다.
접근 수준: 읽기 전용
예시
“프로덕션에 어떤 서버들이 있지?”
전체 서버 인벤토리를 반환하므로 이름·OS·상태로 원하는 서버를 찾을 수 있습니다.
get_server
UUID로 특정 서버의 상세 정보를 조회합니다. 호스트명, IP 주소, OS, 에이전트 버전, 온라인 상태를 반환합니다. UUID를 모른다면 먼저 list_servers로 조회합니다.
접근 수준: 읽기 전용
파라미터
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
server_id | string | 예 | 서버 UUID |
예시
“web-01 상세 정보 보여줘”
list_servers로 UUID를 찾은 뒤 해당 서버 하나의 호스트명, IP, OS, 상태를 조회합니다. 하드웨어·OS 내부 정보까지 포함한 더 자세한 정보는 시스템 정보 도구를 참고합니다.
update_server
UUID로 서버의 name 또는 description을 변경합니다. Alpacon 인벤토리 메타데이터만 갱신할 뿐 호스트 자체에는 아무런 영향이 없습니다. name 또는 description 중 최소 하나는 반드시 전달해야 합니다.
접근 수준: 멱등적 쓰기
파라미터
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
server_id | string | 예 | 서버 UUID |
name | string | 아니오 | 새 서버 이름 |
description | string | 아니오 | 새 서버 설명 |
예시
“7e3984de-49ab-4cc6-bcdf-21fbd35858b8 서버 이름을 web-01-tokyo로 바꿔줘”
인벤토리에 표시되는 서버 이름을 변경합니다. 호스트 자체는 영향받지 않습니다.
unregister_server
UUID로 워크스페이스에서 서버를 등록 해제합니다. 서버는 모든 목록에서 사라지고 새 Work Session의 대상이 될 수 없지만, 호스트에서 직접 제거하기 전까지 Alpamon 에이전트는 계속 실행됩니다. 이 도구로는 되돌릴 수 없으며, 호스트를 다시 등록하려면 등록 토큰으로 설치 스크립트를 다시 실행해야 합니다.
접근 수준: 파괴적
파라미터
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
server_id | string | 예 | 서버 UUID |
예시
“폐기된 db-old 서버 등록 해제해줘”
등록 해제 전에 get_server로 UUID를 확인합니다. 등록 해제 후 항목을 되살리려면 호스트에서 설치 스크립트를 다시 실행해야 합니다.
star_server
호출자 본인이 더 빠르게 접근할 수 있도록 서버를 고정하거나 해제합니다. 개인 취향 설정일 뿐 워크스페이스 전체 설정이 아니므로, 다른 사람의 가시성·RBAC·ACL에는 영향을 주지 않습니다.
접근 수준: 멱등적 쓰기
파라미터
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
server_id | string | 예 | 서버 UUID |
status | boolean | 예 | true면 고정, false면 해제 |
예시
“web-01 즐겨찾기에 추가해줘, 자주 찾게 되네”
호출자 본인의 뷰에서만 서버가 고정됩니다. 다른 사람의 목록은 그대로입니다.
서버 노트
서버에 자유 형식 문서를 남기고 관리합니다. 유지보수 로그, 구성 메모, 운영 기록 등입니다.
list_server_notes
서버에 달린 문서 노트 목록을 조회합니다. 제목, 내용, 타임스탬프를 반환합니다. 새 노트를 추가하기 전에 기존 운영 기록을 검토할 때 사용합니다.
접근 수준: 읽기 전용
파라미터
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
server_id | string | 예 | 서버 UUID |
예시
“db-01에 어떤 노트가 있지?”
해당 서버에 기록된 모든 노트를 반환합니다.
create_server_note
제목과 본문으로 서버에 문서 노트를 생성합니다. 운영 노트, 유지보수 로그, 구성 문서를 기록할 때 사용합니다.
접근 수준: 추가적
파라미터
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
server_id | string | 예 | 서버 UUID |
title | string | 예 | 노트 제목 |
content | string | 예 | 노트 내용 |
예시
“web-01에 노트 추가해줘: 2026-07-09에 TLS 인증서 갱신함”
해당 서버에 새 노트를 생성합니다.
get_server_note
ID로 특정 서버 노트의 상세 정보를 조회합니다. 제목, 내용, 서버, 작성자, 타임스탬프, 공개 설정을 반환합니다. 노트 ID는 먼저 list_server_notes로 조회합니다.
접근 수준: 읽기 전용
파라미터
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
note_id | string | 예 | 노트 ID |
예시
“그 유지보수 노트 전체 내용 보여줘”
list_server_notes에서 얻은 ID로 노트 하나의 전체 상세를 조회합니다.
update_server_note
ID로 기존 서버 노트의 제목 또는 내용을 수정합니다. 부분 수정이므로 전달한 필드만 변경됩니다. title 또는 content 중 최소 하나는 반드시 전달해야 합니다.
접근 수준: 멱등적 쓰기
파라미터
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
note_id | string | 예 | 노트 ID |
title | string | 아니오 | 새 제목 |
content | string | 아니오 | 새 내용 |
예시
“그 노트에 인증서 갱신 완료했다고 업데이트해줘”
content 필드만 변경됩니다. 새 제목을 함께 전달하지 않으면 제목은 그대로 유지됩니다.
delete_server_note
ID로 서버 노트를 영구 삭제합니다. 이 작업은 되돌릴 수 없습니다.
접근 수준: 파괴적
파라미터
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
note_id | string | 예 | 노트 ID |
예시
“db-01의 오래된 유지보수 노트 삭제해줘”
삭제 전에 get_server_note로 노트를 확인합니다. 삭제 후에는 되돌릴 수 없습니다.
에이전트 라이프사이클
서버에서 실행 중인 Alpacon 에이전트(Alpamon)를 제어하고, 에이전트가 보고하는 시스템 정보를 갱신하도록 트리거합니다.
restart_agent
서버의 Alpacon 에이전트 프로세스를 재시작합니다. 재시작 중 에이전트가 잠시 오프라인 상태가 됩니다. 에이전트가 응답하지 않거나 구성 변경 후에 사용합니다.
접근 수준: 파괴적
파라미터
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
server_id | string | 예 | 서버 UUID |
예시
“web-01 에이전트 재시작해줘, 메트릭이 안 올라와”
에이전트 프로세스를 재시작합니다. 재연결될 때까지 서버가 잠시 오프라인으로 표시됩니다.
shutdown_agent
서버의 Alpacon 에이전트 프로세스를 종료합니다. 에이전트를 수동으로 재시작하기 전까지 서버는 워크스페이스에서 오프라인으로 표시되며, 그동안 원격 접근이 불가능합니다.
접근 수준: 파괴적
파라미터
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
server_id | string | 예 | 서버 UUID |
예시
“폐기 예정 서버 에이전트 종료해줘”
에이전트를 중지합니다. 다시 살리려면 누군가 로컬 또는 수동으로 접근해야 합니다.
upgrade_agent
서버의 Alpacon 에이전트를 최신 버전으로 업그레이드합니다. 업그레이드 중 에이전트가 잠시 재시작됩니다.
접근 수준: 파괴적
파라미터
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
server_id | string | 예 | 서버 UUID |
예시
“web-01 에이전트 최신 버전으로 업그레이드해줘”
해당 서버에서 업그레이드를 트리거합니다. list_servers 결과를 순회하면 여러 서버를 한 번에 업그레이드할 수 있습니다.
update_information
에이전트가 하드웨어·OS·네트워크·패키지 데이터를 다시 수집하도록 트리거해 서버의 시스템 정보를 갱신합니다. 하드웨어 변경이나 OS 업데이트 후 대시보드가 현재 상태를 반영하도록 할 때 사용합니다.
접근 수준: 추가적
파라미터
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
server_id | string | 예 | 서버 UUID |
예시
“RAM 증설 후 web-01 정보 갱신해줘”
재수집을 트리거합니다. 에이전트가 수집을 마치면 갱신된 데이터가 반영됩니다.
시스템 제어
서버 하부의 운영체제를 업그레이드하거나 재부팅하거나 전원을 끕니다.
upgrade_system
OS 패키지 매니저(예: apt upgrade, yum update)를 통해 서버의 시스템 패키지를 전부 업그레이드합니다. 대기 중인 업데이트 수에 따라 몇 분 이상 걸릴 수 있으므로 프로덕션 환경에서는 주의해서 사용합니다.
접근 수준: 파괴적
파라미터
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
server_id | string | 예 | 서버 UUID |
예시
“staging-02 패키지 전부 업그레이드해줘”
전체 패키지 업그레이드를 실행합니다. 커널 업데이트가 포함되면 이후 reboot_system이 필요할 수 있습니다.
reboot_system
서버를 재부팅합니다. 잠시 오프라인이 된 뒤 에이전트가 다시 올라오면 자동으로 재연결됩니다. 커널 업데이트 후나 전체 재시작이 필요할 때 사용합니다.
접근 수준: 파괴적
파라미터
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
server_id | string | 예 | 서버 UUID |
예시
“커널 업데이트 끝났으니 staging-02 재부팅해줘”
호스트를 재부팅합니다. 다시 올라오면 자동으로 재연결됩니다.
shutdown_system
서버를 완전히 종료합니다. 전원이 꺼지며 자동으로 재연결되지 않으므로, 다시 온라인 상태로 만들려면 수동 조치가 필요합니다. 매우 신중하게 사용합니다.
접근 수준: 파괴적
파라미터
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
server_id | string | 예 | 서버 UUID |
예시
“이제 안 쓰는 테스트 서버 종료해줘”
누군가 수동으로 다시 켜기 전까지 서버 전원이 완전히 꺼집니다.
등록 토큰 및 설치 가이드
새 호스트 등록에 쓰이는 토큰을 발급·관리하고, 해당 토큰을 사용하는 플랫폼별 설치 스크립트를 조회합니다.
list_registration_tokens
워크스페이스에서 발급된 Alpamon 등록 토큰 목록을 조회합니다. 등록 토큰은 설치 스크립트에 내장되어 호스트가 처음 실행될 때 인증하는 데 쓰이는 자격 증명입니다. 새 토큰을 발급하거나 유출된 토큰을 교체하기 전에 사용합니다.
접근 수준: 읽기 전용
파라미터
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
page | integer | 아니오 | 페이지네이션용 페이지 번호 |
page_size | integer | 아니오 | 페이지당 결과 수 |
예시
“지금 활성화된 등록 토큰이 뭐가 있지?”
워크스페이스의 토큰 ID, 이름, 생성 메타데이터를 반환합니다.
create_registration_token
새 호스트에 에이전트를 설치하기 위한 새 Alpamon 등록 토큰을 발급합니다. 반환된 토큰은 설치 스크립트(get_registration_guide 참고)에 내장됩니다. 이후 깔끔하게 교체할 수 있도록 코호트나 배치 단위로 토큰 이름을 짓습니다(예: prod-web-2026-q2).
접근 수준: 추가적
파라미터
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
name | string | 예 | 토큰 이름 |
description | string | 아니오 | 토큰 설명 |
예시
“신규 웹 서버 배치용 등록 토큰 만들어줘”
get_registration_guide에 바로 넘길 수 있는 토큰을 발급합니다.
delete_registration_token
ID로 Alpamon 등록 토큰을 폐기합니다. 이미 등록된 호스트는 계속 정상 작동하며, 이 도구는 해당 토큰으로의 신규 등록만 차단합니다. 토큰 유출이 의심되거나 롤아웃 코호트가 끝났을 때 자격 증명을 교체하는 데 사용합니다.
접근 수준: 파괴적
파라미터
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
token_id | string | 예 | 등록 토큰 UUID |
예시
“지난 분기 롤아웃에 썼던 토큰 폐기해줘”
해당 토큰으로의 신규 설치를 차단합니다. 이미 등록된 호스트는 영향받지 않습니다.
get_registration_guide
등록 토큰에 대한 플랫폼별 Alpamon 설치 스크립트를 조회합니다. 대상 호스트를 Alpacon 제어 아래로 가져오기 위해 실행할 정확한 명령을 반환합니다. platform은 debian, rhel, darwin, windows 중 하나여야 합니다. server_name으로 호스트 이름을 미리 지정할 수도 있습니다.
접근 수준: 읽기 전용
파라미터
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
token_id | string | 예 | 등록 토큰 UUID |
platform | string | 예 | debian, rhel, darwin, windows 중 하나 |
server_name | string | 아니오 | 설치 시 미리 지정할 서버 이름 |
예시
“web-05라는 이름으로 새 Debian 서버 설치 스크립트 줘”
해당 토큰의 설치 명령을 반환하며, 호스트 이름은 web-05로 미리 설정됩니다.