--- - name: Geth-Hub packages become: yes package: name: - motion - lirc - libcamera-apps - ir-keytable state: present update_cache: yes - name: Copy the SSH key authorized_key: user: "{{ ansible_user_id }}" state: present key: "{{ lookup('file', lookup('env','HOME') + '/.ssh/geth.pub') }}" - name: Copy the motion config become: yes register: motion_config template: src: "motion.conf.j2" dest: "/etc/motion/motion.conf" - name: Create motion log folder become: yes file: path: "{{ item }}" state: directory owner: motion group: motion mode: 0750 loop: - "/var/log/motion" - "/var/run/motion" - name: Restart the motion service become: yes when: motion_config.changed and motion_enabled service: name: motion state: started enabled: yes - name: Allow override of motion service become: yes when: not motion_enabled service: name: motion state: stopped enabled: no # Thanks to https://wiki.geekworm.com/Raspberry_Pi_IR_Control_Expansion_Board for instructions setting up lirc - name: Set the dtoverlay become: yes register: dtoverlay blockinfile: path: "/boot/config.txt" insertafter: EOF marker: "# {mark} Ubiqtorate Managed Block" block: | dtoverlay=gpio-ir,gpio_pin={{ gpio_in_pin | default('18') }} dtoverlay=gpio-ir-tx,gpio_pin={{ gpio_out_pin | default('17') }} start_x=1 - name: Unset camera autodetect become: yes register: camera_autodetect lineinfile: path: "/boot/config.txt" regexp: "camera_auto_detect" line: "# camera_auto_detect=1" - name: Set the dtparam become: yes register: dtparam lineinfile: path: "/boot/config.txt" regexp: "^dtparam=" line: "dtparam=gpio_in_pull={{ gpio_in_pull | default('down') }}" - name: Copy the modules config become: yes register: modules_config template: src: "modules.j2" dest: "/etc/modules" - name: Copy the modules config, part 2 become: yes register: modules_config_2 template: src: "lirc_rpi.conf.j2" dest: "/etc/modprobe.d/lirc_rpi.conf" - name: Reboot if needed become: yes when: modules_config.changed or dtparam.changed or dtoverlay.changed or modules_config_2.changed or camera_autodetect.changed reboot: - name: Wait if needed become: yes when: modules_config.changed or dtparam.changed or dtoverlay.changed or modules_config_2.changed wait_for_connection: - name: Copy lircd supplemental config register: lircd_supp_config become: yes copy: src: "{{ item }}" dest: "/etc/lirc/{{ item }}" loop: - hardware.conf - lirc_options.conf - name: Copy lircd remote config register: lircd_remote_config become: yes copy: src: "lircd.conf/{{ inventory_hostname }}" dest: /etc/lirc/lircd.conf - name: Start the services when: lircd_supp_config.changed or lircd_remote_config.changed become: yes service: name: lircd state: restarted enabled: yes