今回は、AnsibleTower/AWXのタイムゾーンをUTCからJSTに変更する方法をご紹介したいと思います。
はじめに
AnsibleTowerやAWXはUTCで動作しています。
Web画面上は自動でJSTに変更して表示されますが、ローカルのシステム日時はUTCのままなので、ローカルにdateコマンドを実行した場合は、時間が9時間ズレてしまいますので、これを回避する方法をご紹介したいと思います。
【問題】Web画面とdateコマンドでの時間のズレについて
ここでは、簡単なプレイブックを作成して、Web画面(AWXの画面になります)とdateコマンド実行時の時間のズレを確認してみます。
以下は確認用のプレイブックになります。
---
- hosts: all
gather_facts: false
tasks:
- name: "ローカルに対してdateコマンドの実行"
local_action: shell "date"
以下はWeb画面での実行結果になります。
赤枠がAWXのタスク実行時間、青枠がdateコマンドの実行結果となります。
普通に実行した場合は以下のように時間がズレてしまいます。
リンク
【対策】タイムゾーンをタスク実行時に変更する
こちらは日時が正しく表示されるように修正したプレイブックになります。
7,8行にタスク実行時の環境変数として、タイムゾーンに「Asia/Tokyo」を設定するのみです。
---
- hosts: all
gather_facts: false
tasks:
- name: "ローカルに対してdateコマンドの実行"
local_action: shell "date"
environment:
TZ: Asia/Tokyo
以下はWeb画面での実行結果になります。
赤枠がAWXのタスク実行時間、青枠がdateコマンドの実行結果となります。
環境変数を変更することで時間が合うようになりましたね。
おわりに
記事は以上になります。知ってれば簡単なのですが、知らないと意外に嵌るんですよね。
Web画面でログの時間は確認出来るため、dateコマンドを使用する場面は少ないと思いますが、ジョブ実行時間として、処理の最初に変数に格納しておき、後続処理でディレクトリ名やファイル名の一部として使うなどがあるかもしれません。
そのような場合に時間がズレてると困ると思いますので、是非こちらの記事を参考にしていただければと思います。
コメント