From 98db1a8d77f85bd2eef31c769101dc45d6e117ec Mon Sep 17 00:00:00 2001 From: djpbessems Date: Tue, 13 Jul 2021 22:04:25 +0200 Subject: [PATCH] Initial commit --- .drone.yml | 41 +++++++++++++++++ inventory.yml | 6 +++ playbook.yml | 7 +++ requirements.yml | 2 + roles/dockerhost/tasks/main.yml | 77 ++++++++++++++++++++++++++++++++ roles/mediaserver/tasks/main.yml | 37 +++++++++++++++ 6 files changed, 170 insertions(+) create mode 100644 .drone.yml create mode 100644 inventory.yml create mode 100644 playbook.yml create mode 100644 requirements.yml create mode 100644 roles/dockerhost/tasks/main.yml create mode 100644 roles/mediaserver/tasks/main.yml diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..f2dd0c6 --- /dev/null +++ b/.drone.yml @@ -0,0 +1,41 @@ +kind: pipeline +type: kubernetes +name: mediaserver + +steps: +- name: Check syntax + image: plugins/ansible:1 + environment: + cifs_username: + from_secret: cifs_username + cifs_password: + from_secret: cifs_password + settings: + playbook: playbook.yml + inventory: inventory.yml + galaxy: requirements.yml + syntax_check: true + +- name: Apply playbook + image: plugins/ansible:1 + environment: + cifs_username: + from_secret: cifs_username + cifs_password: + from_secret: cifs_password + volumes: + - name: certificates + path: /certificates + settings: + playbook: playbook.yml + inventory: inventory.yml + galaxy: requirements.yml + private_key: + from_secret: ssh_privatekey + # vault_password: + # from_secret: ansible_vault_password + +volumes: +- name: certificates + claim: + name: flexvolsmb-drone-certs diff --git a/inventory.yml b/inventory.yml new file mode 100644 index 0000000..466153d --- /dev/null +++ b/inventory.yml @@ -0,0 +1,6 @@ +all: + children: + mediaserver: + hosts: + bv11-pvr: + ansible_host: bv11-pvr.bessems.lan diff --git a/playbook.yml b/playbook.yml new file mode 100644 index 0000000..c783a47 --- /dev/null +++ b/playbook.yml @@ -0,0 +1,7 @@ +--- +- hosts: mediaserver + remote_user: root + gather_facts: false + roles: + - dockerhost + - mediaserver diff --git a/requirements.yml b/requirements.yml new file mode 100644 index 0000000..3f789ab --- /dev/null +++ b/requirements.yml @@ -0,0 +1,2 @@ +collections: +- community.docker \ No newline at end of file diff --git a/roles/dockerhost/tasks/main.yml b/roles/dockerhost/tasks/main.yml new file mode 100644 index 0000000..7c25d4a --- /dev/null +++ b/roles/dockerhost/tasks/main.yml @@ -0,0 +1,77 @@ +- name: Remove undesired packages + apt: + name: + - containerd + - docker + - docker-engine + - docker.io + - runc + - snapd + state: absent + autoremove: yes + purge: yes + +- name: Install prereqs for custom apt repository over https + apt: + update_cache: yes + name: + - apt-transport-https + - ca-certificates + - curl + - gnupg-agent + - software-properties-common + state: present + +- name: Add Docker repo key + apt_key: + url: https://download.docker.com/linux/ubuntu/gpg + id: 9DC858229FC7DD38854AE2D88D81803C0EBFCD88 + state: present + +- name: Determine Ubuntu distribution name + command: lsb_release -cs + register: releasename + +- name: Add Docker apt repository + apt_repository: + repo: deb [arch=amd64] https://download.docker.com/linux/ubuntu {{ releasename.stdout }} stable + state: present + +# # Pinning versions due to odd DNS issue in 20.x +# - name: Pin Docker engine to specific version +# copy: +# dest: "{{ item.dest }}" +# content: "{{ item.content }}" +# with_items: +# - dest: /etc/apt/preferences.d/docker-ce +# content: | +# Package: docker-ce +# Pin: version 5:19.03.13~3-0~ubuntu-focal +# Pin-Priority: 1001 +# - dest: /etc/apt/preferences.d/docker-ce-cli +# content: | +# Package: docker-ce-cli +# Pin: version 5:19.03.13~3-0~ubuntu-focal +# Pin-Priority: 1001 + +- name: Install Docker engine + apt: + update_cache: yes + allow_unauthenticated: yes + name: + # - docker-ce=5:19.03.13~3-0~ubuntu-focal + # - docker-ce-cli=5:19.03.13~3-0~ubuntu-focal + - docker-ce + - docker-ce-cli + - containerd.io + +- name: Install Docker Compose + get_url: + url: https://github.com/docker/compose/releases/download/1.27.4/docker-compose-Linux-x86_64 + dest: /usr/local/bin/docker-compose + mode: '0755' + +- name: Add Docker Compose to path + command: ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose + args: + creates: /usr/bin/docker-compose diff --git a/roles/mediaserver/tasks/main.yml b/roles/mediaserver/tasks/main.yml new file mode 100644 index 0000000..3c2540d --- /dev/null +++ b/roles/mediaserver/tasks/main.yml @@ -0,0 +1,37 @@ +- name: Create Docker volumes + community.docker.docker_volume: + name: "{{ item.name }}" + driver: local + driver_options: + type: cifs + o: "username=,password=,domain=bessems.eu,file_mode=0777,dir_mode=0777,iocharset=utf8" + device: "//192.168.11.225/{{ item.path }}" + loop: + - name: cifs_books + path: Public/Boeken + - name: cifs_photos + path: Public/Foto's + - name: cifs_videos-series + path: Public/Video's/Series + - name: cifs_videos-films + path: Public/Video's/Films + - name: cifs_songs + path: Public/Audio/DeSchakel + +- name: Start Plex container + community.docker.docker_container: + name: Plex + image: linuxserver/plex + network_mode: host + env: + VERSION: latest + volumes: + - /root/containers/pvr/plex/config:/config + - cifs_photos:/data/photos + - cifs_video-films:/data/movies + - cifs_video-series:/data/series + command: sleep 1d + register: output + +- ansible.builtin.debug: + var: output \ No newline at end of file