fpiesche.raspi_setup
ansible-role-raspi-setup
Raspberry Piホストのグループに対して基本的なセットアップを行うためのAnsibleロールです。ヘッドレスマシンでの使用を目的としています。
Raspberry Pi OSの新しいインストールで、SSHだけが有効になっている状態で実行すると、このロールを使用して以下のことを行うことができます(初回起動前にSDカードのboot
パーティションに空のssh
というファイルを追加してください!):
- Ansibleインベントリに指定されたホスト名、または
local_hostname
という変数の値に合わせてhostname
を設定する config_settings
という変数から、各Raspberry Piのconfig.txt
にさまざまなオプションを設定するauthorized_keys
という変数から、パスワードなしでログインするためのpi
ユーザーの認証済みSSHキーを追加するpi_password
という変数から、pi
ユーザーのデフォルトパスワードを変更する
ステップをスキップしたい場合は、関連する変数を未設定のままにしておいてください。
このロールは、SSHアクセスをロックダウンし、パスワードログインを禁止するためのセキュリティ強化を行うdev-sec.ssh-hardening
ロールと組み合わせることをお勧めします。また、sshdのデフォルト設定に対して他のさまざまなセキュリティ向上を行います。
さらに、必要に応じてgeerlingguy.swap
を使用してスワップファイルを設定することもできます!
例のプレイブック
メインプレイブック playbook.yml
- hosts: raspis
roles:
# このロールは指定されたキーのためにパスワードなしのSSHを自動的に設定し、
# ホストインベントリから渡されたconfig.txtの設定をカスタマイズします。
- role: fpiesche.raspi_setup
vars:
# これらの値はすべてのRaspberry Piのデフォルトですが、
# 各ホストごとに上書き可能です。
authorized_keys: ["{{ lookup('file', lookup('env', 'HOME') + '/.ssh/id_rsa.pub') }}",
"/home/otheruser/.ssh/id_rsa.pub",
"ssh-rsa ..."]
# `pi_password`変数はハッシュ化されたパスワードでなければなりません。
pi_password: "{{ raspberry | password_hash('sha512') }}"
# 推奨: このロールはSSHアクセスをロックダウンし、パスワードログインを禁止します。
# デフォルトのSSH設定に対する他のセキュリティ向上を行います。
# https://github.com/dev-sec/ansible-ssh-hardening
- role: dev-sec.ssh-hardening
become: yes
# オプション: `swap_megabytes`ホスト変数を使用してスワップファイルを設定します。
# https://github.com/geerlingguy/ansible-role-swap
- role: geerlingguy.swap
become: yes
インベントリ hosts.yml
以下は、私が様々なバージョンのPiのDockerクラスターに使用しているhosts.ymlの一部です。
---
all:
children:
raspis:
vars:
ansible_python_interpreter: /usr/bin/python3
ansible_user: pi
ansible_password: raspberry
hosts:
pi-1-a.local:
# このPiの`pi`ユーザーのために異なるパスワードを設定します。
pi_password: "{{ pi1-password | password_hash('sha512') }}"
# config_settingsセクションの内容は自動的に
# このPiのconfig.txtに設定され、システムはその後再起動されます。
config_settings:
- name: "gpu_mem"
value: 16
# Raspberry Pi 1のオーバークロック設定は
# https://haydenjames.io/raspberry-pi-safe-overclocking-settings/ から取得しました。
- name: "arm_freq"
value: 1000
- name: "sdram_freq"
value: 500
- name: "core_freq"
value: 500
- name: "over_voltage"
value: 6
- name: "temp_limit"
value: 75
# これはJeff Geerlingの`geerlingguy.swap`ロールに使用され、1GBのスワップファイルを設定します。
# https://github.com/geerlingguy/ansible-role-swap
swap_file_size_mb: 1024
pi-2.local:
pi_password: "{{ pi2-password | password_hash('sha512') }}"
local_hostname: that-other-one
config_settings:
- name: "gpu_mem"
value: 16
# Raspberry Pi 2のオーバークロック設定は
# https://wiki.debian.org/RaspberryPi#Overclocking_Pi_2 から取得しました。
- name: "arm_freq"
value: 1000
- name: "core_freq"
value: 500
- name: "sdram_freq"
value: 400
- name: "over_voltage"
value: 0
- name: "over_voltage_sdram_p"
value: 0
- name: "over_voltage_sdram_i"
value: 0
- name: "over_voltage_sdram_c"
value: 0
- name: "temp_limit"
value: 75
swap_file_size_mb: 1024
プロジェクトについて
Perform basic setup for headless use on newly deployed Raspberry Pi OS installations
インストール
ansible-galaxy install fpiesche.raspi_setup
ライセンス
Unknown
ダウンロード
382
所有者