--- - name: Install and setup Server for media acqusition hosts: all become: true become_user: root vars: pip_install_packages: - name: Docker nfs_host: 192.168.0.109 nfs_options: "auto,nofail,noatime,nolock,intr,tcp,actimeo=1800,x-systemd.automount" nfs_mounts: - remote_path: /export/Movies local_path: /mnt/storage/movies - remote_path: /export/TVShows local_path: /mnt/storage/tv - remote_path: /export/Scripts local_path: /mnt/scripts roles: - geerlingguy.pip - geerlingguy.docker tasks: - name: Install system packages ansible.builtin.package: name: "{{ item }}" state: present loop: - curl - git - tree - vim - docker-ce - docker-ce-cli - docker-compose - nfs-common - name: Mount NFS Volumes ansible.posix.mount: src: "{{ nfs_host }}:{{ item.remote_path }}" path: "{{ item.local_path }}" fstype: nfs opts: "{{ nfs_options }}" boot: true state: mounted loop: "{{ nfs_mounts | flatten }}" - name: Update and upgrade apt packages ansible.builtin.apt: upgrade: true update_cache: true cache_valid_time: 86400 - name: Create Dockeruser and Add to Docker Group ansible.builtin.user: name: "{{ item.user }}" shell: "{{ item.shell }}" groups: "{{ item.groups }}" loop: - {user: "dockeruser", shell: "/bin/bash", groups: "docker"} # zware user should already exist when this is run, # most likely needs ot happen in a cloud init step # - {user: "zware", # shell: "/bin/zsh", # groups: "sudo,docker"} - name: Copy docker-compose ansible.builtin.copy: src: "{{ item.src }}" dest: "{{ item.dest }}" owner: dockeruser group: dockeruser mode: "{{ item.mode }}" backup: true loop: - {src: "files/docker-compose.yaml", dest: "/opt/docker-compose.yaml", mode: "0644"} - {src: "files/environmnet", dest: "/opt/.env", mode: "0600"} - name: Start containers community.docker.docker_compose: project_src: /opt/