AnsibleでAWS IoT Greengrass CoreをRaspberry Pi上にインストールする

RaspbianにAWS IoT Greengrass Coreをインストールする手順をAnsible化しました。

github.com

処理の元ネタ

Qiita側に書いたこの記事の内容です。

qiita.com

前提

  • piユーザにSSHでパスワード認証でアクセス可能であること
  • Ansibleがインストールされていること
  • sshpassがインストールされていること

リポジトリの取得

git clone https://github.com/yomon8/ansible-raspberrypi-greengrass-core.git
cd ansible-raspberrypi-greengrass-core

変数の設定

以下のワンライナーで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}'

変数をexportします。

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


# Greengrass設定
export AWS_REGION=ap-northeast-1
export GG_GROUP_NAME=my-pi-grp
export GG_CORE_NAME=my-pi-core

# Raspberry Pi設定
export RPI_IP=192.168.1.4 

Ansible実行

以下のスクリプトからAnsibleが実行できます。変数のExportが漏れているとエラーになります。

/bin/bash install.sh
SSH password: