mirror of
https://gitlab.sectorq.eu/jaydee/ansible.git
synced 2025-07-03 00:03:05 +02:00
init
This commit is contained in:
155
playbooks/05_install_rhasspy.yml
Normal file
155
playbooks/05_install_rhasspy.yml
Normal file
@ -0,0 +1,155 @@
|
||||
- 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"
|
Reference in New Issue
Block a user