CATEGORY インフラ(Azure)

DevOpsプロジェクトの作成

新規DevOpsプロジェクトの作成 Azure DevOpsプロジェクトの作成自体は簡単なのですが、権限周りで少し詰まったので、記録を残しておきます。 既にリソースグループが作成されているものとする 権限の設定 DevOps自体は、Azure Portal上にあるリソースグループの外側にあるため、権限の設定などは個別にする必要があります。 ユーザーごとの権限の設定 ユーザーごとの権限の設定は、サブスクリプションの所有者からしかできないため、この設定を最初に行います。 赤線部のOrganization Settingsから権限の設定画面へと移ります。 Usersのタブから、ユーザーごとに権限を設定することができます。 Access Levelについての公式ドキュメントはこちら リソースグループとDevOpsプロジェクトの接続 プロジェクト全体の設定は以下の赤線のタブから設定画面に移ることができます。 Azure PipelinesはAzure Repositoryのソースコードを直接WebAppsなどにデプロイする機能なのですが、そのままでは、DevOpsが単体で存在しているだけなので、最初にService Connectionsを追加します。 New Service Connectionボタンをクリックすると、以下のような画面が表示されます。 今回、必要なリソースは全て同じリソースグループにまとまっているため、「Azure Resource Manager」を選択します。 お勧めされているのでautomaticを選択 DevOpsを作成したアカウントが持っているサブスクリプション、権限を持っているリソースグループがドロップダウンに表示されます。 Saveすると、リソースグループへのService Connectionが新しく作成されます。

Azure PipelinesでBuidからDeployまで(node.js)

Azure Pipelinesを理解するにはとにかく色々とパイプに通すしかない! ということで、今回はnode.jsを通してみました。 業務にて、Docker imageをCIでプッシュする必要があったのですが、コンテナって何?って状態だったので、今回は実体のあるアプリケーションで、CI/CDを試してみました。 AzureのGUIは本当によくできていて、複雑なことをしようとしなければ、ほぼ直感で操作が出来るとチュートリアルをやりながら実感しました。 とはいえ、Azureを触る機会がない人に取っては、認知負荷がかなり大きいかと思うので、この記事を流し読みしてから、MSのチュートリアルをやってみるのもいいかもしれません。 それでは、やっていきます。 プログラムをローカルに持ってくる。

サンプルコードは、上記のリポジトリにあるので、取ってきましょう。 Azure DevOps 無料枠を使ってみた 例にならって、DevOpsにリポジトリをプッシュしておきます。 Azure Gitにリポジトリが作成されたら作業開始です。 Azure Gitのプログラムを Build する DevOpsでは、指定したブランチにコミットされるたびに、ビルドしてくれるAzure Pipelinesというツールがあるのですが、これを使ってみます。 コードのある場所(ここではAzure Git) コードのあるプロジェクト名 YAMLのテンプレート(種類が色々ありますが、それっぽいので大丈夫です。あとでいくらでも書き換えられます。) 最後に自動生成されたYAMLファイルをチェックして保存→実行しましょう。

生成されたファイルはこんな感じ。 上の塊から。 トリガー。ここではmasterブランチに変更がかかるたびにビルドが実行されるというトリガー ビルドを実行するための、クラウド上に存在するVM ビルド時にやりたい処理 コンソールに出力するログを出す 必要なnpmコマンドを実行してnodeの環境を整える こんな感じ、最初はYAMLファイルの書き方が分からなかったけど、結構適当でも大丈夫そう。大事なのは処理の順番。 変な空白とか入ってるとそれだけでエラーになるからそこだけ気をつけて、あとはトライ&エラーを繰り返すのみ。 ここのビルドはテンプレートのまんまで大体通ります。 Releaseしてみる こっからがCIへの第一歩。 デプロイを自動化していきます。 ここから先、GUIで操作するので操作に迷うことはほぼないと思うのですが、もし、作ったはずのリソースグループがドロップダウンに出てこない、サブスクリプションが表示されないとかの問題あれば、Service Connectionに原因があるかもしれません 公式ドキュメント 最初にRelease Pipelineを作成していきます。 Releaseのタブを選択し、Crateしたらまずステージングから設定していきます。 Deploy a node という選択肢があるのでこれを選んでみます。 左のArtifactも適当にBuildを選択し Create Releaseをしてみます。…

