はじめに
概要
公式Busterイメージをインストールしたラズパイに対して
4GPiセットアップの手順を2つ紹介します。
A. curlを使って4GPiのセットアップ
B. ansibleを使って4GPiのセットアップ
4GPiとは?
4GPi(フォージーパイ)は、ラズベリーパイ専用に開発された4G(LTE)通信モジュールです。
4GPiの用途の一例を以下記事で紹介しております。
Stretch 版 4GPi のイメージから Buster へのアップグレード~4GPiを使うメリット~
必要なもの
◎ ラズベリーパイ用4G(LTE)通信モジュール「4GPi」
◎ ACアダプタ(12V 2A)
◎ 標準SIM(私の場合は"NanoSIM" + "標準SIMへの変換アダプタ"で対応)
◎ ラズパイ
◎ パソコン
◎ MicroSDカード
取り付け手順・機器の画像・補足事項はStretch 版 4GPi のイメージから Buster へのアップグレード~必要な物~で紹介しておりますのでそちらを参照ください!
前回の記事では、ラズパイにHDMIで直接ディスプレイを接続していましたが今回はパソコンからsshでラズパイに接続します。
下準備(Busterをラズパイにインストール)
公式Busterイメージのダウンロード
公式サイトからBusterのイメージをダウンロードします。
https://www.raspberrypi.org/downloads/raspbian/
イメージを3種類の中から選べますが、どのイメージでも問題ありません。
私は軽量な「Raspbian Buster Lite」をダウンロードしました。
OSイメージをMicroSDカードへ書き込み
zipファイルのままMicoSDカードにコピーしただけではラズパイはOSを読み込むことができません。
ラズパイが読み取れるように書き込みソフトを利用しましょう。
今回は有名な書き込みソフト「Etcher」を使用しました。
書き込み手順はこちら
##ssh接続用のWiFi設定ファイルをbootフォルダ直下に配置
SDカードに展開されたbootフォルダ直下にSSIDとパスワードを記載したwpa_supplicant.confを配置します。
これにより、ラズパイにWiFiを設定できます。
[
wpa_supplicant.conf内は以下のように記載にします。
※ssid名とパスワードはご自身のWiFiの値を適応ください。
country=JP
update_config=1
ctrl_interface=/var/run/wpa_supplicant
network={
scan_ssid=1
ssid="ssid名"
psk="パスワード"
}
##sshの許可のフォルダを配置
root直下に「ssh」という名前のフォルダを新規作成してください。
これでラズパイへssh通信が可能となります。
##ラズパイとssh接続
ラズパイにSDカードを挿入後、電源投入します。
数十秒後、下記コマンドを使用してパソコンからラズパイへssh接続します。
ssh pi@raspberrypi.local
初期パスワードは「raspberry」です。
※セキュリティを考慮して初期パスワードは早めに変更しましょう。
A. curlを使って4GPiのセットアップ
##4GPiのインストール
4GPiのパッケージを更新用にリポジトリを追加します。
curl https://mechatrax.github.io/setup.sh | sudo bash
curl(Client for URLs)は、URL先のデータをプロトコルを用いて送受信するコマンドです。
対応プロトコルはHTTP、HTTPS、FTP、FTPS、SCP、SFTP、TFTP、DICT、TELNET、LDAP、FILEなど多数あります。
今回curlはデータをダウンロードする目的で使用します。
次に4GPiのツールをインストールします。
sudo apt install 4gpi-utils 4gpi-net-mods 4gpi-networkmanager
パッケージをアップデートしましょう。
sudo apt update
sudo apt upgrade
4GPiのソフトウェアが入っているか確認しましょう。
dpkg -l | grep 4gpi
##SIMカードの情報を登録
各SIMカードで開示されているAPNを設定します。
sudo nmcli con add type gsm ifname "*" con-name 「接続名」 apn 「APN」 user 「ユーザー」 password 「パスワード」
「接続名」は任意の名称を付けてください。
「APN」,「ユーザー」,「パスワード」は各SIM会社のサイトを参照ください。
※0SIMのAPNははこちら
0SIMの場合は以下のように設定します。
sudo nmcli con add type gsm ifname "*" con-name 0sim apn so-net.jp user nuro password nuro
設定を反映するために再起動します。
sudo reboot
再起動後は再びssh接続し、SIMカードが通信できているかを確認しましょう。
sudo ifconfig wwan0
inetにアドレスが表示されていればOKです。
B. ansibleを使って4GPiのセットアップ
ラズパイとssh接続まで手順を進めてください。
ansibleのインストール
ansibleのインストールのためPythonのpipをインストールします。
sudo apt-get install python-pip
ansibleをインストールします。
sudo pip install ansible
ansibleとは構成管理ツールです。
例えば複数台のラズパイを同じパッケージの構成(パッケージ数は100個)でセットアップするとします。
1つ1つを手作業でパッケージをインストールするのは手間ですし、ミスが生じる可能性があります。
しかし、ansibleでは設定ファイルに複数パッケージを記載することで、まとめてインストールできます。
ansibleの設定ファイルを最初に1つ作っておけば同じ構成のラズパイを量産できます。
注意ですが、ansibleはWindows内のインストールをサポートしておりませんので、linux環境で実行しましょう。
(私はここで1時間は浪費しました・・・)
ansible playbookによる環境構築
今回はホスト側であるラズパイから直接実行しています。
また、別PCからラズパイへリモート(ssh接続)でansible-playbookを実行してもセットアップが可能です。
playbookをダウンロードするためgitをインストールします。
sudo apt-get install git
メカトラックス様が公開しているGitHubよりplaybookのデータをインストールします。
git clone https://github.com/mechatrax/ansible-mechatrax-playbook.git
インストール後のフォルダに移動します。
cd ansible-mechatrax-playbook/
hostsのデータを変更します。
vi hosts
を「raspberrypi.local」から「localhost」へ変更します。
[raspi]
localhost
[raspi:vars]
ansible_ssh_user=pi
ansible_ssh_pass=raspberry
sshpassをインストールします。
sudo apt-get install sshpass
playbookを実行します。
ansible-playbook -i hosts 4gpi.yml
インストール完了後はssh接続が一度切断されるので再度ssh接続し、
4GPiがインストールできているかを確認します。
dpkg -l | grep 4gpi
と打って、以下のように表示されていれば無事インストールされています。
ii 4gpi-net-mods 1.0.0 all Network configuration for 4GPi
ii 4gpi-networkmanager 1.0.1 all NetworkManager settings for 4GPi
ii 4gpi-utils 1.0.1 all Utilities for 4GPi family
##SIMカードの情報を登録
各SIMカードで開示されているAPNを設定します。
0SIMの場合は以下のように設定します。
sudo nmcli con add type gsm ifname "*" con-name 0sim apn so-net.jp user nuro password nuro
設定を反映するために再起動します。
sudo reboot
再起動後は再びssh接続し、SIMカードが通信できているかを確認しましょう。
sudo ifconfig wwan0
inetにアドレスが表示されていればOKです。
以上で設定完了です!