JetBrains Space ヘルプ

実行環境

Space Automation の実行環境は、ワーカーのコンセプトに基づいています。ワーカーは、Space Automation に接続し、ジョブとソースコードを取得し、ジョブを実行して、結果を Space にレポートする軽量エージェントです。ワーカーは、Space Automation Cloud の仮想マシン、独自のセルフホストマシン、および Docker コンテナーで実行できます。次の表は、考えられる実行環境をまとめたものです。

ステップタイプ

環境

説明

OS とリソース

host

Space クラウドワーカー

(オンプレミスの Space ではサポートされていません)

Space クラウドインフラストラクチャでホストされる仮想マシン。詳細

OS: リナックス。予定: macOS、Windows

デフォルト: 2 vCPU、7800 MB。

大: 4 vCPU、15600 MB。

特大: 8 vCPU、31200 MB ( フリープランでは利用できません)。

container

Space クラウドのコンテナー

Space クラウドワーカーで実行されている Docker コンテナー。詳細

OS: Linux のみ

デフォルト: 2 vCPU、7800 MB。

最大: 8 vCPU、31200 MB。

フリープランの最大値: 4 vCPU、15600 MB。

詳細

host

セルフホスト型ワーカー

自己ホスト型のハードウェアまたは仮想マシン。詳細

OS: Linux、macOS、Windows

ホストマシンの利用可能なすべてのリソース

container

セルフホスト型ワーカーのコンテナー

セルフホスト型ハードウェアまたは仮想マシン上で実行される Docker コンテナー。詳細

OS: Linux のみ

ホストマシン上のコンテナーに割り当てられたすべてのリソース

ジョブの実行環境を選択する

ジョブが最終的に実行される環境は、以下によって決まります。

特定の環境でジョブを実行する方法をより深く理解するには、サンプルを参照してください。

デフォルトのワーカープール

ジョブを実行するためのデフォルトのプールは、組織レベルおよびプロジェクトレベルでデフォルトのワーカープールパラメーターによって定義されます。プロジェクトレベルのパラメーターは、組織レベルのパラメーターよりも優先されます。

組織のデフォルトのワーカープールを変更するには

  1. メインメニューで、 administration.png 管理をクリックし、自動化を選択します。

  2. デフォルトのワーカープールパラメーターを設定します。

    • Space オートメーションクラウド – クラウドワーカーを使用します。

    • セルフホスト型ワーカー – セルフホスト型ワーカーを使用します。

    Default worker pool

プロジェクトのデフォルトのワーカープールを変更するには

  1. プロジェクトを開いて、ジョブページを開きます。

  2. 設定をクリックします。

  3. デフォルトのワーカープールパラメーターを設定します: Space オートメーションクラウドまたはセルフホスト型ワーカー

職務要件

// the job will run on regular instance in the Space Cloud pool // regardless of the 'Default worker pool' value job("Example") { // worker requirements requirements { // workerPool = WorkerPools.SPACE_CLOUD // not necessary if workerType is specified workerType = WorkerTypes.SPACE_CLOUD_UBUNTU_LTS_REGULAR } host("Run script") { shellScript { content = "echo Hello World!" } } }

job.requirements ブロックは、次のパラメーターに基づいて、実行環境に対する要件をより具体的にします。

ワーカープール

job.requirements.workerPool : 指定した場合、デフォルトのワーカープール値をオーバーライドします。可能な値:

  • Space Automation Cloud の WorkerPools.SPACE_CLOUD または "space-cloud"

  • セルフホスト型ワーカーの場合は WorkerPools.SELF_HOSTED または "self-hosted.default"

ワーカータイプ

job.requirements.workerType : ワーカーインスタンスを指定します。現在、このパラメーターは、Space Automation Cloud でワーカーインスタンス型を指定する場合にのみ使用できます。

  • WorkerTypes.SPACE_CLOUD_UBUNTU_LTS_REGULAR または "space-cloud.ubuntu-lts.regular" (デフォルト)

  • WorkerTypes.SPACE_CLOUD_UBUNTU_LTS_LARGE または "space-cloud.ubuntu-lts.large"

  • WorkerTypes.SPACE_CLOUD_UBUNTU_LTS_XLARGE または "space-cloud.ubuntu-lts.xlarge"

