обновление bootstrap.sh
Browse files- bootstrap.sh +16 -0
bootstrap.sh
CHANGED
|
@@ -19,6 +19,22 @@ echo "=== bootstrap $(date -Is) ==="
|
|
| 19 |
# другой, поэтому связываем, чтобы ручные команды работали как на проде.
|
| 20 |
[ -e /workspace ] || ln -s /root /workspace
|
| 21 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 22 |
# Обновляем agent.py перед каждым запуском, а не один раз при загрузке:
|
| 23 |
# иначе `vllm-node restart` поднимал бы ту же версию, что и час назад,
|
| 24 |
# и выкатить исправление на живую ноду было бы нечем.
|
|
|
|
| 19 |
# другой, поэтому связываем, чтобы ручные команды работали как на проде.
|
| 20 |
[ -e /workspace ] || ln -s /root /workspace
|
| 21 |
|
| 22 |
+
# Переменные из `docker -e` достаются только процессу, которого Vast запустил
|
| 23 |
+
# при старте контейнера. Если поднять bootstrap руками из ssh, их не будет, и
|
| 24 |
+
# нода молча не зарегистрируется (менеджер ответит 403). Берём их у init.
|
| 25 |
+
if [ -z "${MANAGER_API_KEY:-}" ] && [ -r /proc/1/environ ]; then
|
| 26 |
+
while IFS= read -r -d '' kv; do
|
| 27 |
+
case "$kv" in
|
| 28 |
+
MODEL_ID=*|SERVED_MODEL_NAME=*|WEIGHTS_GIB=*|VLLM_API_KEY=*|HF_TOKEN=*|\
|
| 29 |
+
MANAGER_URL=*|MANAGER_API_KEY=*|NODE_POOLS=*|GPU_LAYOUT=*|PORTS=*|\
|
| 30 |
+
TENSOR_PARALLEL_SIZE=*|MAX_MODEL_LEN=*|MAX_NUM_SEQS=*|REGISTER=*|\
|
| 31 |
+
GPU_MEMORY_UTILIZATION=*|KV_CACHE_DTYPE=*|AGENT_URL=*|VLLM_EXTRA_ARGS=*)
|
| 32 |
+
export "$kv" ;;
|
| 33 |
+
esac
|
| 34 |
+
done </proc/1/environ
|
| 35 |
+
echo "переменные подхвачены у init-процесса контейнера"
|
| 36 |
+
fi
|
| 37 |
+
|
| 38 |
# Обновляем agent.py перед каждым запуском, а не один раз при загрузке:
|
| 39 |
# иначе `vllm-node restart` поднимал бы ту же версию, что и час назад,
|
| 40 |
# и выкатить исправление на живую ноду было бы нечем.
|