LoginSignup
0
1

More than 3 years have passed since last update.

AWS IoT Greengrass CoreをRaspberry Piにサイレントインストールする手順

Last updated at Posted at 2020-09-09

こちらにある gg-device-setup-latest.sh スクリプトを利用します。サイレントインストールの元情報もここを参考にしています。

以下の項目を組み合わせてサイレントインストールします。

事前準備

SSHを有効化して、作業フォルダを作成します。

mkdir ~/work
cd ~/work

作業PC側で、以下のワンライナーでAWS認証情報を取得します。

aws sts get-session-token --query 'Credentials | {A:AccessKeyId,B:SecretAccessKey,C:SessionToken}' --output yaml | awk  'NR==1{print "export AWS_ACCESS_KEY_ID="$2} NR==2{print "export AWS_SECRET_ACCESS_KEY="$2} NR==3{print "export AWS_SESSION_TOKEN="$2}'

変数の設定

# ワンライナーで取得したAWS認証情報
export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
export AWS_SESSION_TOKEN=AQoDYXdzEJr1K...o5OytwEXAMPLE=

# 以下は適当に調整します
MAC_ADDR=$(ethtool -P eth0 | cut -d" " -f3 | tr -d :)
export GG_GROUP_NAME=otomo-pi-grp-${MAC_ADDR}
export GG_CORE_NAME=otomo-pi-core--${MAC_ADDR}
export AWS_REGION=ap-northeast-1

OS設定とConfigの生成

wget -q -O ./gg-device-setup-latest.sh https://d1onfpft10uf5o.cloudfront.net/greengrass-device-setup/downloads/gg-device-setup-latest.sh && chmod +x ./gg-device-setup-latest.sh && sudo -E ./gg-device-setup-latest.sh bootstrap-greengrass \
--region ${AWS_REGION} \
--group-name ${GG_GROUP_NAME} \
--core-name ${GG_CORE_NAME} \
--ggc-root-path / --log-path ./ --deployment-timeout 300  \
--verbose

スクリプトが完了した時点で、以下のように GreengrassDeviceSetup.config.info が出力されています。
image.png

cgroup等のOS設定を反映させるため再起動します。

sudo reboot

Greengrass Coreのインストール

Raspbean再度SSHにてログオンします。

# AWS認証情報の設定
export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
export AWS_SESSION_TOKEN=AQoDYXdzEJr1K...o5OytwEXAMPLE=

# ワークディレクトリに移動
cd ~/work

# プロンプトの答えのyesを流し込みスクリプトを実行
echo "yes" | sudo -E ./gg-device-setup-latest.sh bootstrap-greengrass

以下のように表示されればインストール完了です。

image.png

[Option] Python3.7のgreengrasssdkインストール

greengrasssdkは初期では導入されてないので、必要に応じてインストールします。

curl -kL https://bootstrap.pypa.io/get-pip.py | sudo python3.7
sudo pip3.7 install greengrasssdk

[Option] systemdの設定

以下のコマンドでGreengrass Coreをサービス化します。

# systemdの設定を投入
cat <<EOF | sudo tee /etc/systemd/system/greengrassd.service
[Unit]
Description=Greengrass Daemon

[Service]
Type=forking
PIDFile=/var/run/greengrassd.pid
Restart=on-failure
ExecStart=/greengrass/ggc/core/greengrassd start
ExecReload=/greengrass/ggc/core/greengrassd restart
ExecStop=/greengrass/ggc/core/greengrassd stop

[Install]
WantedBy=multi-user.target
EOF
# サービスを有効化
sudo systemctl daemon-reload
sudo systemctl enable greengrassd.service
sudo systemctl start greengrassd.service

Ansible化

こちらの自分のブログ記事でAnsible化もしてみました。

0
1
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
0
1