doc/book/admin/deploy.rst
author Arthur Lutz <arthur.lutz@logilab.fr>
Fri, 31 Jan 2020 17:07:25 +0100
branch3.27
changeset 12862 87b00a0cc64d
permissions -rw-r--r--
[doc/book/admin] initial version of deploy cubicweb page in documentation
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12862
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
     1
.. -*- coding: utf-8 -*-
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
     2
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
     3
Deploy a *CubicWeb* application
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
     4
===============================
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
     5
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
     6
Deployment with uwsgi
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
     7
---------------------
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
     8
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
     9
`uWSGI <https://uwsgi-docs.readthedocs.io/>`_ is often used to deploy CubicWeb
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    10
applications.
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    11
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    12
Short version is install `uwsgi`:
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    13
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    14
.. sourcecode:: console
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    15
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    16
  apt install uwsgi
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    17
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    18
Deploy a configuration file for your application
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    19
`/etc/uwsgi/apps-enabled/example.ini`:
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    20
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    21
.. sourcecode:: ini
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    22
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    23
    [uwsgi]
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    24
    master = true
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    25
    http = 0.0.0.0:8080
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    26
    env = CW_INSTANCE=example
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    27
    wsgi-file = /etc/cubicweb.d/example/wsgiapp.py
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    28
    processes = 8
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    29
    threads = 1
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    30
    plugins = http,python3
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    31
    auto-procname = true
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    32
    lazy-apps = true
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    33
    log-master = true
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    34
    # disable uwsgi request logging
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    35
    disable-logging = true
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    36
    stats = 127.0.0.1:1717
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    37
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    38
The `wsgiapp.py` file looks like this:
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    39
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    40
.. sourcecode:: python
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    41
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    42
    import os
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    43
    from cubicweb.pyramid import wsgi_application_from_cwconfig
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    44
    from cubicweb.cwconfig import CubicWebConfiguration as cwcfg
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    45
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    46
    appid = os.environ['CW_INSTANCE']  # instance name
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    47
    cwconfig = cwcfg.config_for(appid)
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    48
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    49
    cwconfig.log_format = ('{0} pid:{1} (%(name)s) %(levelname)s: %(message)s'
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    50
                           .format(appid, os.getpid()))
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    51
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    52
    application = wsgi_application_from_cwconfig(cwconfig)
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    53
    repo = application.application.registry['cubicweb.repository']
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    54
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    55
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    56
Deployment with SaltStack
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    57
-------------------------
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    58
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    59
To deploy with SaltStack one can refer themselves to the
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    60
`cubicweb-formula <https://hg.logilab.org/master/salt/cubicweb-formula/>`_.
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    61
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    62
Deployment with Kubernetes
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    63
--------------------------
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    64
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    65
To deploy in a Kubernetes cluster, you can take inspiration from the
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    66
instructions included in
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    67
`the fresh cube  <https://hg.logilab.org/master/cubes/fresh/file/tip/README.rst#l20>`_
87b00a0cc64d [doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr>
parents:
diff changeset
    68
and the `deployment yaml files <https://hg.logilab.org/master/cubes/fresh/file/tip/deploy>`_.