- name: Basic setup tasks for Raspberry Pi hosts: raspberrypi become: true tasks: - name: Add local ssh key ansible.posix.authorized_key: user: "{{ ansible_user }}" state: present # copy file present on the controller to the remote host # https://docs.ansible.com/ansible/latest/collections/ansible/builtin/copy_module.html key: "{{ lookup('file', '~/.ssh/default.pub') }}" - name: apt update all packages apt: update_cache: yes upgrade: yes - name: Install required packages apt: name: - git - python3-pipenv - python3-dev - python3-setuptools - python3-rpi.gpio - python3-spidev state: present - name: Enable SPI and I2C interfaces lineinfile: path: /boot/config.txt regexp: "^#?(dtparam=i2c_arm|dtparam=spi)" line: "{{ item }}" state: present with_items: - "dtparam=i2c_arm=on" - "dtparam=spi=on" - name: Reboot the Raspberry Pi reboot: delay: 5 connect_timeout: 20 reboot_timeout: 300 - name: Wait for the Raspberry Pi to reboot wait_for_connection: delay: 5 timeout: 300 - name: Add wifi networks from secrets template: src: templates/wpa_supplicant.conf.j2 dest: /etc/wpa_supplicant/wpa_supplicant.conf owner: root group: root mode: 0600