broadcast/install.yaml

118 lines
4.3 KiB
YAML
Raw Normal View History

2023-11-10 02:01:19 -05:00
- name: Install Broadcast
hosts: Lothlorien
tasks:
- name: Create Broadcast bedroom speaker audio Docker volume directory
become: true
ansible.builtin.file:
path: /data/broadcast-bedroom-speaker-audio
state: directory
- name: Create Broadcast bedroom speaker audio Docker volume
community.docker.docker_volume:
volume_name: broadcast-bedroom-speaker-audio
driver: local
driver_options:
type: none
o: bind
device: /data/broadcast-bedroom-speaker-audio
- name: Create temporary Docker build directory for broadcast-player
ansible.builtin.tempfile:
state: directory
register: docker_build_dir
- name: Copy Docker build directory
ansible.builtin.copy:
src: player/
dest: '{{docker_build_dir.path}}'
mode: preserve
- name: Build broadcast-player Docker image
ansible.builtin.docker_image:
build:
path: '{{docker_build_dir.path}}'
name: broadcast-player
tag: latest
source: build
force_source: true
state: present
- name: Remove temporary Docker build directory
become: true
ansible.builtin.file:
path: '{{docker_build_dir.path}}'
state: absent
- name: Create temporary Docker build directory for broadcast-ntfy-router
ansible.builtin.tempfile:
state: directory
register: docker_build_dir
- name: Copy Docker build directory
ansible.builtin.copy:
src: ntfy_router/
dest: '{{docker_build_dir.path}}'
mode: preserve
- name: Build broadcast-ntfy-router Docker image
ansible.builtin.docker_image:
build:
path: '{{docker_build_dir.path}}'
name: broadcast-ntfy-router
tag: latest
source: build
force_source: true
state: present
- name: Remove temporary Docker build directory
become: true
ansible.builtin.file:
path: '{{docker_build_dir.path}}'
state: absent
2023-11-10 02:01:19 -05:00
- name: Read homelab config
ansible.builtin.slurp:
src: '{{ansible_user_dir}}/.homelab.json'
register: homelab_config_file
- name: Set homelab_config variable
ansible.builtin.set_fact:
homelab_config: '{{homelab_config_file.content|b64decode|from_json}}'
- name: Insert into Postgres table service
community.postgresql.postgresql_query:
login_host: '{{homelab_config.database.host}}'
login_user: '{{homelab_config.database.user}}'
login_password: '{{homelab_config.database.password}}'
db: '{{homelab_config.database.name}}'
query: 'INSERT INTO service (name, host, source, config) VALUES (%s, %s, %s, %s) ON CONFLICT DO NOTHING;'
positional_args:
- '{{item.name}}'
- '{{item.host}}'
- '{{item.source}}'
- '{{item.config}}'
with_items:
- {name: broadcast, host: '{{ansible_hostname}}', source: gitea/ashish/broadcast/master, config: null}
- name: Insert into Postgres table service_port
community.postgresql.postgresql_query:
login_host: '{{homelab_config.database.host}}'
login_user: '{{homelab_config.database.user}}'
login_password: '{{homelab_config.database.password}}'
db: '{{homelab_config.database.name}}'
query: 'INSERT INTO service_port (service, port, domain, reverse_proxy, reverse_proxy_port) VALUES (%s, %s, %s, %s, %s) ON CONFLICT DO NOTHING;'
positional_args:
- '{{item.service}}'
- '{{item.port}}'
- '{{item.domain}}'
- '{{item.reverse_proxy}}'
- '{{item.reverse_proxy_port}}'
with_items:
- {service: broadcast, port: 10000, domain: null, reverse_proxy: null, reverse_proxy_port: null}
- {service: broadcast, port: 10001, domain: null, reverse_proxy: null, reverse_proxy_port: null}
- name: Insert into Postgres table service_data
community.postgresql.postgresql_query:
login_host: '{{homelab_config.database.host}}'
login_user: '{{homelab_config.database.user}}'
login_password: '{{homelab_config.database.password}}'
db: '{{homelab_config.database.name}}'
query: 'INSERT INTO service_data (service, data_name, storage_type, source) VALUES (%s, %s, %s, %s) ON CONFLICT DO NOTHING;'
positional_args:
- '{{item.service}}'
- '{{item.data_name}}'
- '{{item.storage_type}}'
- '{{item.source}}'
with_items:
- {service: broadcast, data_name: bedroom_speaker_audio, storage_type: docker, source: broadcast-bedroom-speaker-audio}