Help us understand the problem. What is going on with this article?

Systems Manager Distributor によるZabbixAgent 配布管理

More than 1 year has passed since last update.

11月20日に公開されたSystems Manager Distributor を利用してZabbixAgentを配布したいと思います。

Systems Manager Distributor とは

AWS Systems Manager Distributor の新機能です。
Systems Manager の管理対象となっているマネージドインスタンスに対してパッケージ化されたソフトウェアを配布することができます。

AWSが管理している各種Agentやユーザーが独自作成したパッケージを配布できます。
2018-12-02_11h09_23.png

Systems Manager Distributorによるバージョン管理

公式リポジトリを利用したインストールでAgentのインストールを感嘆に行う事ができます。
ですが、大きな運用現場では、常に最新版のAgentではなく、検証済みのAgentでバージョン固定を行う場合があります。

Systems Manager Distributorでは、インストールパッケージの中にソフトウェアパッケージを含める事ができるため、簡単にバージョン固定を行う事ができます。

Systems Manager Distributorのパッケージ作成

公式手順を参考に作成をおこないます。

サンプルパッケージを参考にすれば作りやすいでしょう。

ZabbixAgentパッケージの作成

それでは実際にパッケージを作成します。
まずは、各OS向けのinstall/uninstall スクリプトを作成します。

Linuxの場合

install.sh
#!/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
uninstall.sh
#!/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

スクリプトとパッケージを配置し、ZIPでまとめます。
2018-12-02_13h04_15.png

Windowsの場合

install.ps1
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
uninstall.ps1
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"

2018-12-02_14h42_27.png

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...

manifest.json
{
    "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を作成してます。

manifest.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にバケットを作成しアップロードします。
2018-12-02_13h26_50.png

バージョン毎にフォルダを作成します。
2018-12-02_13h43_08.png

Systems Manager Distributorパッケージの作成

Systems Manager Distributorを開き[パッケージの作成]をクリックします。
2018-12-02_13h44_03.png
2018-12-02_13h44_45.png
image.png

バージョン名の部分はJSONファイルに記載した "version": "3.0.23-1", と完全一致している必要があります。

image.png
image.png

ステータスが Activeになれば作成完了です。

Systems Manager Distributorによるインストール

出来上がったパッケージを選択し「インストールする」を選びます。
2018-12-02_15h16_27.png
2018-12-02_15h16_32.png

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

動かない。

現時点では、まだドキュメントが少なくエラーが発生してもトラブルシューティングを行う事ができません。

AWSドキュメントでより具体的なドキュメントが出てくることを待ちましょう。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away