オープンソースのアンチウイルスソフト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