HowTo 2026

2026 OpenClaw MeshMac — практика на общем узле: отдельные каталоги конфигурации, логи по проекту и минимальные права токенов

2026.03.30 Команда Meshmac 9 минут чтения

Команды, которые запускают OpenClaw на одном MeshMac для нескольких продуктов, чаще ломаются из‑за общего корня конфигурации и перемешанных логов, чем из‑за CPU. Ниже — HowTo: POSIX на проект, том или подкаталог логов, узкие токены, LaunchDaemon, команды проверки и матрица симптомов. Связано: env по средам, секреты на узлах, OpenClaw в блоге.

Три типичных отказа на общем узле

  1. Перезапись чужого конфига. Два пайплайна деплоят в один путь; после ночного прогона «пропадают» webhook или лимиты очереди соседнего проекта потому что последний render затёр общий файл.
  2. Невозможность аудита. Смешанные логи без префикса проекта усложняют расследование и повышают риск утечки полей между командами.
  3. Избыточные токены. Один API‑ключ на весь кластер даёт право трогать чужие очереди и реестры; компрометация одной job раздувает blast radius на всех арендаторов узла.

Цель — зафиксировать границы ответственности в файловой системе и в IAM до того как вы масштабируете число параллельных воркеров на Mac.

Матрица: отдельный том логов или подкаталог

Выбор влияет на квоты резервное копирование и поведение при переполнении диска.

Критерий Отдельный том APFS Подкаталог на системном томе
Квоты и политика retention Проще квоты и отдельные политики бэкапа Нужны ротация логов и алерты по диску на корневом томе
Blast radius при runaway job Реже задевает системные сервисы Риск для системного тома при слабом мониторинге
Операционная сложность Чуть больше работы при первичной настройке Быстрее внедрить при дисциплине прав

Шаг 1 — стабильный слаг и POSIX‑группы

Задайте PROJECT_SLUG как в CI группу ocproj-${SLUG} и пользователя openclaw-${SLUG}. В группу — только нужные учётные записи.

sudo dseditgroup -o create ocproj-myapp
sudo sysadminctl -addUser openclaw-myapp -UID 5501 -shell /usr/bin/false
sudo dseditgroup -o edit -a openclaw-myapp -t user ocproj-myapp

Контрольная точка: id openclaw-myapp показывает группу ocproj-myapp.

Шаг 2 — каталог конфигурации только для проекта

Корень /etc/openclaw/projects/myapp с 0750 root:ocproj-myapp. В Git — шаблоны и ссылки на секреты не inline.

sudo mkdir -p /etc/openclaw/projects/myapp
sudo chown root:ocproj-myapp /etc/openclaw/projects/myapp
sudo chmod 0750 /etc/openclaw/projects/myapp
sudo install -o root -g ocproj-myapp -m 0440 ./rendered/openclaw.yaml /etc/openclaw/projects/myapp/openclaw.yaml

Контрольная точка: от имени сервиса sudo -u openclaw-myapp test -r /etc/openclaw/projects/myapp/openclaw.yaml завершается нулём чужой пользователь получает отказ.

Шаг 3 — корень логов на томе или в подпути

Каталог /var/log/openclaw/myapp владелец openclaw-myapp:ocproj-myapp при необходимости 2770. Отдельный том — смонтировать сюда и повторить chown.

sudo mkdir -p /var/log/openclaw/myapp
sudo chown openclaw-myapp:ocproj-myapp /var/log/openclaw/myapp
sudo chmod 2770 /var/log/openclaw/myapp

Настройте ротацию логов отдельно по префиксу проекта.

Шаг 4 — токены автоматизации с минимальной областью

Отдельные ключи на очередь webhook и read‑only к реестру файлы 0440 в .../secrets.d/projects/myapp.

Контрольная точка: таблица IAM или портал облака показывает что ключ не имеет прав на ресурсы другого PROJECT_SLUG.

Шаг 5 — переменные окружения LaunchDaemon

В plist задайте OPENCLAW_CONFIG_ROOT OPENCLAW_LOG_DIR и PROJECT_SLUG затем bootout/bootstrap label из runbook.

sudo launchctl bootout system /Library/LaunchDaemons/org.openclaw.worker.myapp.plist
sudo launchctl bootstrap system /Library/LaunchDaemons/org.openclaw.worker.myapp.plist

Контрольные точки и быстрые проверки

  • Права по цепочке: namei -l /etc/openclaw/projects/myapp/openclaw.yaml не должен показывать world‑readable на секреты.
  • Процесс видит те же пути: sudo -u openclaw-myapp launchctl print system/org.openclaw.worker.myapp или эквивалент для вашей обёртки.
  • Логи только своего префикса: выборочный tail и отсутствие строк с чужим slug в файлах проекта после смоук‑задачи.
  • Версия шаблона: Git SHA в метаданных деплоя для симметричного отката.

Разбор сбоев: симптом и действие

Симптом Вероятная причина Действие
Permission denied при старте воркера Неверный UserName в plist или группа не совпадает с каталогом Сверить chown chmod и членство dseditgroup
401 от webhook после выката Токен перепутан между проектами или путь к файлу секрета старый Проверить symlink и отдельный секрет на slug переротировать ключ
Логи пишутся в корень соседа Переиспользован общий plist или переменная окружения не обновилась Полный bootout bootstrap и поиск дубликатов label в /Library/LaunchDaemons

Краткий FAQ

Git и диск? На диске — render и ссылки секреты в vault с минимальными правами.

Несколько сред? Суффикс -staging на slug или overlay env без общих путей логов.

Следующие шаги

В runbook зафиксируйте slug группу пользователя каталоги и label проверяйте скриптом при приёмке. Главная помощь блог.

MeshMac × OpenClaw

Воспроизведите изоляцию конфигурации и логов на готовых узлах Mac

Per‑project пути упрощают совместную аренду узла. Главная помощь блог OpenClaw тарифы.

Арендовать Mac