doc/book/admin/deploy.rst
author Laurent Wouters <lwouters@cenotelie.fr>
Fri, 20 Mar 2020 14:34:07 +0100
changeset 12931 6eae252361e5
parent 12862 87b00a0cc64d
permissions -rw-r--r--
[rql] Store selected variables for RQL select queries in ResultSet (#17218476) By storing the name of the selected variables for RQL select queries in the ResultSet (within the "variables" attribute), the information can be passed down to specific protocols, e.g. rqlio that may wish to pass is down further to clients. In turn, clients can then choose to present the results of RQL select queries as symbolic bindings using the names used in the query's projection, instead of ordinal arrays.
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>`_.