This commit is contained in:
		
							
								
								
									
										41
									
								
								.drone.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								.drone.yml
									
									
									
									
									
										Normal file
									
								
							@@ -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
 | 
			
		||||
							
								
								
									
										6
									
								
								inventory.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								inventory.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
all:
 | 
			
		||||
  children:
 | 
			
		||||
    mediaserver:
 | 
			
		||||
      hosts:
 | 
			
		||||
        bv11-pvr:
 | 
			
		||||
          ansible_host: bv11-pvr.bessems.lan
 | 
			
		||||
							
								
								
									
										7
									
								
								playbook.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								playbook.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
			
		||||
---
 | 
			
		||||
- hosts: mediaserver
 | 
			
		||||
  remote_user: root
 | 
			
		||||
  gather_facts: false
 | 
			
		||||
  roles:
 | 
			
		||||
    - dockerhost
 | 
			
		||||
    - mediaserver
 | 
			
		||||
							
								
								
									
										2
									
								
								requirements.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								requirements.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
			
		||||
collections:
 | 
			
		||||
- community.docker
 | 
			
		||||
							
								
								
									
										77
									
								
								roles/dockerhost/tasks/main.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								roles/dockerhost/tasks/main.yml
									
									
									
									
									
										Normal file
									
								
							@@ -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
 | 
			
		||||
							
								
								
									
										37
									
								
								roles/mediaserver/tasks/main.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								roles/mediaserver/tasks/main.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,37 @@
 | 
			
		||||
- name: Create Docker volumes
 | 
			
		||||
  community.docker.docker_volume:
 | 
			
		||||
    name: "{{ item.name }}"
 | 
			
		||||
    driver: local
 | 
			
		||||
    driver_options:
 | 
			
		||||
      type: cifs
 | 
			
		||||
      o: "username=<removed>,password=<removed>,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
 | 
			
		||||
		Reference in New Issue
	
	Block a user