ansible-edda/playbooks/roles/music/org/tasks/main.yml

117 lines
3.7 KiB
YAML

---
- name: "ensure beets is not installed via apt"
ansible.builtin.apt:
name: "beets"
state: "absent"
autoremove: true
purge: true
- name: "install pipx"
ansible.builtin.apt:
name: "pipx"
- name: "install beets"
community.general.pipx:
name: "beets==2.0.0"
install_deps: true
system_site_packages: true
become_user: "{{ music_user_name }}"
- name: "install other utils"
ansible.builtin.apt:
name:
- "ffmpeg"
- "flac"
- "sqlite3"
- "unzip"
- name: "install nextcloud-upload"
ansible.builtin.copy:
src: "./nextcloud-upload"
dest: "/usr/local/bin/nextcloud-upload"
mode: 0755
- name: "resolve nextcloud-upload via hosts file (inet)"
ansible.builtin.lineinfile:
path: "/etc/hosts"
line: "{{ music_org_nextcloud_inet_address }} {{ music_user_nextcloud_domain }}"
insertafter: "EOF"
- name: "resolve nextcloud-upload via hosts file (inet6)"
ansible.builtin.lineinfile:
path: "/etc/hosts"
line: "{{ music_org_nextcloud_inet6_address }} {{ music_user_nextcloud_domain }}"
insertafter: "EOF"
- block:
- name: "create beets config directory"
ansible.builtin.file:
path: "{{ music_user_home_directory }}/.config/beets"
state: "directory"
owner: "{{ music_user_name }}"
group: "{{ music_user_name }}"
mode: 0755
- name: "create beets convert directory"
ansible.builtin.file:
path: "/var/tmp/{{ music_user_name }}/mp3"
state: "directory"
owner: "{{ music_user_name }}"
group: "{{ music_user_name }}"
mode: 0755
- name: "configure common beets config"
ansible.builtin.blockinfile:
path: "{{ music_user_home_directory }}/.config/beets/{{ item }}.yaml"
create: true
mode: 0644
insertafter: "EOF"
marker: "# {mark} ANSIBLE MANAGED BLOCK COMMON"
block: "{{ lookup('ansible.builtin.template', './beets-common.yml') }}"
with_items:
- "config"
- "archive"
- name: "configure beets for collection"
ansible.builtin.blockinfile:
path: "{{ music_user_home_directory }}/.config/beets/config.yaml"
insertbefore: "BOF"
marker: "# {mark} ANSIBLE MANAGED BLOCK COLLECTION"
block: "{{ lookup('ansible.builtin.template', './beets-collection.yml') }}"
- name: "configure beets for archive"
ansible.builtin.blockinfile:
path: "{{ music_user_home_directory }}/.config/beets/archive.yaml"
insertbefore: "BOF"
marker: "# {mark} ANSIBLE MANAGED BLOCK ARCHIVE"
block: "{{ lookup('ansible.builtin.template', './beets-archive.yml') }}"
- name: "create nextcloud-upload config directory"
ansible.builtin.file:
path: "{{ music_user_home_directory }}/.config/nextcloud-upload"
state: "directory"
owner: "{{ music_user_name }}"
group: "{{ music_user_name }}"
mode: 0755
- name: "configure nextcloud-upload for music"
ansible.builtin.template:
src: "./nextcloud-upload.yml"
dest: "{{ music_user_home_directory }}/.config/nextcloud-upload/config.yml"
mode: 0644
vars:
music_user_nextcloud_user: "{{ music_user_nextcloud_music_user }}"
music_user_nextcloud_pswd: "{{ music_user_nextcloud_music_pswd }}"
- name: "configure nextcloud-upload for videos"
ansible.builtin.template:
src: "./nextcloud-upload.yml"
dest: "{{ music_user_home_directory }}/.config/nextcloud-upload/videos.yml"
mode: 0644
vars:
music_user_nextcloud_user: "{{ music_user_nextcloud_videos_user }}"
music_user_nextcloud_pswd: "{{ music_user_nextcloud_videos_pswd }}"
become_user: "{{ music_user_name }}"