devlog

Raspberry Pi 5 に Ansible で Golang を入れてみた

2024-03-08

概要

  • Ansible で Raspberry Pi 5 のセットアップをしている
  • 試しに Go 1.22 を入れてみた

Raspberry Pi で遊んでいるのですが、入れてみたいものが多くあり、 環境をリセットしやすいよう Ansible でセットアップを自動化することにしました。

ディレクトリ構成

実行側の構成です。このディレクトリで ansible-playbook を走らせます

$ tree . ├── hosts.yaml └── playbook.yaml $ ansible-playbook -i hosts.yaml playbook.yaml PLAY [setup] *************************************************** // Ansible 実行

hosts

hosts.yaml に接続情報を書きます

--- all: hosts: raspberrypi: ansible_host: raspberrypi.local ansible_user: # ユーザ名 ansible_password: # パスワード

playbook

Ansible の Playbook です。とりあえず Go 1.22 を入れます

--- - name: setup hosts: all become: true tasks: - ansible.builtin.apt: update_cache: yes - ansible.builtin.file: path: '{{ ansible_env.HOME }}/workdir' state: directory recurse: yes - ansible.builtin.get_url: url: https://go.dev/dl/go1.22.0.linux-arm64.tar.gz dest: '{{ ansible_env.HOME }}/workdir/go122.tar.gz' checksum: sha256:6a63fef0e050146f275bf02a0896badfe77c11b6f05499bb647e7bd613a45a10 - ansible.builtin.unarchive: src: '{{ ansible_env.HOME }}/workdir/go122.tar.gz' dest: '/usr/local' remote_src: yes # symlink - ansible.builtin.file: src: '/usr/local/go/bin/go' dest: '/usr/local/bin/go' state: link - ansible.builtin.file: path: '{{ ansible_env.HOME }}/workdir' state: absent

実行

Ansible を実行します

$ ansible-playbook -i hosts.yaml playbook.yaml PLAY [setup] ************************************************************************************************************** TASK [Gathering Facts] **************************************************************************************************** ok: [raspberrypi] TASK [ansible.builtin.apt] ************************************************************************************************ ok: [raspberrypi] TASK [ansible.builtin.file] *********************************************************************************************** changed: [raspberrypi] TASK [ansible.builtin.get_url] ******************************************************************************************** changed: [raspberrypi] TASK [ansible.builtin.unarchive] ****************************************************************************************** changed: [raspberrypi] TASK [ansible.builtin.file] *********************************************************************************************** changed: [raspberrypi] TASK [ansible.builtin.file] *********************************************************************************************** changed: [raspberrypi] PLAY RECAP **************************************************************************************************************** raspberrypi : ok=7 changed=5 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0

確認

SSH して結果を確認します

$ go version go version go1.22.0 linux/arm64

Go 1.22 がインストールされてました

終わりに

初めてラズパイを買ってみたのですが、めちゃ安くて面白く..
早く買っておくべきだったと後悔してます

  • 作成日
    2024-03-08
  • 更新日
    2024-03-08