boxus-plants/boxus

View on GitHub
ansible/rpi.yml

Summary

Maintainability
Test Coverage
# 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