LoginSignup
2
2

More than 5 years have passed since last update.

AnsibleでClamAVをインストール

Last updated at Posted at 2018-11-12

オープンソースのアンチウイルスソフトClamAVをAnsibleでインストールする。

main.yml
- name: (1)epel-releaseインストール
  become: True
  yum:
    name: epel-release

- name: (2)clamavインストール
  become: True
  yum:
    name: "{{ item }}"
  with_items:
    - clamav
    - clamav-scanner-systemd
    - clamav-update
  register: clamav_packages_install

- name: (3)scan.conf置き換え
  become: True
  template:
    src: templates/scan.conf.j2
    dest: /etc/clamd.d/scan.conf

- name: (4)シンボリックリンク設定
  become: True
  file:
    src: /etc/clamd.d/scan.conf
    dest: /etc/clamd.conf
    state: link

- name: (5)freshclam.conf置き換え
  become: True
  template:
    src: templates/freshclam.conf.j2
    dest: /etc/freshclam.conf

- name: (6)freshclam
  become: True
  command: freshclam
  when: clamav_packages_install.changed

- name: (7)clamd@scan再起動
  become: True
  service:
    name: clamd@scan
    state: restarted
    enabled: yes

(1)epelリポジトリをyumでインストール

- name: (1)epel-releaseインストール
  become: True
  yum:
    name: epel-release

(2)clamavをインストールする

- name: (2)clamavインストール
  become: True
  yum:
    name: "{{ item }}"
  with_items:
    - clamav
    - clamav-scanner-systemd
    - clamav-update
  register: clamav_packages_install

freshclamを実行する際に、使うため変数を準備しておく。

(3)scan.confを書き換え

デーモンで動作するように、scan.confを書き換えておく。
templateモジュールで、置き換える。
scan.confの内容は、省略。

 - name: (3)scan.conf置き換え
  become: True
  template:
    src: templates/scan.conf.j2
    dest: /etc/clamd.d/scan.conf

(4)シンボリックリンク設定

clamdscanは、設定ファイルを/etc/clamd.confに参照にいくため、シンボリックリンクを設定する必要がある。

- name: (4)シンボリックリンク設定
  become: True
  file:
    src: /etc/clamd.d/scan.conf
    dest: /etc/clamd.conf
    state: link

(5)freshclam.conf置き換え

freshclamを利用して、自動でウイルスのデータベースを更新するように設定。
freshclam.confの内容は、省略。

- name: (5)freshclam.conf置き換え
  become: True
  template:
    src: templates/freshclam.conf.j2
    dest: /etc/freshclam.conf

(6)freshclam

これをやらずに、Ansibleを実行したところ(7)の処理で失敗した。
sshして、(7)のコマンドを実際に叩くと、ここで処理が失敗していた。

[vagrant@localhost ~]$ sudo systemctl start clamd@scan
Job for clamd@scan.service failed because the control process exited with error code. See "systemctl status clamd@scan.service" and "journalctl -xe" for details.

freshclamを実行していないため、cvdファイルがないことが原因のよう。

 [vagrant@localhost clamav]$ sudo freshclam
ClamAV update process started at Mon Nov 12 10:29:52 2018
Downloading main.cvd [100%]
main.cvd updated (version: 58, sigs: 4566249, f-level: 60, builder: sigmgr)
Downloading daily.cvd [100%]
daily.cvd updated (version: 25113, sigs: 2148970, f-level: 63, builder: neo)
Downloading bytecode.cvd [100%]
bytecode.cvd updated (version: 327, sigs: 91, f-level: 63, builder: neo)
Database updated (6715310 signatures) from database.clamav.net (IP: 104.16.189.138)
WARNING: Clamd was NOT notified: Can't connect to clamd through /var/run/clamd.scan/clamd.sock: No such file or directory

chengedがtrueの時(1番最初)のみ、freshclamを実行する。

- name: (6)freshclam
  become: True
  command: freshclam
  when: clamav_packages_install.changed

(7)clamd@scan再起動

自動起動するように設定して、再起動。

- name: (7)clamd@scan再起動
  become: True
  service:
    name: clamd@scan
    state: restarted
    enabled: yes
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2