先日、Windows用Zabbix Agent 2をMSIインストーラのウィザードに従ってGUIでインストールする手順を記事にした。
そこまで多くの設定が必要ではないとはいえ、GUIで設定することも手間となる。幸いMSIインストーラはmsiexec
というコマンドを使えば、ウィザードを使わずにサイレントインストールをさせることができる。
本記事では、Windows用Zabbix Agent 2をmsiexec
コマンドを使ってサイレントインストールする手順を記載する。また、Ansibleを使ってZabbix Agentを自動インストールするPlaybookを作ってみたので紹介する。
環境
- Zabbix Server : 6.0.17
- 監視対象OS : Windows Server 2022
- Zabbix Agent 2バージョン : 6.0.17
Zabbix Agentサイレントインストール手順
1. Zabbix Agent 2のダウンロード
Zabbix Agent 2は以下URLからダウンロードできる。
今回は、以下の通り、Zabbix 6.0用のエージェントを指定する。
項目 | 設定値 |
---|---|
OS DISTRIBUTION | Windows |
OS VERSION | Any |
HARDWARE | amd64 |
ZABBIX VERSION | 6.0 LTS |
ENCRYPTION | OpenSSL |
PACKAGING | MSI |
図11
指定すると、従来のZabbix AgentとZabbix Agent 2の二種類が表示されるので、Zabbix Agent 2のMSIインストーラをダウンロードする。
2. コマンドプロンプトを「管理者として実行」で起動
コマンドプロンプトを「管理者として実行」で起動する。
3. msiexec
コマンドにてインストールを実行
以下の通り、実行する。コマンドプロンプトでは行末に^
を付与するとコマンドの改行ができる。今回は見やすくするため改行を入れているが、一行で記述しても当然実行できる。
msiexec /l*v log.txt^
/i zabbix_agent2-x.x.x-windows-amd64-openssl.msi /qn^
HOSTNAME=[Zabbixに登録したホスト名]^
SERVER=[Zabbix ServerのIPアドレス]^
SERVERACTIVE=[Zabbix ServerのIPアドレス]
以下実行例となる。サイレントインストールとなるため、実行結果は何も表示されない。
C:\work> msiexec /l*v log.txt^
/i zabbix_agent2-6.0.17-windows-amd64-openssl.msi /qn^
HOSTNAME=test-server^
SERVER=192.168.1.1^
SERVERACTIVE=192.168.1.1
インストールが問題なくされているか不安な場合は、「コントロールパネル」→「プログラムと機能」にZabbix Agentが存在することを確認しよう。
AnsibleでZabbix Agentを自動インストールするPlaybook
Playbookの説明は以下の通り。Zabbix Agentがインストールされているかどうかチェックしたのち、MSIインストーラをコピーしてサイレントインストールする、シンプルなPlaybookとなる。
タスク名 | モジュール | 説明 |
---|---|---|
Check zabbix agent installation status | win_shell | PowerShellでGet-WmiObject Win32_Product を実行し、Zabbix Agnetのインストール状況を確認する。 |
Copy zabbix agent file | win_copy | Zabbix Agnetがインストールされていない場合、Zabbix AgentのMSIインストーラファイルをコピーする。 |
Install zabbix agent | win_command | msiexec にてZabbix Agentをサイレントインストールする。 |
実際のPlaybookを以下に記載する。
---
- name: Install windows zabbix agent
gather_facts: true
hosts: windows_servers
vars:
ansible_user: ansibleuser
ansible_password: XXXXXXXX
ansible_port: 5986
ansible_connection: winrm
ansible_winrm_server_cert_validation: ignore
zabbix_agent:
server: 192.168.1.1
name: zabbix_agent2-6.0.17-windows-amd64-openssl.msi
logname: log_install_zabbix_agent.log
tasks:
# インストール確認
- name: Check zabbix agent installation status
ansible.windows.win_shell: |
Get-WmiObject Win32_Product | Where-Object { $_.Name -like "Zabbix Agent*" }
changed_when: false
register: result_check
# ファイルコピー
- name: Copy zabbix agent file
ansible.windows.win_copy:
src: /ansible_mnt/
dest: C:\Temp
when: result_check.stdout == ""
# インストール実行
- name: Install zabbix agent
ansible.windows.win_command: |
C:\Windows\System32\msiexec.exe /l*v C:\Temp\{{ zabbix_agent.logname }} /i C:\Temp\{{ zabbix_agent.name }} /qn^
HOSTNAME={{ inventory_hostname }} SERVER={{ zabbix_agent.server }} SERVERACTIVE={{ zabbix_agent.server }}
changed_when: true
register: result
when: result_check.stdout == ""
以上で、Windows用Zabbix Agent 2をmsiexec
コマンドを使ってサイレントインストールする手順は完了となる。
0 件のコメント:
コメントを投稿