cchurch.uwsgi

uWSGI

以皇帝模式安装 uWSGI 并配置附属者。需要 Ansible 2.4 或更高版本。

角色变量

注意:一些变量名称自 0.2.x 版本以来已更改!

以下变量通常用于自定义该角色:

  • uwsgi_install:安装 uWSGI 使用的方法;可以是 "pkg"(默认)使用系统包管理器,或 "pip" 通过 pip 安装。其他值表示通过其他方式安装 uWSGI。
  • uwsgi_version:当 uwsgi_install == "pip" 时,指定要安装的 uWSGI 版本。默认是安装可用的最新版本。
  • uwsgi_virtualenv:当 uwsgi_install == "pip" 时,将 uWSGI 安装到指定的虚拟环境路径。
  • uwsgi_vassals:为指定的任何附属者创建 INI 配置文件。必须是哈希列表,每个哈希至少包含一个 name 键以指定文件名。所有键和值将写入 [uwsgi] 部分的 INI 文件中。默认是 []
  • uwsgi_vassals_to_remove:要删除的附属者名称列表;默认是 []

以下变量可用于自定义 uWSGI 皇帝的配置和路径:

  • uwsgi_emperor_tyrant:以暴君模式运行皇帝。每个附属者配置文件将由附属者选项中指定的 uid/gid 拥有,并以该用户的身份运行,而不是皇帝用户。默认是在 uwsgi_install == "pip" 时为 true,否则为 false
  • uwsgi_conf_template:用于生成 uWSGI 皇帝配置的本地模板。默认值由 uwsgi_default_conf_templates[ansible_pkg_mgr] 设置,在 EL 发行版中评估为 "uwsgi.ini.j2",在 Ubuntu 发行版中评估为 "emperor.ini.j2"
  • uwsgi_conf_path:uWSGI 皇帝配置文件的路径。默认值由 uwsgi_default_conf_paths[ansible_pkg_mgr] 设置,在 EL 发行版中评估为 "/etc/uwsgi.ini",在 Ubuntu 发行版中评估为 "/etc/uwsgi-emperor/emperor.ini"
  • uwsgi_conf_force:是否强制覆盖 uWSGI 皇帝配置文件。默认值为 false,仅在文件不存在时创建文件。
  • uwsgi_vassal_path:uWSGI 皇帝查找附属者配置文件的路径。默认值由 uwsgi_default_vassal_paths[ansible_pkg_mgr] 设置,在 EL 发行版中评估为 "/etc/uwsgi.d",在 Ubuntu 发行版中评估为 "/etc/uwsgi-emperor/vassals"

以下变量可用于自定义支持 uWSGI 的已安装软件包:

  • uwsgi_os_packages:支持 uWSGI 的系统软件包列表。默认值由 uwsgi_default_os_packages[uwsgi_install][ansible_pkg_mgr] 设置,当 uwsgi_install == "pkg" 时安装系统软件包,当 uwsgi_install == "pip" 时安装 Python 开发依赖。
  • uwsgi_pip_packages:当 uwsgi_install == "pip" 时,支持 uWSGI 的 pip 软件包列表。默认值由 uwsgi_default_pip_packages 设置,评估为 ["uwsgi"]
  • uwsgi_pip_executable:用于安装软件包的 pip 的备用名称或路径,当 uwsgi_install == "pip" 且不安装到虚拟环境中时使用。默认值让 pip 模块决定使用哪个 pip 可执行文件。

以下变量可用于自定义服务配置,当 uWSGI 不是通过系统包管理器安装并通过 upstart 或 systemd 管理时:

  • uwsgi_user_group:运行 uWSGI 皇帝的用户/组信息。默认值由 uwsgi_default_user_group[ansible_pkg_mgr] 设置,在 EL 发行版上创建 "uwsgi:uwsgi" 系统用户和组,在 Ubuntu 发行版上创建 "www-data:www-data" 系统用户和组,和通过 uWSGI 系统包版本使用的一样。用户/组哈希可能包含 namecommentgrouphomeshellsystem 键,对应于 Ansible user 模块的相应参数。
  • uwsgi_service_name:uWSGI 服务的名称。默认值由 uwsgi_default_service_names[ansible_pkg_mgr] 设置,在 EL 发行版中评估为 "uwsgi",在 Ubuntu 发行版中评估为 "uwsgi-emperor"
  • uwsgi_bin:用于 upstart 或 systemd 配置的 uWSGI 二进制文件路径;如果未指定,将自动确定。
  • uwsgi_opts:运行 uWSGI 时的命令行选项;默认使用 uWSGI 配置文件中指定的选项运行:"--die-on-term --ini {{uwsgi_conf_path|quote}}"
  • uwsgi_use_upstart:布尔值,指示是否使用 upstart 创建和管理 uWSGI 服务。默认未定义,仅在非 EL 7 发行版上 uWSGI 不是通过系统包管理器安装时启用。可以设置为 false 显式禁用使用 upstart 管理 uWSGI 服务。
  • uwsgi_upstart_packages:支持通过 upstart 运行 uWSGI 的系统软件包列表。默认值由 uwsgi_default_upstart_packages[ansible_pkg_mgr] 设置,简单地安装 upstart 软件包。
  • uwsgi_upstart_description:uWSGI upstart 服务的描述,默认为 "uWSGI Server"
  • uwsgi_upstart_template:用于生成 upstart uWSGI 配置的本地模板;默认为 "uwsgi-upstart.conf.j2"
  • uwsgi_upstart_path:安装 upstart uWSGI 配置的路径;默认为 "/etc/init/{{_uwsgi_service_name}}.conf"
  • uwsgi_use_systemd:布尔值,指示是否使用 systemd 创建和管理 uWSGI 服务。默认未定义,仅在非 EL 7 发行版上 uWSGI 不是通过系统包管理器安装时启用。可以设置为 false 显式禁用使用 systemd 管理 uWSGI 服务。
  • uwsgi_systemd_template:用于生成 systemd uWSGI 服务的本地模板;默认为 "uwsgi.service.j2"
  • uwsgi_systemd_path:安装系统 uWSGI 服务器的路径;默认为 "/etc/systemd/system/{{_uwsgi_service_name}}.service"

示例剧本

以下示例剧本通过 pip 安装 uWSGI 并配置一个运行 Django 网站的单个附属者:

- hosts: all
  roles:
    - role: cchurch.uwsgi
      vars:
        uwsgi_install: pip
        uwsgi_vassals:
          - name: example
            plugin: python
            chdir: /opt/example/src
            module: example.wsgi
            home: /opt/example/env
            env: DJANGO_SETTINGS_MODULE=example.settings
            processes: 4
            socket: 127.0.0.1:8000
            uid: example
            gid: example

许可证

BSD

作者信息

Chris Church (cchurch)

关于项目

Install uWSGI in emperor mode and configure vassals.

安装
ansible-galaxy install cchurch.uwsgi
许可证
other
下载
4.8k
拥有者
Python/Django/Ansible, will code for sweet tea and beer.