概要
完全に小ネタです。
AWXもしくはAnsible Towerでtemplateモジュールを用いるとファイルの差分がログに出力されます。
なので、templateの使用頻度やtemplateのテキスト量に比例してログ量も増えます。
ログ量が増えるとDBの容量も消費するし、実行結果を表示するI/Oも増えます。
これを抑制するために、**no_log**を用います。
通常は機密情報を非表示にするために用いますが、上記のような理由のようにログ出力を抑えたい場合にも用いることができます。
ansible.cfg、play、taskのそれぞれで設定できますが、いざという時のためにデバックできるように個人的にはtask単位が望ましいと思います。
例
[defaults]
host_key_checking=False
retry_files_enabled=False
interpreter_python="/usr/bin/env python3"
timeout=10
[ssh_connection]
retries=6
---
- name: No log
hosts: localhost
connection: local
gather_facts: False
# play全体の出力を抑制したい場合
# no_log: True
tasks:
- template:
src: "./template.j2"
dest: "/tmp/template"
mode: "u=r,g=r,o="
become: yes
# 特定のタスクのみを抑制する場合
# no_log: yes
テンプレートの内容は何でもよい。
下記は実際に使われているrsyslogの設定ファイルになります。
$template mytemplate, "%timegenerated% %hostname% %programname% [%syslogpriority-text%] %msg%\n"
*.info;mail.none;authpriv.none;cron.none /var/log/messages;mytemplate
cron.* /var/log/cron;mytemplate
local7.* /var/log/boot.log;mytemplate
authpriv.* /var/log/secure;mytemplate
実行結果に↑のテンプレートの内容(ログレベルはNormal)が出力されます。
既存のファイルを上書きする場合は、その差分が出力されます。
下記は新規ファイルのため、全行が出力されます。
なお、差分がない場合は出力されません。
PLAY [No log] ******************************************************************
TASK [template] ****************************************************************
--- before
+++ after: /var/lib/awx/.ansible/tmp/ansible-local-1679g0oolph1/tmpm03q6ezu/template.j2
@@ -0,0 +1,5 @@
+$template mytemplate, "%timegenerated% %hostname% %programname% [%syslogpriority-text%] %msg%\n"
+*.info;mail.none;authpriv.none;cron.none /var/log/messages;mytemplate
+cron.* /var/log/cron;mytemplate
+local7.* /var/log/boot.log;mytemplate
+authpriv.* /var/log/secure;test
changed: [localhost]
PLAY RECAP *********************************************************************
localhost : ok=1 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
テンプレートの内容が出力されません。
PLAY [No log] ******************************************************************
TASK [template] ****************************************************************
ok: [localhost]
PLAY RECAP *********************************************************************
localhost : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
あとがき
ログ出力を抑えるは他にもありますので、必要に応じてご利用くださいませ。
- display_skipped_hosts・・・スキップタスクの表示/非表示
- display_ok_hosts・・・okタスクの表示/非表示
- display_args_to_stdout・・・各タスクへの引数の表示/非表示