リソース

job.requirements.resources : ワーカープールに応じて、Space は指定されたリソース要件 ( minCpu および minMemory) を満たすクラウドワーカーまたはセルフホスト型ワーカーインスタンスのいずれかを選択します。 host レベルで resources も指定すると、Space はより高いリソース要件に基づいて適切なワーカーを検索することに注意してください。例:

// this job will run on a worker // that has at least 2.cpu and 4000.mb job("Example") { requirements { resources { minCpu = 1.cpu minMemory = 2000.mb } } // the container will be limited to 1.cpu and 2000.mb container(displayName = "Say Hello", image = "hello-world") host("Say Hello 2") { shellScript { content = "echo Hello World!" } // these requirements override job's requirements // as they are higher requirements { resources { minCpu = 2.cpu minMemory = 4000.mb } } } }

Space オンプレミスで環境を実行する

さまざまな実行環境のサポートは、オンプレミスの Space インストールタイプによって異なります。

  • Docker Compose のインストール :

    • セルフホスト型ワーカー – フルサポート。

    • クラウドワーカー – サポートされていません。

  • Kubernetes のインストール :

    • セルフホスト型ワーカー – フルサポート。

    • クラウドワーカー – Kubernetes はコンテナー内でのみワークロードを実行することを意味するため、オートメーションがクラウド内でジョブを実行するように構成されている場合 (例: Space オートメーションクラウドジョブ設定で選択されているか、job.requirementsworkerPool = WorkerPools.SPACE_CLOUD がある) は動作が異なります。この場合、ジョブで host ブロックが使用されている場合でも、オートメーションはそれを Docker コンテナーで実行します。

      1. job.requirements.workerType での指定に関係なく、コンテナーには 2 つの vCPU と 7800 MB のメモリが搭載されています。

      2. コンテナーイメージは Alpine Linux に基づいており、Docker および Docker Compose のサポートを提供します。

サンプル

以下に、さまざまな環境でジョブを実行する方法の例を示します。

