Created ansible script to configure target controller

This commit is contained in:
2026-04-16 10:41:42 +00:00
parent 845f61e710
commit f99f174248
5 changed files with 99 additions and 0 deletions
+16
View File
@@ -0,0 +1,16 @@
# VS Code
.vscode/browse.vc.db
.vscode/browse.vc.db-shm
.vscode/browse.vc.db-wal
.vscode/c_cpp_properties.json
# colcon build artefacts
build/
install/
log/
# Python
__pycache__/
*.py[cod]
*.egg-info/
dist/
+60
View File
@@ -0,0 +1,60 @@
# Robot Setup — Ansible
Automates provisioning of the Raspbot V2 target (`raspbot-v2.local`).
## What it does
| Step | Detail |
|---|---|
| Enable SPI | Runs `raspi-config nonint do_spi 0` so the hardware interface is available at boot |
| Install Docker | Uses the [`geerlingguy.docker`](https://galaxy.ansible.com/geerlingguy/docker) role |
## Prerequisites
- Ansible installed on your local machine (`pip install ansible`)
- SSH access to `raspbot-v2.local` (key-based auth recommended)
- The target is running Raspberry Pi OS
## Configuration
Before running the playbook, set `robot_user` in `inventory.ini` to the non-root user account on the robot (i.e. the username you configured during imaging):
```ini
[raspbot:vars]
robot_user=matt
```
This user will be added to the `docker` group so that Docker commands can be run without `sudo`.
## Usage
**1. Install the required role:**
```bash
ansible-galaxy install -r ansible/requirements.yml
```
**2. Run the playbook:**
The playbook runs tasks as root (`become: true`), so Ansible needs the sudo password for the remote user. Always include `-K`:
```bash
ansible-playbook -i ansible/inventory.ini ansible/setup_robot.yml -K
```
If you haven't set up SSH key-based auth yet, also add `-k` to prompt for the SSH password:
```bash
ansible-playbook -i ansible/inventory.ini ansible/setup_robot.yml -k -K
```
The SSH user is taken from `robot_user` in `inventory.ini`, so there is no need to pass `-u` separately.
## Files
```
ansible/
├── inventory.ini # Defines the raspbot-v2.local host
├── requirements.yml # Ansible Galaxy role dependencies
└── setup_robot.yml # Main playbook
```
+5
View File
@@ -0,0 +1,5 @@
[raspbot]
raspbot-v2.local
[raspbot:vars]
robot_user=matt
+2
View File
@@ -0,0 +1,2 @@
roles:
- name: geerlingguy.docker
+16
View File
@@ -0,0 +1,16 @@
---
- name: Setup robot
hosts: raspbot
become: true
vars:
docker_users:
- "{{ robot_user }}"
pre_tasks:
- name: Enable SPI via raspi-config
command: raspi-config nonint do_spi 0
changed_when: false
roles:
- geerlingguy.docker