Как выполнять команды в IDE терминала на основе браузера из руководства Markdown или инструкции

Я собираюсь сделать крутой проект, такой как Killercoda, для детской учебной группы, где я открываю виртуальные машины через доступ к браузеру, используя доступ к терминалу, такой как IDE для кода-сервера или theia IDE (который использует killercoda). Я могу развернуть VMS с помощью модулей Kubernetes и предоставить доступ к ним через входной ресурс.

Однако то, что я не могу реализовать или понять, - это то, как killercoda или katacoda(теперь устаревшая) имеют инструкции в левой части браузера для выполнения команд при доступе к терминалу (как показано на прикрепленном рисунке).

Самое близкое, что я мог получить, этоmarkdownконфигурация того, откуда поступают инструкции, например, ниже:

      ### Single line code blocks can be copied by default
`copy me`

### It can also be disabled
`copying disabled`{{}}

### Execute a command per click
`ls -lh`{{exec}}

### Send Ctrl+c before execute
Run a blocking command:
`sleep 1d`{{exec}}

End it and run another:
`whoami`{{exec interrupt}}

Как дела{{ exec }}заполнители команд передаются в сеанс терминала и выполняются.

Также естьindex.jsonо шагах по запуску/выполнению из руководства по эксплуатации, а затем о куче.mdфайлы в каталоге. Приведенный пример:

      {
  "title": "Lab 1",
  "description": "Everything Linux",
  "details": {
    "intro": {
      "text": "intro.md"
    },
    "steps": [
      {
        "text": "step1.md"
      },
      {
        "text": "step2.md"
      },
      {
        "text": "step3.md"
      }
    ],
    "finish": {
      "text": "finish.md"
    }
  },
  "backend": {
    "imageid": "ubuntu"
  }
}

Мне просто нужно руководство, такое какtoolsилиframeworksилиresourcesилиtemplatesилиlanguagesо том, как это работает (выполнять команды из инструкций терминальной сессии). Я знаю, что проект в некоторой степени с открытым исходным кодом, поэтому я думаю, что там есть поддержка.

Мои текущие инструменты проекта:

  • Фреймворк Django Rest (API)
  • Вуэйс (интерфейс)

1 ответ

Это невозможно. Все этоKillercodaиKatacodaмы используем vagrant для создания виртуальной машины, а затем делаем вызов API для отдыха изREADMEфайл на виртуальную машину. Я не думаю, что это возможно с модулем k8s.

Другие вопросы по тегам