ansible/playbooks/05_install_rhasspy.yml

155 lines
5.4 KiB
YAML
Raw Normal View History

2022-12-14 02:23:34 +01:00
- hosts: rhasspy
name: Install rhasspy
become: true
tasks:
- name: Set a hostname
ansible.builtin.hostname:
name: rasp3-2
when: ansible_eth0.macaddress == "b8:27:eb:29:cb:d4"
- name: Set a hostname
ansible.builtin.hostname:
name: rasp3-1
when: ansible_eth0.macaddress == "b8:27:eb:53:79:11" or ansible_wlan0.macaddress == "B8:27:EB:06:2C:44"
# - name: Download package
# ansible.builtin.get_url:
# url: https://sectorq.eu/install/rhasspy_amd64.deb
# dest: /tmp/rhasspy_amd64.deb
# mode: '0777'
- name: Get keys for raspotify
ansible.builtin.shell:
curl -sSL https://dtcooper.github.io/raspotify/key.asc | sudo tee /usr/share/keyrings/raspotify_key.asc > /dev/null
changed_when: false
- name: Get keys for raspotify
ansible.builtin.file:
path: /usr/share/keyrings/raspotify_key.asc
mode: "0644"
- name: Get repo
ansible.builtin.shell: >-
echo 'deb [signed-by=/usr/share/keyrings/raspotify_key.asc] https://dtcooper.github.io/raspotify raspotify main' |
sudo tee /etc/apt/sources.list.d/raspotify.list
changed_when: false
- name: Update apt cache
ansible.builtin.apt:
update_cache: true
upgrade: true
ignore_errors: true
- name: Install curl,mosquitto ...
ansible.builtin.apt:
name:
- curl
# - libffi7
- apt-transport-https
- raspotify
- mosquitto
- python3-pip
state: present
- name: Reconfigure /etc/raspotify/conf
ansible.builtin.lineinfile:
path: /etc/raspotify/conf
regexp: "{{ item.regexp }}"
line: "{{ item.line }}"
loop:
- { regexp: '(^|^#)LIBRESPOT_NAME=', line: 'LIBRESPOT_NAME="rasp3-2"' }
- { regexp: '(^|^#)LIBRESPOT_BITRATE=', line: 'LIBRESPOT_BITRATE="160"' }
- { regexp: '(^|^#)LIBRESPOT_DEVICE=', line: 'LIBRESPOT_DEVICE="hw:CARD=Device,DEV=0"' }
- { regexp: '(^|^#)LIBRESPOT_PASSWORD=', line: 'LIBRESPOT_PASSWORD="l4c1j4yd33Du5lo"' }
- { regexp: '(^|^#)LIBRESPOT_USERNAME=', line: 'LIBRESPOT_USERNAME="jaydee67@sectorq.eu"' }
when: ansible_eth0.macaddress == "b8:27:eb:29:cb:d4"
- name: Reconfigure /etc/raspotify/conf
ansible.builtin.lineinfile:
path: /etc/raspotify/conf
regexp: "{{ item.regexp }}"
line: "{{ item.line }}"
loop:
- { regexp: '(^|^#)LIBRESPOT_NAME=', line: 'LIBRESPOT_NAME="rasp3-1"' }
- { regexp: '(^|^#)LIBRESPOT_BITRATE=', line: 'LIBRESPOT_BITRATE="160"' }
- { regexp: '(^|^#)LIBRESPOT_DEVICE=', line: 'LIBRESPOT_DEVICE="hw:CARD=Device,DEV=0"' }
- { regexp: '(^|^#)LIBRESPOT_PASSWORD=', line: 'LIBRESPOT_PASSWORD="l4c1j4yd33Du5lo"' }
- { regexp: '(^|^#)LIBRESPOT_USERNAME=', line: 'LIBRESPOT_USERNAME="jaydee67@sectorq.eu"' }
when: ansible_eth0.macaddress == "b8:27:eb:53:79:11"
# - name: Creating a symlink for libs
# ansible.builtin.file:
# src: "/usr/lib/aarch64-linux-gnu/libffi.so.7"
# dest: "/usr/lib/aarch64-linux-gnu/libffi.so.6"
# state: link
# - name: Install a rhasspy_amd64.deb
# ansible.builtin.apt:
# deb: /tmp/rhasspy_amd64.deb
# - name: Upload config
# ansible.builtin.copy:
# src: /etc/ansible/playbooks/files/services/rhasspy.service
# dest: /etc/systemd/system/rhasspy.service
# owner: root
# group: root
# mode: u=rwx,g=rx,o=rx
# - name: Just force systemd to reread configs (2.4 and above)
# ansible.builtin.systemd:
# daemon_reload: true
# - name: Restart service rhasspy, in all cases
# ansible.builtin.service:
# name: rhasspy
# state: restarted
# - name: Ensure rhasspy is in a running state
# ansible.builtin.service:
# name: rhasspy
# state: started
# register: myservice_details
# until: myservice_details.status.ActiveState == "active"
# retries: 15
# delay: 20
- name: Make sure destination dir exists
ansible.builtin.file:
path: "/home/jd/.config/rhasspy/profiles/en/"
state: directory
owner: jd
group: jd
mode: '0755'
- name: Upload config
ansible.builtin.copy:
2024-09-20 14:56:09 +02:00
src: conf/rhasspy/profile.json
2022-12-14 02:23:34 +01:00
dest: /home/jd/.config/rhasspy/profiles/en/profile.json
owner: jd
group: jd
mode: u=rw,g=r,o=r
- name: Restart service raspotify, in all cases
ansible.builtin.service:
name: raspotify
state: restarted
- name: Install docker
ansible.builtin.shell:
curl -sSL https://get.docker.com | sh
ignore_errors: true
changed_when: false
- name: Add user to docker group
ansible.builtin.user:
name: jd
append: true
groups: docker
2024-09-20 14:56:09 +02:00
# - name: Install pip modules
# ansible.builtin.pip:
# name: docker
2022-12-14 02:23:34 +01:00
- name: Pull image
community.docker.docker_image:
name: rhasspy/rhasspy
source: pull
- name: Create container
community.docker.docker_container:
name: rhasspy
image: rhasspy/rhasspy
command: --user-profiles /profiles --profile en
devices:
- "/dev/snd:/dev/snd"
restart_policy: unless-stopped
volumes:
- "/etc/localtime:/etc/localtime:ro"
- "/home/jd/.config/rhasspy/profiles:/profiles"
ports:
- "12101:12101"