Open3

Ansible

student-opsstudent-ops

やっとことまとめ

docker のスクラッチイメージに rapios のルートファイルシステムを載せて動かそうとするも、恐らくアーキテクチャの問題で exec formt error

gpt 解答

Apple Silicon Mac は ARM アーキテクチャを使用していますが、Docker Desktop for Mac は現在、ARM アーキテクチャの Linux イメージを直接実行することはサポートしていません。代わりに、Docker Desktop for Mac は QEMU を使用して ARM アーキテクチャの Linux イメージをエミュレートします。

しかし、このエミュレーションは完全ではなく、特にシステムコールやハードウェアアクセスに関連する部分で問題が発生することがあります。これが exec format error というエラーの原因です。

この問題を解決するためには、以下のような手段が考えられます:

Raspberry Pi OS の代わりに、ARM アーキテクチャをサポートしている他の Linux ディストリビューション(例えば Ubuntu)を使用する。
Docker ではなく、Apple Silicon Mac 上でネイティブに動作する仮想化ソフトウェア(例えば Parallels Desktop)を使用して Raspberry Pi OS を実行する。
Raspberry Pi 本体を使用して Docker コンテナを実行する。
これらの選択肢の中から最適なものを選んでいただくか、または他に何か特定の要望があればお知らせください。

ansible install

docker 上で ubuntu を起動。

on ubuntu dir

id ansible:コンテナ内で実行するコマンドです。id コマンドは、指定したユーザー(この場合は ansible)のユーザー ID、グループ ID、その他の詳細を表示します。

ansible-playbook -i inventory.ini playbook.yml

docker exec -it ansible_testbed id ansible
student-opsstudent-ops

間違ったrapios のルートファイルシステムを使用していた!

armf ではなくarm64。変更後正しく動作!!