11月20日に公開されたSystems Manager Distributor を利用してZabbixAgentを配布したいと思います。
Systems Manager Distributor とは
AWS Systems Manager Distributor の新機能です。
Systems Manager の管理対象となっているマネージドインスタンスに対してパッケージ化されたソフトウェアを配布することができます。
AWSが管理している各種Agentやユーザーが独自作成したパッケージを配布できます。

Systems Manager Distributorによるバージョン管理
公式リポジトリを利用したインストールでAgentのインストールを感嘆に行う事ができます。
ですが、大きな運用現場では、常に最新版のAgentではなく、検証済みのAgentでバージョン固定を行う場合があります。
Systems Manager Distributorでは、インストールパッケージの中にソフトウェアパッケージを含める事ができるため、簡単にバージョン固定を行う事ができます。
Systems Manager Distributorのパッケージ作成
公式手順を参考に作成をおこないます。
サンプルパッケージを参考にすれば作りやすいでしょう。
ZabbixAgentパッケージの作成
それでは実際にパッケージを作成します。
まずは、各OS向けのinstall/uninstall スクリプトを作成します。
Linuxの場合
# !/bin/bash
cd `dirname $0`
echo 'Installing ExamplePackage on Amazon Linux...'
# Add command to call installer.  For example "yum install .\ExamplePackage.rpm"
sudo yum install zabbix-agent-3.0.23-1.amzn1.x86_64.rpm
# !/bin/bash
cd `dirname $0`
echo 'Uninstalling ExamplePackage on Amazon Linux...'
# Add command to call uninstaller.  For example "yum remove .\ExamplePackage.rpm"
sudo yum remove zabbix-agent-3.0.23-1.amzn1.x86_64.rpm
Windowsの場合
Write-Output 'Installing ExamplePackage on Windows...'
mkdir C:\Program Files\Zabbix
mkdir C:\Program Files\Zabbix\bin
mkdir C:\Program Files\Zabbix\conf
Copy-Item -Path ./*.exe -Destination C:\Program Files\Zabbix\bin
Copy-Item -Path ./*.conf -Destination C:\Program Files\Zabbix\conf
# Add command to call installer.  For example "msiexec /i .\ExamplePackage.deb /quiet"
Start-Process -FilePath C:\Program Files\Zabbix\bin\zabbix_agentd.exe -ArgumentList "-i","-c",.C:\Program Files\Zabbix\conf\zabbix_agentd.win.conf -Wait
Write-Output 'Uninstalling ExamplePackage on Windows...'
# Add command to call uninstaller.  For example "msiexec /x .\ExamplePackage.deb /quiet"
Start-Process -FilePath C:\Program Files\Zabbix\bin\win32\zabbix_agentd.exe  -ArgumentLis "-d"
 
JSONファイルの作成
作成したZIPファイルをリストして
チェックサムを記載します。
Windowsでは Get-FileHash コマンドでチェックサムの算出ができます。
PS C:\Users\housi> Get-FileHash "C:\Users\housi\Desktop\Zabbix2.0.23\ZabbixAgent_win32.zip"
Algorithm       Hash                                                                   Path
---------       ----                                                                   ----
SHA256          FDFC9C5A2EF0B15DB56C46B9D62BA5B1CA20A0210AEF459C42C6033A02D4B220       C:\Users\housi\Desktop\Zabbix...
{
    "schemaVersion": "2.0",
    "version": "3.0.23",
    "publisher": "qryuu",
    "packages": {
        "windows": {
            "_any": {
                "x86_64": {
                    "file": "ZabbixAgent_win64.zip"
                },
                "386": {
                    "file": "ZabbixAgent_win32.zip"
                }
            }
        },
        "amazon": {
            "2": {
                "x86_64": {
                    "file": "ZabbixAgent_amzn2.zip"
                }
            },
            "_any":{
                "x86_64": {
                    "file": "ZabbixAgent_amzn1.zip"
                }
            }
        }
    },
    "files": {
        "ZabbixAgent_win64.zip": {
            "checksums": {
                "sha256": "0FBECEBC79B1C661937BF542CEA20556B302195DA60AC8E3AD983220E566ED57"
            }
        },
        "ZabbixAgent_win32.zip": {
            "checksums": {
                "sha256": "FDFC9C5A2EF0B15DB56C46B9D62BA5B1CA20A0210AEF459C42C6033A02D4B220"
            }
        },
        "ZabbixAgent_amzn2.zip": {
            "checksums": {
                "sha256": "79110173F8D50E7BBE5EA1B9AD47ECD317FB4FCBC6D46DA72E160406BA55BDAD"
            }
        },
        "ZabbixAgent_amzn1.zip": {
            "checksums":{
                "sha256":"0B66F27C731B8CAC8E2D841F8AF785BBFA6AA84DE97BA83DA7217E3680792A9B"
            }
        }
    }
}
対象OSおよび、x84_64,386,arm64の指定方法はドキュメントのリストを参考にします。
OSのバージョンは
cat /etc/os-release
で確認することができます。
Amazon Linux 2では "2"
Amazon Linux 無印ではリリース年月が出力されるため
Jsonでは
        "amazon": {
            "2": {
                "x86_64": {
                    "file": "ZabbixAgent_amzn2.zip"
                }
            },
            "_any":{
                "x86_64": {
                    "file": "ZabbixAgent_amzn1.zip"
                }
            }
としています。
エラー
何故かinstall.ps1/uninstall.ps1を検出してくれないため、現在はWindowsを外して
JSONを作成してます。
{
    "schemaVersion": "2.0",
    "version": "3.0.23-1",
    "publisher": "qryuu",
    "packages": {
        "amazon": {
            "2": {
                "x86_64": {
                    "file": "ZabbixAgent_amzn2.zip"
                }
            },
            "_any":{
                "x86_64": {
                    "file": "ZabbixAgent_amzn1.zip"
                }
            }
        }
    },
    "files": {
        "ZabbixAgent_amzn2.zip": {
            "checksums": {
                "sha256": "79110173F8D50E7BBE5EA1B9AD47ECD317FB4FCBC6D46DA72E160406BA55BDAD"
            }
        },
        "ZabbixAgent_amzn1.zip": {
            "checksums":{
                "sha256":"0B66F27C731B8CAC8E2D841F8AF785BBFA6AA84DE97BA83DA7217E3680792A9B"
            }
        }
    }
}
ZIPファイルのアップロード
マニュフェストJsonの作成が終わったら、S3にバケットを作成しアップロードします。

Systems Manager Distributorパッケージの作成
Systems Manager Distributorを開き[パッケージの作成]をクリックします。



バージョン名の部分はJSONファイルに記載した "version": "3.0.23-1", と完全一致している必要があります。
ステータスが Activeになれば作成完了です。
Systems Manager Distributorによるインストール
出来上がったパッケージを選択し「インストールする」を選びます。


Run Commandの画面に遷移するので、インストール対象のインスタンスを選択し、実行をクリックします。

動かない。
現時点では、まだドキュメントが少なくエラーが発生してもトラブルシューティングを行う事ができません。
AWSドキュメントでより具体的なドキュメントが出てくることを待ちましょう。