Azure Pipelineを使ってみた

今日は、Azure Pipelineに焦点を当てて記事を書いていきたいと思います。 まず、Azure Pipelinesが何かと言いますと公式ドキュメントにあるように Azure Pipelines is a cloud service that you can use to automatically build and test your code project and make it available to other users. It works with just about any language or project type. Azure Pipelines combines continuous integration (CI) and continuous delivery (CD) to constantly and consistently test and…

Docker で JupyterLab環境を構築してみた。

参考サイト Dockerfile, docker-compose.ymlの引用元 DockerでJupyterLabを構築する コンテナの外部からアクセスする方法 コンテナに外部からアクセス(ポートフォワード) はじめに JupyterLab環境をAzure上に用意して、どこからでもデータ分析できるようにしたら面白そうだなと思い、コンテナにJuyterLabを入れる検証を行いました。 コンテナ起動まで まず、Dockerfileとdocker-compose.ymlを用意します。

Dockerfile

DockerHubからjupyter/datascience-notebookをプルして、pipでJupyterlabを入れているだけ 次に、docker-compose.yml

フォルダマウントの参考サイト:Docker-docs-ja – Compose ファイル・リファレンス 80番ポートを開けておき、コンテナが起動した時に、jupyter labコマンドが入力されるように設定します。 これで全ての準備が整ったのでイメージを作成からコンテナ起動まで一気に行きます。

ここでコンソールに出てくるtokenというやつがJupyterLabにログインする時のパスワードになります。 127.0.0.1:80からアクセスできることが確認できました。 コンテナを止める時は以下のコマンドで

Azure pipeline – Build anaimage –

Docker周りの知識がまだまだ甘々なので、「英語のドキュメントを読んでみたシリーズ」の第一弾はデプロイ編とします。 原文 読了までの所要時間: 4 分 Azure Pipelines Azure Pipelines can be used to build images for any repository containing a Dockerfile. Building of both Linux and Windows containers is possible based on the agent platform used for the build. AzurePipelinesはDockerfileを含んだリポジトリのビルドを行うために利用することができます。 LinuxやWindowsコンテナのビルドは、agent platformによってのみ可能となる。 Get the code Fork the following repository containing a sample application and a Dockerfile:…

Azure PowerShellを導入してみた。

業務にて、Docker ContainerをAzure上にデプロイする必要があったのですが、Azure Powershellの存在を知ったのが今日だったこともあり、時間内に作業が終わらせられませんでした。 今日やろうとした作業:「チュートリアル:Azure Container Registry タスクを使用して、クラウドでコンテナー イメージをビルドしてデプロイする」 Azure Cloud Shellが使えれば楽勝なんだろうけど、権限の問題で使えなかった。仕方なくAzure PowerShellでやる方法も模索するも上手くいかず… エンジニアであるからにはコマンドラインから、クラウドを華麗に扱えるようになりたいですね!! ということで、今日はAzure PowerShellのドキュメントを読んでいこうと思います。 まずは、コマンドでAzure Power Shellを入れていきます。Macユーザーはお馴染みのbrewコマンドで、WindowsユーザーはChocolateyを使いましょう。

インストールを確認します。記事を書いている時のバージョンは6.2.3でした。

モジュールをインストール。 cross-plattformを目指すために、必要な機能をモジュールで提供しているみたいです。詳しくはDocumentへGo

赤線部のURLをブラウザで叩き、赤線部のコードを打ち込んで、Azure PowerShell経由でAzure Portalにログインすることができました。 MacやLinuxをよりもWindowsのPowerShellに慣れているという方は、Azure CLIではなくて、Azure PowerShellを使うのもアリかもしれません。 参考:YES YOU CAN! USE POWERSHELL IN MACOS TO CONNECT TO MICROSOFT AZURE 公式:Install the Azure PowerShell module

