こんにちは入社2年目の城後です。
皆様Windowsサーバに対して複数台動作を実行することに苦労したかたはいませんでしょうか。
私は苦労しました。
そのため、今回は遠隔からWindowsサーバを操作したいという気持ちからLinuxサーバからWindowsサーバへAnsibleを実施するための準備、実際にWindowsサーバに対してAnsibleを実行する方法までを書いていきます。
目次
実行環境
Linuxサーバ: Ubuntu 20.04
Windowsサーバ: Windows Server 2019
Ansible Version: 2.9.6
Python: 3.8.10Windowsサーバ側の準備
WindowsサーバにAnsibleで実施する際にはWinRMを有効にする必要性があります。
下記のダウンロードしてきたスクリプトを実行することでWinRMを有効にできます。
さらに、httpsリスナーを有効にするには自己証明書を使用して構築されます。
具体的には下記の手順をWindowsサーバのPowershellで実施します。
$url = "https://raw.githubusercontent.com/ansible/ansible/devel/examples/scripts/ConfigureRemotingForAnsible.ps1"
$file = "$env:temp\ConfigureRemotingForAnsible.ps1"
(New-Object -TypeName System.Net.WebClient).DownloadFile($url, $file)
powershell.exe -ExecutionPolicy ByPass -File $file
winrm set winrm/config/service '@{AllowUnencrypted="true"}'
Invoke-WebRequest -Uri https://raw.githubusercontent.com/ansible/ansible/devel/examples/scripts/ConfigureRemotingForAnsible.ps1 -OutFile ConfigureRemotingForAnsible.ps1
powershell -ExecutionPolicy RemoteSigned .\ConfigureRemotingForAnsible.ps1 上記の実行が確認できれば、実際にAnsibleで利用されるWinRMリスナが存在するかを確認するため下記コマンドを実行します。
winrm enumerate winrm/config/Listener上記を実行することで下記のような結果が得られればWindows側の作業は終了です。
PS C:\Windows> winrm enumerate winrm/config/Listener
Listener
Address = *
Transport = HTTP
Port = 5985
Hostname = WINDOWS-SERVER
Enabled = true
URLPrefix = wsman
CertificateThumbprint
ListeningOn = 127.0.0.1, ***.***.***.***, ::1
Listener
Address = *
Transport = HTTPS
Port = 5986
Hostname = WINDOWS-SERVER
Enabled = true
URLPrefix = wsman
CertificateThumbprint = ****************
ListeningOn = 127.0.0.1, ***.***.***.***, ::1続いてLinuxサーバ側の準備を行います。
Linuxサーバ側の準備
今回はNTLM認証を利用します。そのためkerberos認証などで実施する場合は別途ツールのインストールが必要となります。
*Ansible、Pythonなどは事前にインストールされている前提で進めていきます。
NTLM認証であれば今回はWindowsサーバの接続に必要なモジュールをpipでwinrmモジュールをインストールします。
下記のようにインストールします。
pip install pywinrmここまでがLinuxサーバ、WindowsサーバのAnsibleを実行するまでの準備となります。
続いてはAnsible-Playbookを書いてきましょう。
Ansible-playbookの準備
Ansible-Playbookを準備していきます。今回は対象のホストに再起動を実行します。
ディレクトリ構造は下記のようになります。
Ansible
├── reboot_windows.yml
├── roles
│ └── windows_reboot
│ └── tasks
│ └── main.yml
└── target
└── hostsそれぞれに記載していくAnsible-Playbookの中身を見ていきます。
---
- hosts: windows
roles:
- windows_reboot---
- name: windows reboot
win_reboot:[windows]
[対象のIP]
[windows:vars]
ansible_user=USER #windowsのユーザ名
ansible_password=PASSWORD #windowsのパスワード
ansible_port=5986 #今回使用するポート
ansible_winrm_transport=ntlm #使用する認証オプション
ansible_connection=winrm #Ansible EngineがSSHでWindowsホストに接続を試行し続けるためwinrmで接続するように指定
ansible_winrm_server_cert_validation=ignore #Windowsサーバの準備では自己証明書をセットアップするため有効なCAから
発行されたものではありません。そのため検証しないようにignoreを指定しています。以上になります。
上記を作成した後は準備したLinuxサーバで下記のように実行してみます。
ansible-playbook -i target/hosts reboot_windows.ymlLinuxサーバからWindowsサーバへのAnsibleを実行することができると、自動化という観点から非常に有効でしたので、今後も活用していこうと思います。
今回読んでいただきました皆様もぜひお試しください!
ブログの著者欄
採用情報
関連記事
KEYWORD
CATEGORY
-
技術情報(596)
-
イベント(237)
-
カルチャー(60)
-
デザイン(70)
TAG
- 5G
- AI
- AI TALK
- AI 機械学習強化学習
- AI/機械学習
- AIエージェント
- AIコーディング
- AI人財
- AI駆動
- Behind the Scenes
- BIT VALLEY
- blockchain
- ChatGPT
- ChatGPT Team
- Claude Team
- cloudflare
- cloudnative
- CNDO
- CNDT
- CODE BLUE
- ConoHa
- ConoHa VPS
- CSS
- CTF
- Designship
- developer
- DevRel
- DevSecOpsThon
- Docker
- DTF
- Engineering Journey
- expert
- EXPERT CROSS
- GMO AI&ロボティクス商事
- GMO AIR
- GMO DESIGN AWARD
- GMO Developers Day
- GMO Developers Night
- GMO Flatt Security
- GMO GPUクラウド
- GMO Hacking Night
- GMO kitaQ
- GMO SONIC
- GMOアドパートナーズ
- GMOアドマーケティング
- GMOインターネット
- GMOインターネットグループ
- GMOインターネットグループ陸上部
- GMOグローバルサイン
- GMOコネクト
- GMOサイバーセキュリティ byイエラエ
- GMOデジキッズ
- GMOブランドセキュリティ
- GMOペイメントゲートウェイ
- GMOペパボ
- GMOメディア
- GMO大会議
- GMO天秤AI
- Go
- GPUクラウド
- GTB
- Hack-1グランプリ
- IETF
- iOS
- IoT
- ISUCON
- Japan Drone
- JapanDrone
- Java
- JJUG
- K8s
- Kaigi on Rails
- Kids VALLEY
- LLM
- MCP
- MetaMask
- MySQL
- NFT
- OpenStack
- Perl
- PHP
- PHPcon
- PHPerKaigi
- Python
- RFC
- RPA
- Ruby
- SECCON
- Selenium
- Spectrum Tokyo Meetup
- splunk
- SRE
- Takumi byGMO
- Terraform
- TypeScript
- UI/UX
- vibe
- VPN
- VS Code
- XSS
- ZTNA
- アドベントカレンダー
- インターンシップ
- インハウス
- お名前.com
- クリエイターインタビュー
- クリエイティブ
- コンテナ
- サイバーセキュリティ
- サマーインターン
- スクラム
- スペシャリスト
- セキュリティ
- ソフトウェアサプライチェーン
- チームビルディング
- デザイン
- ネットのセキュリティもGMO
- ハーネスエンジニアリング
- バックエンド
- ヒューマノイド
- ヒューマノイドロボット
- プログラミング教育
- ブロックチェーン
- フロントエンド
- ペアリング暗号
- ゆめみらいワーク
- リモートワーク
- レンタルサーバー
- ロボット
- 京大ミートアップ
- 国際ロボット展
- 国際標準化
- 基礎
- 多拠点開発
- 宮崎オフィス
- 応用
- 技育プロジェクト
- 技術広報
- 技術書典
- 新卒
- 新卒研修
- 映像
- 映像クリエイター
- 暗号
- 業務効率化
- 機械学習
- 決済
- 生成AI
- 耐量子暗号
- 脆弱性診断
- 開発者
PICKUP
-
【EXPERT CROSS #2】暗号技術の可能性を未来につなぐ、「暗号のおねぇさん」の歩み(後編)
技術情報
-
【EXPERT CROSS #2】「暗号のおねぇさん」が国際標準化の場で残していく、インターネットへの「爪痕」(前編)
技術情報
-
デザインカンファレンス「Yoitoi Summit 2026」をGMOYours・フクラスにて開催!
デザイン
-
攻撃者優位の時代に問われる「使命感」 GMO Flatt Security&GMOサイバーセキュリティ byイエラエが描く、AI時代のセキュリティ構想(後編)ーEngineering Journey
技術情報
-
頂上と裾野の両方から「底上げ」 GMO Flatt Security&GMO サイバーセキュリティ byイエラエが支える、日本のサイバーセキュリティ(前編)ーEngineering Journey
技術情報
-
【開催レポート】八幡小学校 社会科見学 at GMO kitaQ
カルチャー