ansible/rpi.yml
# Ansible playbook for Raspberry Pi boxus host setup
---
- hosts: pi_hosts
# vars:
# http_port: 80
# max_clients: 200
# remote_user: "{{ ansible_ssh_user }}"
remote_user: pi
# vars_prompt:
# - name: ansible_ssh_user
# prompt: SSH username?
# - name: ansible_ssh_pass
# prompt: SSH user password?
tasks:
##### System-wide preparations
- name: Make sure we have a 'wheel' group
become: yes
group:
name: wheel
state: present
- name: Allow 'wheel' group to have passwordless sudo
become: yes
lineinfile:
dest: /etc/sudoers
state: present
regexp: '^%wheel'
line: '%wheel ALL=(ALL) NOPASSWD: ALL'
validate: 'visudo -cf %s'
- name: Add user 'pi' to 'gpio' group
become: yes
user:
name: pi
groups: gpio
append: yes
- name: Create your local user copy
become: yes
user:
name: "{{ lookup('env', 'USER') }}"
groups: sudo, wheel, gpio, i2c
shell: /bin/bash
state: present
- name: Create 'boxus' user
become: yes
user:
name: boxus
groups: gpio, video, i2c
shell: /bin/bash
state: present
- name: Copy vim config to 'boxus'
become: yes
copy:
src: templates/.vimrc
dest: /home/boxus/
owner: boxus
group: boxus
mode: 0644
- name: Set authorized key took from file
become: yes
authorized_key:
user: "{{ item }}"
state: present
key: "{{ lookup('file', '~/.ssh/id_rsa.pub') }}"
with_items:
- "{{ ansible_user_id }}"
- "{{ lookup('env', 'USER') }}"
- name: Install apt-get packages
become: yes
apt: "pkg={{ item }} state=installed"
with_items:
- fswebcam
- vim
- tmux
- python-smbus
- i2c-tools
- name: Copy vim config to 'pi'
copy:
src: templates/.vimrc
dest: /home/pi/
owner: pi
group: pi
mode: 0644