mirror of
https://gitlab.sectorq.eu/jaydee/ansible.git
synced 2025-01-23 20:39:26 +00:00
156 lines
5.4 KiB
YAML
156 lines
5.4 KiB
YAML
|
- hosts: rhasspy
|
||
|
name: Install rhasspy
|
||
|
become: true
|
||
|
become_user: root
|
||
|
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:
|
||
|
src: /etc/ansible/playbooks/files/conf/rhasspy/profile.json
|
||
|
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
|
||
|
- name: Install pip modules
|
||
|
ansible.builtin.pip:
|
||
|
name: docker
|
||
|
|
||
|
- 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"
|