AnsibleでWindows VMの構成

今日は先日作ったTerraformファイルで作成したAzure上のVMに対して、先日作成したAnsibleが動作するコンテナ上でAnsibleのPlaybookを書いて、VMを構成してました。 - ドメインコントローラーに昇格(新規フォレスト作成) - 必要に応じて再起動 - StandAloneRootCAに構成 - 必要に応じて再起動 - サブジェクトの別名を利用可能に構成 - Azure Stackに必要な証明書のためのCSRを作成 というところまで自動化しました。 変な所で色々とハマりましたが、結局目的のところまではできたので良かったです。VMをAzure上にイチから作成するところから含めて全部やり直しても構築時間で15分もかからない感じに収まってます。 他にもDocker for WindowsをつかってLinuxコンテナを利用したり、実PCのファイルシステムをマウントしたり、Dockerfileを使ってのビルドをローカルPCとGitHub連携したDockerHub上でおこなったりというところもずいぶん慣れました。 ansibleでPSCredentialを渡す所でxxxx_username, xxxxx_passwordという形で表記しておけばよいだけとマニュアル上で読んだのですが、実はxxxxの部分に使う文字列によって挙動が異なるように見える部分があってかなり時間を無駄に消費しました。一部スペルミスもあったりなどもあり。よくわからないエラーが出たときには一度クリーンなところまで戻ってから文字をコピペせずに慎重に打ち直そう…と思ったのでした。 ansibleからPoweShellDSCを利用する部分も理解しましたし、昨日、今日で結構Terrafrom + ansible(+ PowerShell DSC)の組み合わせには慣れた気がします。 というわけで今日の成果はこちら。 - [https://github.com/ebibibi/hccjp/tree/master/VMConfigure](https://github.com/ebibibi/hccjp/tree/master/VMConfigure) 明日と明後日は贅沢に丸々2日間Puppetのトレーニングです!楽しみです。

July 18, 2018 · 1 min · 胡田昌彦

このサイトの構造について(Web App for Containers)

このサイトはWordpressで構築されています。Azure上のサービスであるWeb App for ContainersにDocker Hub上の「wordpress」コンテナイメージを元にカスタマイズしたコンテナイメージを展開して動作させています。 Web App for Containersは本記事執筆時点の2018年3月現在では相対的に新しいサービスであり、これを使ったWordpressサイトの構築手法に関してはまだあまり情報がなかったため、備忘録も兼ねて構造を書き残しておきます。 全体像 下図がシステムの全体像です。 実行環境は全てAzure上にあり、1つのリソースグループに格納されています。 App Service on Linuxにより環境が定義され、その上でWeb App for Containerが可動しています。 Wordpressはコンテナ上で実行されています。 データベースとしてはAzure Database for MySQLを利用しています。 App Serviceドメインにて独自のドメイン(ebisuda.net)を取得、割当しており、DNSもAzure DNSを利用しています。 Web App for Containersに展開するコンテナイメージはDocker Hub上のカスタムイメージとして公開されています。 https://hub.docker.com/r/ebibibi/appservice-wordpress/ Web App for Containerにてこのコンテナイメージを利用するように設定を行っています。 Docker Hub上のこのコンテナイメージは、Git Hub上のレポジトリがソースに指定されています。 具体的には下記のレポジトリがソースです。 https://github.com/ebibibi/appservice-wordpress このレポジトリ内にDockerfileが記載されており、このDockerfileの記載内容に従ってコンテナイメージがビルドされます。 このGitHub上のレポジトリを手元のPCにクローンしVSCodeにて編集している状況です。 コンテナイメージ更新の流れ なにか設定を変更したい場合には手元のVSCodeにてDockerfileを編集することであとは全自動でWeb App for Containerまで展開されるようにしています。流れは以下となります。 - VSCodeにてDockerfile編集 - VSCodeからGitHubレポジトリへgit push - GitHubレポジトリとDocker Hubの連携機能によりpushが検知される - Docker Hub上でコンテナイメージの自動ビルド - Docker Hub上でのビルド完了時にWeb App for ContainerのWeb Hook URLに対してPostが実行される - Web App for ContainerがDocker Hubからビルド完了済みの最新イメージを取得 - 更新された最新イメージが実行される 体験としては、手元のVSCodeで必要な編集を行い、コミット、プッシュするのみであとは全自動のため非常に快適です。 ...

March 24, 2018 · 3 min · 胡田昌彦