| name | openstack-profile |
| description | Switch between OpenStack MCP connection profiles (different clouds/accounts) and manage them. Use when the user wants to change which OpenStack MCP server or account Claude Code is connected to, or to add/list/remove connection profiles. Triggers - "switch profile", "change cloud/server", "add a profile", "/openstack-profile". |
OpenStack ์ฐ๊ฒฐ ํ๋กํ ๊ด๋ฆฌ
์ด ์คํฌ์ ํด๋ผ์ด์ธํธ์ MCP ๋ฑ๋ก(openstack-*)์ ํ๋กํ ๋จ์๋ก ์ ํ/๊ด๋ฆฌํ๋ค.
ํ๋กํ ํ๋ = ํ๋์ ํด๋ผ์ฐ๋(๋ฉ์ธ MCP BASE_URL) + ๊ณ์ (creds).
๋ฐฑ์๋ ์คํฌ๋ฆฝํธ ์ ํ (OS๋ณ)
- Windows โ
<skill-dir>/openstack-profile.ps1. ์คํ๊ธฐ๋ ๋ฒ์ ๋ฌด๊ดํ๊ฒ ์๋ ๊ฑธ ์๋ ์ ํ โ
pwsh(PowerShell 7)๊ฐ ์์ผ๋ฉด ๊ทธ๊ฑธ, ์์ผ๋ฉด ์๋์ฐ ๊ธฐ๋ณธ ๋ด์ฅ powershell(5.1)์ ์ด๋ค.
ํ ์ค๋ก: $ps = if (Get-Command pwsh -EA SilentlyContinue) { 'pwsh' } else { 'powershell' }.
(pwsh ํ๋๋ก ๋ฐ์ผ๋ฉด PS7 ๋ฏธ์ค์น PC์์ CommandNotFoundException ๋๋ ๋ฐ์ง ๋ง ๊ฒ.)
- macOS/Linux โ
<skill-dir>/openstack-profile.sh๋ฅผ bash๋ก ์คํ.
<skill-dir> = ์ด SKILL.md๊ฐ ์๋ ๋๋ ํฐ๋ฆฌ(๋ณดํต ~/.claude/skills/openstack-profile).
๋์
- ๋ชฉ๋ก:
bash <skill-dir>/openstack-profile.sh list
(Win: $ps = if (Get-Command pwsh -EA SilentlyContinue) { 'pwsh' } else { 'powershell' }; & $ps -ExecutionPolicy Bypass -File <skill-dir>\openstack-profile.ps1 list). ํ์ฑ ํ๋กํ์ * (active)๋ก ํ์.
- ์ถ๊ฐ
add <name>: ์คํํ๋ฉด ํ๋กฌํํธ๋ก ๊ฐ์ ๋ฐ๋๋ค. โ ๏ธ Claude Code์ ! ์คํ์ TTY๊ฐ ์์ด ๋ํํ ํ๋กฌํํธ(read)๊ฐ ๊ฑด๋๋ฐ์ด์ ธ BASE_URL required๋ก ์ฃฝ๋๋ค. ๊ทธ๋ฌ๋ ์ฌ์ฉ์์๊ฒ "๋ณ๋ ํฐ๋ฏธ๋(์ค์ ์
ธ)์ ์ด์ด ์ง์ ์คํ"ํ๋ผ๊ณ ์๋ดํ๋ค โ ๊ทธ๋์ผ ํ๋กฌํํธ๊ฐ ๋จ๊ณ , ๋น๋ฐ๋ ๋ชจ๋ธ ์ปจํ
์คํธ๋ฅผ ์ ๊ฑฐ์น๋ค(์ธ์๋ก ๋๊ธฐ์ง ๋ง ๊ฒ). ! ์์์ ๊ผญ ํด์ผ ํ๋ฉด ์๋ ํ์ด๋ธ๋ฆฌ๋(env ํ๋ฆฌํ)๋ OPENSTACK_PROFILE_NONINTERACTIVE=1์ ์ฐ๋, ๊ทธ ๊ฒฝ์ฐ ๋น๋ฐ์ด ๋ช
๋ น์ ๋
ธ์ถ๋๋ค.
- ํ์(๋น๋ฉด ์ฌ์์ฒญ):
BASE_URL, OS_AUTH_URL, OS_APP_CRED_ID, OS_APP_CRED_SECRET(๊ฐ๋ ค์ง ์
๋ ฅ).
DOMAINS(๋ฑ๋กํ ์๋น์ค ๋ง์ดํธ ์๋ธ์
)๋ ํ๋กฌํํธํ์ง ์์ โ ๊ธฐ๋ณธ๊ฐ=์ ์ฒด(compute network storage lbaas image identity observability). ์๋ธ์
์ด ํ์ํ ๋๋ง env๋ก: DOMAINS="compute network" bash ...sh add <name>. (switch๋ ํ๋กํ์ DOMAINS ์ค์ด ์์ผ๋ฉด ๊ทธ๋๋ก ์กด์ค.)
- ๋น๋ํํ ํธ์ถ(์ค์น ์คํฌ๋ฆฝํธ ๋ฑ)์
OPENSTACK_PROFILE_NONINTERACTIVE=1๋ก ๋ชจ๋ ํ๋กฌํํธ๋ฅผ ๋ โ env๋ก ๋๊ธด ๊ฐ๋ง ์ ์ฅ.
- Unix(๋ณ๋ ํฐ๋ฏธ๋์์):
bash <skill-dir>/openstack-profile.sh add <name>
- Win(๋ณ๋ ํฐ๋ฏธ๋์์):
$ps = if (Get-Command pwsh -EA SilentlyContinue) { 'pwsh' } else { 'powershell' }; & $ps -ExecutionPolicy Bypass -File <skill-dir>\openstack-profile.ps1 add <name>
- ํ์ด๋ธ๋ฆฌ๋: ํ๊ฒฝ๋ณ์๋ฅผ ๋ฏธ๋ฆฌ ์ธํ
ํ ํ๋๋ ํ๋กฌํํธ๋ฅผ ๊ฑด๋๋ด๋ค(์๋ํ์ฉ). ์)
BASE_URL=... OS_AUTH_URL=... OS_APP_CRED_ID=... OS_APP_CRED_SECRET=... bash <skill-dir>/openstack-profile.sh add <name>.
- ๊ธฐ์กด ๊ธฐ๋ฐ ์ถ๊ฐ:
FROM=<๊ธฐ์กด> bash <skill-dir>/openstack-profile.sh add <new> โ ์์๋ ๊ฐ์ ํ๋กฌํํธ์์ ์๋ ์๋ต, ๋ฐ๊ฟ ๊ฒ๋ง ์
๋ ฅ.
- ์ ํ
switch <name>: bash <skill-dir>/openstack-profile.sh switch <name>. ๋๋๋ฉด ์ฌ์ฉ์์๊ฒ
claude --continue(์ต๊ทผ ๋ํ ์ด์ด์) ๋๋ claude --resume(์ธ์
์ ํ)๋ก ์ฌ์์ ํ๋ผ๊ณ ์๋ด โ
๋ํ ์ ์งํ๋ฉฐ ์ MCP ๋ฑ๋ก๋ง ์ ์ฉ(๊ทธ๋ฅ ์ฌ์์ํ๋ฉด ๋ํ๊ฐ ์ฌ๋ผ์ง). "์ง๊ธ ์ด๋ ํ๋กํ/ํ๋ก์ ํธ๋"๋ whoami๋ก๋ ํ์ธ.
- ์ญ์
remove <name>.
์ฃผ์
- ํ๋กํ์ ํ๋ฌธ creds โ ์ฌ์ฉ์ ํ(
$OPENSTACK_PROFILE_DIR ๋๋ OS ๊ธฐ๋ณธ)์๋ง. ๋น๋ฐ๋ฒํธ/์ํฌ๋ฆฟ ํ๋ฉด ์ถ๋ ฅ ๊ธ์ง.
- ํ๋กํ์ OS-๋ก์ปฌ โ Windows์ Unix ๊ฐ ๋ณต์ฌํด ์ฐ์ง ๋ง ๊ฒ(์์ฑํ OS์์๋ง ์ฌ์ฉ).