ホーム > Ansible Tower・AWX リファレンス
Ansible(AWX/Tower)環境で、Windowsホストに対して、バッチファイルを実行する方法を解説します。
Ansible(AWX/Tower)環境で、Windowsホストに接続する場合は、WinRM導入が必須になります。
まだ導入していない方は下記を参考に導入してみて下さい。
事前準備
まずは、事前準備として、以下の作業を行います。
(*Ansibleには、コマンドライン版のAnsibleの他、GUIで使用出来るAWX[Tower(有償版)]がありますが、今回はAnsible AWXを使用します。以降、AWXと表記して進めて行きます)
- Windowsで実行するバッチファイルの作成
- AWXで実行するプレイブックの作成
- AWX各種定義の設定
- 認証情報
- インベントリー
- テンプレート
Windowsで実行するバッチファイルの作成
今回は、バッチファイルが実行されたことを確認したいので、リダイレクトでファイルを出力するバッチを作成します。
@echo off cd %~dp0 echo Ansible AWX バッチ実行テスト> .\Test.log exit
文字列「Ansible AWX バッチ実行テスト」を「Test.log」として、カレントディレクトリに出力する簡単なバッチになります。
バッチを準備するにあたって、以下の注意点があります。
- バッチファイルの文字コードは「UTF-8」にして下さい。
- バッチファイルは、接続先のWindows端末内に配置して下さい。
AWXで実行するプレイブックの作成
バッチを実行するだけの、簡単なプレイブックです。
---
- hosts: all
gather_facts: False
tasks:
- name: "バッチファイルの実行"
win_command: "C:\\ws\\bat\\Test.bat"
AWX各種定義の設定
ここでは、AWXの各種定義について説明します。
認証情報
今回実行する認証情報の設定になります。
インベントリー
今回実行するインベントリーの設定になります。
ホストは、接続先のWindows機器のIPアドレスを設定しています。
以下が、インベントリー変数の設定です。
--- ansible_connection: winrm ansible_ssh_port: 5985 ansible_winrm_transport: basic ansible_winrm_server_cert_validation: ignore
テンプレート
今回実行するテンプレートの設定になります。
実行結果
プレイブックの実行結果です。
Using /etc/ansible/ansible.cfg as config file
SSH password:
PLAY [all] *********************************************************************
TASK [バッチファイルの実行] **************************************************************
changed: [192.168.11.10] => {"changed": true, "cmd": "C:\\ws\\bat\\Test.bat", "delta": "0:00:00.062540", "end": "2022-10-09 05:34:14.685597", "rc": 0, "start": "2022-10-09 05:34:14.623056", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
PLAY RECAP *********************************************************************
192.168.11.10 : ok=1 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
以下のように、バッチファイルを格納したフォルダに「Test.log」が作成されていれば、バッチが正しく実行されています。
上手く動かない場合
想定通りに動かない場合、以下を参考にしてみて下さい。
ジョブが異常終了する
ジョブが異常終了する場合は、様々な原因が考えられるので、以下を参考にして下さい。
出力したファイルが文字化けする
下記のように、出力したファイル(サンプルなら、Test.log)が文字化けする場合の対処です。
AWXから実行されるバッチファイルの文字コードが「SJIS」になっている場合、日本語を含む文字列が文字化けしてしまいます。
バッチファイルの文字コードを「UTF-8」にすることで、文字化けが解消します。
コメント