本記事でAzureBatchの作成からAzureDevOpsでCI/CDの構築手順を紹介したいと思います。他に良い方法があればご指摘をお願い致します。ジョブを実行が可能なサービス。実行するアプリケーションをAzureStorageにアップロードしてノードにインストールをして、ノードで実行するジョブ定義してタスクを実行する流れになります。前準備まずは、CI/CDパイプラインを構築する前にAzureBatchの環境と5分毎に稼働しデプロイされている環境をログに出力するアプリを作成します。アプリの構築手順AzureBatchで稼働するアプリケーションの作成コンソールアプリ(.NETFramework)でバージョン.NETFramework,Version=v4.7.2で作成を行います。対象のファイルを以下のように変更してください。</configuration>ローカルの実行結果がコンソールに以下のように表示されれば完了です。成果物の作成ビルドを行いAzureBatchにアップロードする成果物を作成します。内の成果物をZip化します。Shellに下記コマンドを張り付けて、Batchアカウントとストレージアカウントを作成します。$ResourceGroupアプリケーションのアップロード下記手順に従い、AzureBatchで稼働させるアプリケーションをアップロードします。Shellに下記コマンドを張り付けて、プールとスケジュールされたジョブを作成します。実現すること前準備では、AzureBatchにリリースする前にbin/Release内のAzureBatchDemoApp.exe.configを書き替えましたが、やはり手動で本番情報に書き換えることや本番環境の設定ファイルで上書きするのは、ヒューマンエラーの原因となります。それに、ビルドした後に書き換えるのは意味がありません。そのため、デプロイしたい環境の設定ファイルでビルドを行い、成果物をZip化するまでを自動化したいと思います。Pipelinesの完成形は下記となります。Filesを使います。FilesではRBACの設定が可能となっています。本番用アプリケーション設定ファイルとして下記内容のものを用意します。</configuration>作成したファイルをアップロードします。以下のようにアップロードしたファイルを指定することで簡単にパイプラインで利用することができます。実行結果このような実行結果になれば完了です。Pipelinesで作成した成果物をアプリケーションパッケージにアップロードして適用するまでを自動化します。loginを行ってから操作を行う必要となります。そのため、今回はサービスプリンシバルを使ってログインを行いました。Scheduleデプロイを行う前に、5分毎に稼働しているスケジュールを停止します。Pipelinesで作成した成果物をアップロードします。Rebootアップロードしたアプリをノードに適用するには、再起動が必要になります。パッケージをノードにデプロイする必要があります。taskcompletionを設定することで、実行中のタスクが完了したタイミングでノードの再起動を行うことができます。rebootスクリプトは、ノードがアイドル状態になるまでポーリングして実行され、以下のように現在のノードの状態を表示します。Schedule)ノードがアイドル状態になったら停止していたスケジュールを起動します。実行結果このような実行結果になれば完了です。AzureとAzureDevOps周りをよく触っています。upLoginユーザーは見つかりませんでした。