Azure DevOps 無料枠を使ってみた

Azuer DevOpsは五人までなら無料でプロジェクトを作成することができます。 今回は、Azure DevOpsを試しに使ってみました。 まず、Azure DevOpsで何ができるかというと プライベートリポジトリの作成・管理 CI / CD ツールを使ったビルド、デプロイ、テスト、の自動化(一個の並列ジョブまでなら無料) チーム内でのWikiの共有 Docker統合 といった、自分のような新参者から見ても、とても魅力的な機能が備わっています。 これが無料で試せるというヤバさですよ。 まだ試せていないのですが、他にも「Azure Test Plans」といったテストツールや「Azure Artifacts」といったパッケージ管理ツールがあることに加え、Marketplaceから拡張機能を追加することもできます。 それでは、簡単に、プロジェクト作成から、リポジトリの作成までの流れを見ていきましょう。 プライベートリポジトリの利用 Azure DevOpsのUIはとても見やすく、手順書とか必要ないんじゃないかという感じで、Azureを触ったことがないという人も、この記事を流し読みすれば、Azure Gitは雰囲気で使えるようになるんじゃないかと思います。 まず、URLからクローンするためにプライベートリポジトリーのURLをコピーします。一応、パブリックリポジトリも最初に選択できます。 SourceTreeでクローンすると、パスワードが求められるので、上図の「Generate Git Credential」からパスワードをコピーし、貼り付けます。 ローカルにクローンできたら、ローカルリポジトリに変更を加えてプッシュすると、リモートリポジトリに変更が反映されます。 これがあるだけで、チーム開発時のコードレビューがやりやすくなり、開発が楽しくなると思います。 次回は、、 業務で使うことになりそうなので、CI/CDツールの記事を描こうと思います。 Azure Pipelinesを使ってみた

Azure Functionチュートリアルをやってみた

.NET Core2.2でAzure Functionのプロジェクトを作成できるチュートリアルがあったのでやってみました。 Link:関数の作成 – C# (公式ドキュメント) Azure Functionはサーバーレスなサービスで、料金もあまりかからないところも魅力です。 Functionの価格設定は、毎月の関数の実行回数から算出されており、100万回アクセスまでは、無料(参考)となっているため、個人利用であればほぼ使い放題です。 今回は、このAzure Functionを試していきます。 プロジェクトの作成 選択するのはマーカーで印がつけられた部分 Function ランタイム :.NET Core2.2 関数テンプレート : HTTPトリガー → HTTP要求がトリガーとなって関数が呼ばれます。 ストレージアカウント : ストレージアカウントエミュレーター 承認レベル : Anonymous →Anonymousとすると、全てのクライアントからトリガーできます。チュートリアルのなので、とりあえずAnonymousとしました。 作成ボタンをクリックすると、プロジェクトが作成されます。 関数だけなので、かなりシンプルな構成ですね。

の部分が、関数名になります。 試しに「F5」キーを押して実行してみましょう。 Azure Function Core Toolsと呼ばれるコンソールが表示され、アプリケーションの動作が確認できます。 Visual Studioさん流石です コンソール画面の出力から、 赤線部のURLをコピーし、ブラウザーでの応答を確認します。 http://localhost:7071/api/Function1?name=debobonetとURLをたたいたら、Hello, debobonetという出力が返ってくることが確認できます。 これで、ローカル環境での開発は終わりです。簡単ですね Azureにデプロイ 次はAzureにプロジェクトを発行していきます。本来であれば、コマンドを叩いたりなどの操作が必要だったりすることが多いのですが、Visual Studioにはデプロイの機能も備わっています。 「ソリューションエクスプローラー」から、プロジェクトを右クリックし、「発行」を選択すると以下の画面へと遷移します。 Visual Studio Proのライセンスを持っていると、5000円分のAzureクレジットも付いてくるため、Visual Studio Professionalというサブスクリプションが選択できます。…