1. ホーム
  2. ansible

[解決済み] ansible playbookを使ったLogrotate

2022-02-19 20:30:30

質問

そこで、会社のすべてのサーバーにlogrotateをインストールするansible playbookを作成したいと思います。また、ログが毎週バックアップされ、一週間後に削除されるように設定することもできます。毎週新しいログを作成し、先週のログをバックアップし、3週目に最初のログを削除し、それを繰り返すというものです。

これまでのところ、私はこれを見つけたが、我々はnginxを使用していない。そして、それは私が欲しいものを正確に行うことはありません。私のプレイブックの知識は非常に限られているので、誰かがそれを助けることができれば素晴らしいことです。また、サーバーにtomcat、apache、wildflyがあるかどうかをチェックし、それらのログを取得する必要があります。

logrotate_scripts:
  - name: nginx-options
    path: /var/log/nginx/options.log
      options:
      - daily
      - weekly
      - size 25M
      - rotate 7
      - missingok
      - compress
      - delaycompress
      - copytruncate

解決方法は?

を使ってみましょう。 ブロッキングファイル . 例えば、タスク

    - blockinfile:
        path: "/etc/logrotate.d/{{ item.path }}"
        block: "{{ item.conf }}"
        create: true
      loop: "{{ lp_logrotate_confd }}"

という変数で

    lp_logrotate_confd:
      - path: ansible
        conf: |
          /var/log/ansible.log {
                 weekly
                 rotate 3
                 size 10M
                 compress
                 delaycompress
          }

が作成されます。

    shell> cat /etc/logrotate.d/ansible 
    # BEGIN ANSIBLE MANAGED BLOCK
    /var/log/ansible.log {
           weekly
           rotate 3
           size 10M
           compress
           delaycompress
    }
    # END ANSIBLE MANAGED BLOCK

リストに項目を追加して、設定データを必要なものに合わせます。便利なように、コードは以下の場所にあります。 ギットハブ .