Azure Batch開始タスクを使用して Linux に .NET Core をインストールする

この記事では、Azure Batch開始タスクを使用して Linux に .NET Core をインストールする方法について説明します。

元の製品バージョン: Cloud Services (Web ロール/Worker ロール)
元の KB 番号: 4466812

プロシージャ

Linux 環境に .NET Core をインストールするには、次の手順に従います。

  1. .NET チュートリアルに移動して、 という名前ex- dotnetcoreinstall.shのシェル スクリプトを作成します。

    注:

    このリンクは、Ubuntu バージョン 16.04 で有効です。 スクリプトは、.NET Core をインストールする Linux ディストリビューションに応じて変更できます。 必要な Linux ディストリビューションを選択し、それに応じてスクリプトを作成します。

  2. 開始タスクが Linux VM にダウンロードされるストレージ アカウントにスクリプト dotnetcoreinstall.sh をアップロードします。

  3. 必要な Linux VM ディストリビューションで構成される Batch プールを作成し、次のように開始タスクを編集します。 Batch エクスプローラー (旧称BatchLabs) ツールを使用して、シナリオをシミュレートします。 ポータルからプールが作成された場合も同じことが当てはまります。

    Blob source:https://batchpratyaystorage.blob.core.windows.net/batchcontainer/dotnetcoreinstall.sh

    これは、BLOB の実際の URL (スクリプトなど) を表します。

    File path: /mnt/batch/tasks/startup/wd

    これは、スクリプトがストレージ アカウントからダウンロードされる Linux 仮想マシン上のローカル パスを表します。

    Azure Batch開始タスクの詳細を示すスクリーンショット。

手順のトラブルシューティング

上記の手順は、Linux 環境でスクリプトを作成するときに想定どおりに動作します。 ただし、これらの手順は失敗し、Windows 環境でスクリプトを作成してストレージ アカウントにアップロードすると、次のエラー メッセージが表示されます。

(--install):processing archive packages-microsoft-prod.deb
cannot access archive: No such file or directory
Errors were encountered while processing:
packages-microsoft-prod.deb
] is not understood in combination with the other options.
] is not understood in combination with the other options.
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package dotnet-sdk-2.1.200
E: Couldn't find any package by glob 'dotnet-sdk-2.1.200'
E: Couldn't find any package by regex 'dotnet-sdk-2.1.200'

この動作は、異なる環境 (Windows または Linux) のスクリプトが異なる形式で作成されるために発生します。 形式を確認するには、Linux bash シェルで file コマンドを実行します。 UNIX システムでは、1 文字、ラインフィード文字を使用し、Windows システムでは復帰と改行 (CRLF と呼ばれる) の両方を使用してテキスト ファイル内の行を終了します。

行終端記号の詳細については、Network World Web サイトの 「Windows と UNIX: これらの厄介な回線終端記号」トピック を参照してください。

スクリプトの例

$ file dotnetcoreinstall.sh //// Script created in Windows and uploaded to storage account
dotnetcoreinstall.sh: ASCII text, with CRLF line terminators
$ file dotnetcoreinstall.sh //// Script created in Linux and uploaded to storage account
dotnetcoreinstall.sh: ASCII text

ファイル形式の不一致を防ぐには、次のいずれかの操作を行います。

  • 別の Ubuntu 環境でスクリプトを作成し、Storage Explorer for Linux を使用してストレージ エクスプローラーにスクリプトをアップロードします。

  • Linux 環境にStorage Explorerがない場合は、次の Putty コマンドを使用して、前の手順で作成した VM から Windows 環境にスクリプトを取得します。 Putty ツールには、実行可能 ファイルpscp.exeが含まれています。

    Putty コマンドのスクリーンショット。

Linux から Windows にファイルを送信した後、そのままストレージ アカウントにファイルをアップロードします。 Windows (DOS) から UNIX 形式にファイルを変換するプロセスを自動化するには、次のコマンドを実行します。

dos2unix dotnetcoreinstall.sh

このコマンドを実行するには、まず dos2unix パッケージをインストールする必要があります。 このためには、次のコマンドを実行します。

sudo apt-get install dos2unix

お問い合わせはこちらから

質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。

サードパーティの情報に関する免責事項

この資料に記載されているサードパーティ製品は、マイクロソフトと関連のない他社の製品です。 明示的か黙示的かにかかわらず、これらの製品のパフォーマンスや信頼性についてマイクロソフトはいかなる責任も負わないものとします。

サードパーティのお問い合わせ窓口に関する免責事項

Microsoft では、このトピックに関する追加情報を見つけるのに役立つサード パーティの連絡先情報を提供しています。 将来予告なしに変更されることがあります。 Microsoft は、第三者の連絡先情報の正確性を保証しません。