HIPSTER BINGO - OR HOW TO USE DOCKER/KUBERNETES/CRI-O TO DEPLOY - - PowerPoint PPT Presentation

hipster bingo or how to use docker kubernetes cri o to
SMART_READER_LITE
LIVE PREVIEW

HIPSTER BINGO - OR HOW TO USE DOCKER/KUBERNETES/CRI-O TO DEPLOY - - PowerPoint PPT Presentation

HIPSTER BINGO - OR HOW TO USE DOCKER/KUBERNETES/CRI-O TO DEPLOY LIBREOFFICE ONLINE WITH STYLE CIB SOFTWARE GMBH LIBREOFFICE CONFERENCE ROME OCTOBER 11TH, 2017 I HAVE 30 MINUTES TO SETUP LOOL The problem? > multiple server instances


slide-1
SLIDE 1

CIB SOFTWARE GMBH LIBREOFFICE CONFERENCE ROME OCTOBER 11TH, 2017 HIPSTER BINGO - OR HOW TO USE DOCKER/KUBERNETES/CRI-O TO DEPLOY LIBREOFFICE ONLINE WITH STYLE

slide-2
SLIDE 2

„I HAVE 30 MINUTES TO SETUP LOOL“

slide-3
SLIDE 3

The problem?

> multiple server instances > multiple services > needs SSL really > available documentation rather for larger/classical enterprise setups

slide-4
SLIDE 4

Setup docker

> see https://docs.docker.com/engine/installation/linux/d

  • cker-ce/debian/

> i.e. add https://download.docker.com/linux/ <release> to sources.list > $ a p t

  • g

e t i n s t a l l d

  • c

k e r

  • c

e > but hmm - then on debian 8 (jessie), your default storage driver is AUFS > for a variety of reasons (see later), you want to switch this to devicemapper:

$ v i / e t c / d

  • c

k e r / d a e m

  • n

. j s

  • n

  • > "

s t

  • r

a g e

  • d

r i v e r " : " d e v i c e m a p p e r "

slide-5
SLIDE 5

Setup docker (2)

> meh, then needs re-pulling all images.. > make this persistent:

$ s y s t e m c t l s t a r t d

  • c

k e r . s e r v i c e

$ s y s t e m c t l e n a b l e d

  • c

k e r . s e r v i c e

slide-6
SLIDE 6

Are we lucky yet?

> we need a file management / frontend anyway:

$ g i t c l

  • n

e h t t p s : / / g i t h u b . c

  • m

/ n e x t c l

  • u

d / d

  • c

k e r . g i t

l e s s R E A D M E . m d

  • h dear oh dear - fpm, reverse proxies, SSL certs

but wait!

slide-7
SLIDE 7

There's more to docker (and kubernetes/cri-o)

> $ c d e x a m p l e s ; d

  • c

k e r

  • c
  • m

p

  • s

e u p > hmm, debian does not have it... > getting docker-compose to run on debian8:

http://blog.programster.org/debian-8-install-docker-co mpose/

$ p i p i n s t a l l

  • u

s e r d

  • c

k e r

  • c
  • m

p

  • s

e

> good, there we go

slide-8
SLIDE 8

There's more to docker-compose...

> read up here: https://docs.docker.com/compose/ > or here: https://blog.codeship.com/orchestrate-container s-for-development-with-docker-compose/ > do some custom stuff then:

environment:

  • domain=${DOMAIN}
  • username=<admin>
  • password=<password>
  • DONT_GEN_SSL_CERT=true
  • server_name=${DOMAIN}
slide-9
SLIDE 9

Custom stuff so far

> $ g i t r e m

  • t

e a d d t h b g i t @ g i t h u b . c

  • m

: t h

  • r

s t e n b / d

  • c

k e r . g i t

newer letsencrypt-companion

add some container links

merged nginx proxy changes from collabora

move lool rewrites up, so funny url encodings don't get picked up

slide-10
SLIDE 10

Now decide on the LibreOffice Online flavour

> https://hub.docker.com/r/libreoffice/online/ > https://hub.docker.com/r/thedarkknight/libreoffice

  • online-unlimited/

> or roll your own (slightly simplified):

F R O M < b a s e _ i m a g e >

R U N b a s h i n s t a l l

  • l

i b r e

  • f

f i c e . s h

  • so this simply needs to stick the binaries somewhere -

no need for packaging

C M D b a s h s t a r t

  • l

i b r e

  • f

f i c e . s h

> they both need capabilities (and thusly extended FS attributes), so you need a reasonably recent Linux base (Debian Jessie does work though)

slide-11
SLIDE 11

Time to kick it off!

> $ D O M A I N = v m 1 8 4 . d

  • c

u m e n t f

  • u

n d a t i

  • n

.

  • r

g d

  • c

k e r

  • c
  • m

p

  • s

e u p > test instance: https://vm184.documentfoundation.org/ > enable richdocuments plugin

$ d

  • c

k e r e x e c

  • i

t n e x t c l

  • u

d _ f p m / b i n / b a s h

$ . /

  • c

c a p p : e n a b l e r i c h d

  • c

u m e n t s

$ . /

  • c

c c

  • n

f i g : a p p : s e t r i c h d

  • c

u m e n t s w

  • p

i _ u r l

  • v

a l u e = " h t t p s : / / a p p "

slide-12
SLIDE 12

Remaining issues

> external vs. internal networking > SSL certificate only for the external domain > WOPI host is 'app' host, not the public url for loolwsd > some hacks here: https://github.com:thorstenb/richdocuments

slide-13
SLIDE 13

Changes to richdocuments php app

> L

  • a

d d e n i e d b y X

  • F

r a m e

  • O

p t i

  • n

s

ah - so wsd/FileServer uses a hack to set X-Frame- Options from WOPISrc, if referer is not set

that looks like a nice fix: https://help.nextcloud.com/t/solved-restore-http-referer

  • inside-an-app/6266

added that fix to nginx config - just don't mess with referrer

more tweaks in the richdocuments repo

  • set referrer to origin
  • wopi file host hardcoded for the moment - since it's

tied to frontend urls

  • hardcode frontend url as allowed frame domain
slide-14
SLIDE 14

Demo!

> let's see if we butter-fingered it :) > https://vm184.documentfoundation.org/ > https://cloud.google.com/container-engine/ - free trial

slide-15
SLIDE 15

Hosting options

> idiot-proof docker hosting - https://sloppy.io/ > GKE - https://cloud.google.com/container-engine/ > kubernetes help:

https://tutorials.ubuntu.com/tutorial/install-kubernete s-with-conjure-up?backURL=%2F

https://tutorials.ubuntu.com/tutorial/get-started-cano nical-kubernetes?backURL=%2F

slide-16
SLIDE 16

Random others links & pointers

> oh nice load balancing for nginx - https://nginx.org/en/docs/http/ngx_http_upstream_mod ule.html#upstream > kompose - convert from docker-compose to kubernetes:

https://github.com/kubernetes/kompose

http://blog.kubernetes.io/2016/11/kompose-tool-go-from-dock er-compose-to-kubernetes.html

> cri-o - container runtime initiative - if you want to run this in your private cloud > plus https://github.com/virt-manager/virt-bootstrap from Cedric - extracting the meat out of docker images & run the workload via libvirt-lxc

slide-17
SLIDE 17

THANK YOU! OUR PRODUCTS:

HTTP://LIBREOFFICE.CIB.DE/

WE CAN HELP:

HTTP://LIBREOFFICE.CIB.DE/SUPPORT