こんにちは入社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
-
技術情報(520)
-
イベント(196)
-
カルチャー(54)
-
デザイン(51)
TAG
- "eVTOL"
- "Japan Drone"
- "ロボティクス"
- "空飛ぶクルマ"
- 5G
- Adam byGMO
- AGI
- AI
- AI人財
- APT攻撃
- AWX
- BIT VALLEY
- Blade
- blockchain
- Canva
- ChatGPT
- ChatGPT Team
- Claude Team
- cloudflare
- cloudnative
- CloudStack
- CM
- CNDO
- CNDT
- CODEBLUE
- CODEGYM Academy
- ConoHa
- ConoHa、Dify
- CS
- CSS
- CTF
- DC
- design
- Designship
- Desiner
- DeveloperExper
- DeveloperExpert
- DevRel
- DevSecOpsThon
- DiceCTF
- Dify
- DNS
- Docker
- DTF
- Excel
- Expert
- Experts
- Felo
- GitLab
- GMO AIR
- GMO AIロボティクス大会議&表彰式
- GMO DESIGN AWARD
- GMO Developers Day
- GMO Developers Night
- GMO Developers ブログ
- 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ペパボ
- GMOメディア
- GMOリサーチ
- GMO大会議
- Go
- GPU
- GPUクラウド
- GTB
- Hardning
- Harvester
- HCI
- iOS
- IoT
- ISUCON
- JapanDrone
- Java
- JJUG
- K8s
- Kaigi on Rails
- Kids VALLEY
- KidsVALLEY
- Linux
- LLM
- MCP
- MetaMask
- MySQL
- NFT
- NVIDIA
- NW構成図
- NW設定
- Ollama
- OpenStack
- Perl
- perplexity
- PHP
- PHPcon
- PHPerKaigi
- PHPカンファレンス
- Python
- QUIC
- Rancher
- RPA
- Ruby
- Selenium
- Slack
- Slack活用
- Spectrum Tokyo Meetup
- splunk
- SRE
- sshd
- SSL
- Terraform
- TLS
- TypeScript
- UI/UX
- vibe
- VLAN
- VS Code
- Webアプリケーション
- WEBディレクター
- XSS
- アドベントカレンダー
- イベントレポート
- インターンシップ
- インハウス
- オブジェクト指向
- オンボーディング
- お名前.com
- カルチャー
- クリエイター
- クリエイティブ
- コーディング
- コンテナ
- サイバーセキュリティ
- システム研修
- スクラム
- スペシャリスト
- セキュリティ
- ソフトウェアテスト
- チームビルディング
- デザイン
- ドローン
- ネットのセキュリティもGMO
- ネットワーク
- ビジネス職
- ヒューマノイド
- ヒューマノイドロボット
- プログラミング教育
- ブロックチェーン
- ベイズ統計学
- マルチプレイ
- ミドルウェア
- モバイル
- ゆめみらいワーク
- リモートワーク
- レンタルサーバー
- ロボット
- 京大ミートアップ
- 人材派遣
- 出展レポート
- 動画
- 協賛レポート
- 基礎
- 多拠点開発
- 大学授業
- 宮崎オフィス
- 展示会
- 広告
- 形
- 応用
- 情報伝達
- 技育プロジェクト
- 技術広報
- 技術書典
- 採用
- 採用サイトリニューアル
- 採用活動
- 新卒
- 新卒研修
- 日本科学未来館
- 映像
- 映像クリエイター
- 暗号
- 業務効率化
- 業務時間削減
- 機械学習
- 決済
- 物理暗号
- 生成AI
- 色
- 視覚暗号
- 開発生産性
- 開発生産性向上
- 階層ベイズ
- 高機能暗号
PICKUP
-
ほぼ生成AIだけで小学生向け授業用動画を作ってみた話|KidsVALLEYプロジェクト
技術情報
-
Kids VALLEYプロジェクト|渋谷区小学校PBL型授業支援の舞台裏~グループ横断運営ノウハウとコンテンツ設計大公開~
カルチャー
-
【美雲このは12周年生誕祭 このはぴば!2025 】グラフィック制作ディレクションの振り返り
デザイン
-
Linuxのsshdをネットワーク的に隔離したい話
技術情報
-
【イベントレポート】山口県から宇宙へ!「NASA Space Apps Challenge Ube 2025」参加報告
技術情報
-
CODE BLUE 2025 にトップスポンサーとして協賛します!
イベント