원클릭으로
jstorcli-yatc-jetice-ops
// Use when operating jstorcli with yatc and jetice/jetlake workflows, especially for VM lifecycle, image prep, deployment checks, and command lookup without hardcoded paths.
// Use when operating jstorcli with yatc and jetice/jetlake workflows, especially for VM lifecycle, image prep, deployment checks, and command lookup without hardcoded paths.
Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies
Use when the user explicitly wants multiple Codex agents or a virtual team, the work can be decomposed into safe parallel roles, and tgtool should coordinate a Ruflo-backed orchestration path.
Use when the user wants the agent to choose, combine, and actively use the best available local skills for a task.
Rebuild and run the local bucketmanager final image, then execute the current S3Control bitmap-based end-to-end workflow for minimal validation or 300MB memory-peak tests. Use when testing local multi-s3gw S3Control parent/child jobs in this repository.
Use claude-mem from Codex via a Codex-specific wrapper, MCP registration, and ~/.codex-backed data paths.
Build, debug, and review Linux FUSE filesystems with the official libfuse userspace library. Use when implementing a FUSE filesystem, choosing between libfuse high-level vs low-level APIs, wiring callbacks, building with fuse3/pkg-config, mounting for local testing, or troubleshooting fusermount3 and permission issues.
| name | jstorcli-yatc-jetice-ops |
| description | Use when operating jstorcli with yatc and jetice/jetlake workflows, especially for VM lifecycle, image prep, deployment checks, and command lookup without hardcoded paths. |
This skill is the first command reference for deployment and validation work involving jstorcli, yatc, jetice-env, and JetLake planes/profiles.
Use dynamic path discovery first. Do not hardcode project directories.
# Project root (prefer current repo root)
export YATC_ROOT="${YATC_ROOT:-$(git rev-parse --show-toplevel 2>/dev/null || pwd)}"
# Compose directory (first compose.yaml under repo, override when needed)
export YATC_COMPOSE_DIR="${YATC_COMPOSE_DIR:-$(find "$YATC_ROOT" -maxdepth 3 -type f -name compose.yaml -print -quit | xargs -r dirname)}"
# jstorcli source root (contains src/jstorcli/__main__.py)
export JSTORCLI_ROOT="${JSTORCLI_ROOT:-$(find "$YATC_ROOT" -type f -path '*/jstorcli/src/jstorcli/__main__.py' -print -quit | sed 's#/src/jstorcli/__main__.py##')}"
export JSTORCLI_SRC="${JSTORCLI_SRC:-$JSTORCLI_ROOT/src}"
# Optional image URL input for local mirror/download
export YATC_IMAGE_URL="${YATC_IMAGE_URL:-http://factory.jetio.net/artifactory/packer-os-images/jetice/ubuntu/ubuntu-22.04.5-jetice-uefi-2507.2-2-amd64-20250724.qcow2}"
# 1) Build latest wheel
cd "$YATC_ROOT"
uv build
# 2) Install latest wheel to system python
sudo uv pip install --system "$(ls -t dist/*.whl | head -n 1)"
# 3) Register local images manifest (edit images.yaml path first)
sudo yatc images register -m "$YATC_ROOT/images.yaml"
# 4) Pull configured image name from images.yaml
sudo yatc pull ubuntu-22045-jetice
# 5) Start compose VM group
sudo yatc compose up --provider qemu --dir "$YATC_COMPOSE_DIR"
# 6) Check VM/IP
sudo yatc ps
# 7) Stop and remove compose resources when done
sudo yatc compose down --provider qemu --dir "$YATC_COMPOSE_DIR"
sudo yatc compose rm --dir "$YATC_COMPOSE_DIR"
Source of truth:
src/jstorcli/__main__.pyTop-level multiplexer:
jstorcli drbd (drbd-cli, drbd_cli)jstorcli lvm (lvm-pool, lvm_pool for legacy)jstorcli jetlakejstorcli hagroupjstorcli zfsjstorcli bash-completion (bash-completetion alias exists in code)statusprepareprocessdeleteadjustprimarysecondaryGroup pool:
discoverdefinecreatedeletelistshowGroup lv:
createresizedeleterenamesnapshotrestorerollbackLegacy lvm-pool also exposes:
discover, define, create, delete, list, showlv-create, lv-resize, lv-delete, lv-renamelv-snapshot, lv-restore, lv-rollbackGroup profile:
definevalidatecreatedestroyundefGroup plane:
definecreatedestroylistundefdefineupdatecreategetlistdeleteresolveGroup pool:
listinfocreatedeleteGroup volume:
listcreateresizedeleterenameGroup snapshot:
createdeleteclonerollbackGroup profile:
definelistshowvalidateapplyinitAlso:
sendreceivejetice-env command family:
checkpullconfigreconfinitcomposeprepverifydeploystateremoveCommon VM validation:
cloud-init status
cd /opt/jetice-vtl
./jetice_s3gw_acceptance jetice s3gw http://0.0.0.0:9000
# Host key cleanup when VM IP changes
ssh-keygen -f ~/.ssh/known_hosts -R "192.168.122.2"
# Last-resort cleanup (destructive)
sudo rm -rf /opt/yatc/compute
When jstorcli changes, refresh this skill in the same commit:
src/jstorcli/__main__.pysrc/jstorcli/*_cli.pycd "$JSTORCLI_ROOT"
export PYTHONPATH="$JSTORCLI_SRC"
python3 -m jstorcli --help
python3 -m jstorcli.drbd_cli --help
python3 -m jstorcli.lvm_cli --help
python3 -m jstorcli.lvm_pool_cli --help
python3 -m jstorcli.jetlake_cli --help
python3 -m jstorcli.hagroup_cli --help
python3 -m jstorcli.zfs_cli --help
YATC_ROOT, YATC_COMPOSE_DIR, JSTORCLI_ROOT) and avoid fixed absolute paths.