Updates for Raspberry Pi 12 Bookworm
This commit is contained in:
175
roles/Vergil/tasks/main.yml
Normal file
175
roles/Vergil/tasks/main.yml
Normal file
@@ -0,0 +1,175 @@
|
||||
---
|
||||
|
||||
- name: Geth-Hub packages
|
||||
become: yes
|
||||
package:
|
||||
name:
|
||||
- motion
|
||||
- lirc
|
||||
- snmpd
|
||||
- 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
|
||||
when: ansible_distribution_major_version == 11
|
||||
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
|
||||
when: ansible_distribution_major_version == 11
|
||||
lineinfile:
|
||||
path: "/boot/config.txt"
|
||||
regexp: "camera_auto_detect"
|
||||
line: "# camera_auto_detect=1"
|
||||
|
||||
# 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
|
||||
when: ansible_distribution_major_version == 12
|
||||
blockinfile:
|
||||
path: "/boot/firmware/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
|
||||
when: ansible_distribution_major_version == 12
|
||||
lineinfile:
|
||||
path: "/boot/firmware/config.txt"
|
||||
regexp: "camera_auto_detect"
|
||||
line: "# camera_auto_detect=1"
|
||||
|
||||
- name: Set the dtparam
|
||||
become: yes
|
||||
register: dtparam
|
||||
lineinfile:
|
||||
path: "/boot/firmware/config.txt"
|
||||
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 }}"
|
||||
force: no
|
||||
# TODO: -- need a switch on the version of the RPi image
|
||||
loop:
|
||||
- hardware.conf
|
||||
- lirc_options.conf
|
||||
|
||||
- name: Copy lircd remote config
|
||||
register: lircd_remote_config
|
||||
become: yes
|
||||
copy:
|
||||
src: "lircd.conf/{{ remote }}"
|
||||
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
|
||||
|
||||
|
||||
- name: SNMPD config
|
||||
become: yes
|
||||
template:
|
||||
src: snmpd.conf.j2
|
||||
dest: /etc/snmp/snmpd.conf
|
||||
|
||||
- name: SNMPD service
|
||||
become: yes
|
||||
service:
|
||||
name: snmpd
|
||||
state: restarted
|
||||
enabled: yes
|
Reference in New Issue
Block a user