// regular cloud worker with ubuntu lts // Set 'Default worker pool' to 'Space Automation Cloud' job("Example") { host { // ... } }
// large cloud worker with ubuntu lts // Set 'Default worker pool' to 'Space Automation Cloud' job("Example") { requirements { resources { minCpu = 4.cpu minMemory = 4000.mb } } host { // ... } }
// regular cloud worker with ubuntu lts // 'Default worker pool' is ignored job("Example") { requirements { // use the Space Automation cloud pool workerPool = WorkerPools.SPACE_CLOUD } host { // ... } }
// large cloud worker with ubuntu lts // 'Default worker pool' is ignored job("Example") { requirements { workerType = WorkerTypes.SPACE_CLOUD_UBUNTU_LTS_LARGE } host { // ... } }
// container in a regular cloud worker // Set 'Default worker pool' to 'Space Automation Cloud' job("Example") { container(image = "amazoncorretto:17-alpine") { // ... } }
// container in a large cloud worker // Set 'Default worker pool' to 'Space Automation Cloud' job("Example") { requirements { resources { minCpu = 4.cpu minMemory = 4000.mb } } container(image = "amazoncorretto:17-alpine") { // ... } }
// container in a regular cloud worker // 'Default worker pool' is ignored job("Example") { requirements { // use the Space Automation cloud pool workerPool = WorkerPools.SPACE_CLOUD } container(image = "amazoncorretto:17-alpine") { // ... } }
// container in a large cloud worker // 'Default worker pool' is ignored job("Example") { requirements { workerType = WorkerTypes.SPACE_CLOUD_UBUNTU_LTS_LARGE } container(image = "amazoncorretto:17-alpine") { // ... } }
// any suitable self-hosted worker // Set 'Default worker pool' to 'Self-Hosted Workers' job("Example") { host { // ... } }
// any suitable self-hosted worker // 'Default worker pool' is ignored job("Example") { requirements { workerPool = WorkerPools.SELF_HOSTED } host { // ... } }
// a self-hosted worker with Tag1 // 'Default worker pool' is ignored job("Example") { host { // ... requirements { workerTags("Tag1") } } }
// a self-hosted worker with // at least 4cpu and 4000mb // 'Default worker pool' is ignored job("Example") { requirements { resources { minCpu = 4.cpu minMemory = 4000.mb } } host { // ... } }
// a self-hosted worker with // at least 4cpu and 4000mb // 'Default worker pool' is ignored job("Example") { host { // ... requirements { resources { minCpu = 4.cpu minMemory = 4000.mb } } } }
// any suitable self-hosted worker // with Linux, Docker, and Docker Compose // Set 'Default worker pool' to 'Self-Hosted Workers' job("Example") { container(image = "amazoncorretto:17-alpine") { // ... } }
// any suitable self-hosted worker // with Linux, Docker, and Docker Compose // 'Default worker pool' is ignored job("Example") { requirements { workerPool = WorkerPools.SELF_HOSTED } container(image = "amazoncorretto:17-alpine") { // ... } }
// a self-hosted worker with Tag1 // 'Default worker pool' is ignored job("Example") { container(image = "amazoncorretto:17-alpine") { // ... requirements { workerTags("Tag1") } } }
// a self-hosted worker with // at least 4cpu and 4000mb // 'Default worker pool' is ignored job("Example") { requirements { resources { minCpu = 4.cpu minMemory = 4000.mb } } container(image = "amazoncorretto:17-alpine") { // ... } }
// a self-hosted worker with // at least 4cpu and 4000mb // 'Default worker pool' is ignored job("Example") { container(image = "amazoncorretto:17-alpine") { // ... requirements { resources { minCpu = 4.cpu minMemory = 4000.mb } } } }
// Everything works as in Space Cloud except when // the job is configured to run on the Space Automation cloud pool. // The job below will run in a "regular" container on a Kubernetes worker. job("Example") { requirements { workerPool = WorkerPools.SPACE_CLOUD } host { // ... } }

関連ページ:

Space クラウドワーカー

Space クラウドワーカーは、Space クラウドでホストされる仮想マシンです。各マシンは、セルフホスト型ワーカーに使用されるものと同じワーカーエージェントを実行します。クラウドワーカーを使用する主な理由の 1 つは、システムへの全体アクセスが必要であり、Docker コンテナーでは不可能な CI/CD タスクです。例: Docker と Docker Compose を制限なしで実行します。どのように機能するのか:Space Cloud ワーカーは、セルフホスト型ワーカーと同じワーカーエー...

セルフホスト型ワーカー

セルフホスト型ワーカーは、Windows、Linux、macOS 上の独自のマシンで実行できる軽量エージェントです。セルフホスト型ワーカーは Space Automation に接続し、ジョブとプロジェクトのソースコードを取得してジョブを実行し、結果を Space にレポートします。セルフホスト型ワーカーを使用すると、コンテナーでは不可能な CI/CD ワークフローを実行できます。例:Windows 上で完全な .NET フレームワークアプリケーションを構築します。特定のハードウェアを使用する...

Docker Compose のインストール

Kubernetes クラスターの代わりに、Docker Compose で構成された多数の Docker コンテナーで Space On-Premises インスタンスを実行できます。次の 2 つの場合には、Docker Compose のインストールをお勧めします。Space を運用環境で使用する前に、Space をテストして慣れることができる概念実証のインストール。アクティブな Space ユーザーが少ない小規模企業向けの実稼働環境。推奨されるインストール手順:Docker Compos...

Kubernetes のインストール

Space On-Premises の Kubernetes インストールは、より大きなワークロードの処理に適したスケーラブルなソリューションを提供します。クラスター自体は、独自の環境、Amazon Elastic Kubernetes Service、Google Kubernetes Engine、または Kubernetes をサポートするその他のクラウドサービスで実行できます。サポートされる Kubernetes の最小バージョンは 1.21 です。概要:ユーザーは、モバイルアプリ、W...