AnsibleでのWindows ServerへのOpsRampエージェントインストール

この記事はOpsRamp Advent Calendar 2021の12月16日の記事です。 このブログでOpsRampを扱うのは初めてです。ありがたいことにOpsRampさんから検証用ライセンスを支援いただきましたので環境を作りながらAdvent Calendarにも1日参加させていただきました。 私は現在Youtubeで企業でよくあるWindows/M365環境を構築してみるというシリーズを作成しています。AnsibleをつかってHyper-VでInfrastructure as Codeを実現していますので、コードによって自動的に生成されたVMが自動的にOpsRampから監視されるように構成してみたいと思います。 OpsRampのエージェントをAnsibleから管理する方法に関しては下記の記事に記載がありますので、この内容に沿って試してみます。 https://docs.opsramp.com/platform-features/agents/managing-agents-ansible/ 上記ドキュメントでは主にLinuxに関しての言及がなされています。ですが、私が今検証を進めている環境は今のところWindows Serverおよびそのうえで動いているWSL環境しか存在していません。Windows Server + WSLをAnsible環境として利用しつつ、Windows Serverを管理することができるのかどうか、ドキュメントの枠を超えて試してみたいと思います。 OpsRamp環境の初期セットアップ~手動でのエージェントインストール Ansibleでの検証に先立って、そもそものOpsRamp環境の初期セットアップを行い、試しに1台手動でエージェントを導入してみます。下記ドキュメントを参考にしながら作業を行いました。 https://jpdemopod2.docs.opsramp.com/ 管理ポータルにアクセスし…。 パスワードを変更し…。 Windows用のインストーラーをダウンロードし…。 インストーラーはネットワーク上の共有フォルダに配置しました。 監視対象には、ネットワーク上の共有フォルダから直接管理者として実行してエージェントをインストールしました。 「Undefined Resource」として見えてくることが確認できました。 モニターテンプレートを割り当てました。 Upの状態として認識されることを確認しました。 テスト的に監視対象を停止し、Downと検知されるところまで確認しました。 これで本当に基本的な部分のみですが、動作が確認できましたので、Ansibleを使ったエージェントインストールに進んでいきます。 Ansibleを使ったWindows ServerへのOpsRampエージェントインストール 管理者権限で実行すればエージェントがインストールされ、OpsRampからの監視を始めることのできるEXEファイルはOpsRampが用意してくれているわけですから単純にこのEXEファイルを実行させてインストールさせればよさそうです。 これを実現するにはwin_packageモジュールを利用すればよさそうです。 https://docs.ansible.com/ansible/latest/collections/ansible/windows/win_package_module.html パスとしては共有フォルダへのUNCパスもサポートしているので都合が良いです。 インストール済みかどうかの判定にはProduct_IDを利用するということですので、インストール済みのVMにてProduct_IDを確認します。 コンピューター\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall{5DD30F80-C9BD-429B-89CA-03C0578C77B4} 結果的に「5DD30F80-C9BD-429B-89CA-03C0578C77B4」がProduct_IDであるとわかりました。 - n a m w e i : n p P _ a r O p t o p a h d s c = u R k " c a a \ t m g \ _ p e \ I エ : \ d ー n = ジ e " ェ s 5 ン t D ト e D イ d 3 ン h 0 ス y F ト p 8 ー e 0 ル r - v C \ 9 \ B S D h - a 4 r 2 e 9 \ B \ - O 8 p 9 s C R A a - m 0 p 3 \ C \ 0 O 5 p 7 s 8 R C a 7 m 7 p B A 4 g " e n t - d e m o 0 0 1 . e x e " これをPlaybookに追加追記します。 ...

December 16, 2021 · 1 min · 胡田昌彦

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 · 胡田昌彦

ansibleが使えるコンテナイメージ

TerraformでWindowsVMを展開した後はansibleで構成を自動化しようと考え中です。 Windowsからの管理は現実的に無理みたいなので、仕方なくDocker for Windows上のLinuxコンテナで管理しようとかんがえています。 ansibleの公式イメージをpullすれば瞬殺だろうと思ったのですが以下のあたりはもう公式ではイメージメンテナンスされてません、ということだったのでそのままの利用を躊躇してしまいました。 - [ansible/ubuntu14.04-ansible - Docker Hub](https://hub.docker.com/r/ansible/ubuntu14.04-ansible/) - [ansible/centos7-ansible - Docker Hub](https://hub.docker.com/r/ansible/centos7-ansible/) で、勉強も兼ねて自分でDockerfileを書きました。(あまり根本的解決になっていない気もしますが) - [ubuntu_ansible/Dockerfile at master · ebibibi/ubuntu_ansible](https://github.com/ebibibi/ubuntu_ansible/blob/master/Dockerfile) Dockerfile作成中には「pip install –upgrade pip」というコマンドも入れていたのですがこちらはpipの9と10のバージョン違いによるトラブルが発生してしまいうまく行かず。結局pipのアップグレードはやらないことにしました(逃げ)。 このあたりは下記ブログに解説されていました。 - [pip install --upgrade pip (10.0.0) 後の奇妙な挙動について - 雑記](http://icchy.hatenablog.jp/entry/2018/04/17/064443) 助かりました。ありがとうございます。 というわけで、Dockerイメージも準備できました。 - [ebibibi/ubuntu_ansible - Docker Hub](https://hub.docker.com/r/ebibibi/ubuntu_ansible/) 次は、このコンテナを利用して、Azure上に展開したWindowsVMを自動構成する予定です。明日時間取れる予定…! 業務時間にこうやって自分がやりたい領域のことを勉強しながら作業できるのは本当にありがたいです。(注意:遊んでいるわけではありません。仕事です。)

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

TerraformでWindowsVMを作成する

今日はTerraformでWindows VMを作りました。 LinuxVMの作成サンプルとほぼ変わりませんが、一部展開後にAnsibleで管理される準備を自動実行させるぶぶんだけ工夫してみました。Terrafromでブートストラップしてから、ConfigurationはAnsibleで管理…、に自然に移行できるようにしているつもりです。 Ansibleでの構成はこれから試すので、できる想定…なのですが。 Terraformの作成サンプルはLinuxVMばかりでWindowsVMの例があまりないので少しは参考になる部分があるかもしれません。 - [https://github.com/ebibibi/AzureManagement/tree/master/Terraform/CreateWindowsVM](https://github.com/ebibibi/AzureManagement/tree/master/Terraform/CreateWindowsVM)

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

AI・テクノロジーの情報を発信しています

YouTube

AI・テクノロジーの最新トレンドを動画で配信中

note

技術コラム・深掘り記事を公開中