ansibleguy.infra_django_apache

Django Logo

Ansible角色 - Python3 Django

这是一个Ansible角色,用于在Linux服务器上使用Apache2作为Web服务器部署一个或多个Django应用程序。

请请我喝咖啡

Molecule测试状态 YamlLint测试状态 PyLint测试状态 Ansible-Lint测试状态 Ansible Galaxy

Molecule日志: 简短, 完整

已测试:

  • Debian 11

安装

# 最新版
ansible-galaxy role install git+https://github.com/ansibleguy/infra_django_apache

# 从galaxy安装
ansible-galaxy install ansibleguy.infra_django_apache

# 或安装到自定义角色路径
ansible-galaxy install ansibleguy.infra_django_apache --roles-path ./roles

# 安装依赖
ansible-galaxy install -r requirements.yml

使用

你想要一个简单的Ansible GUI吗?查看我的 Ansible WebUI

配置

你需要通过配置'mariadb'字典来定义你的实例!

django:
  sites:
    niceApp:
      domain: 'django.ansibleguy.net'
      project: 'super'  # 包含'settings.py'的目录命名为此 
      
      sync_code:  # 将本地代码同步到远程服务器
        enabled: true
        src: '/home/ansibleguy/code/niceApp'
        static_src: '/home/ansibleguy/code/niceApp_static'
      
      venv: '/var/lib/niceApp'

      python_modules:
        present: ['netaddr', 'pycryptodome']
      
      env_pythonpath: ['/var/lib/myOtherApp']  # 将被添加到django的PYTHONPATH环境变量中

      ssl:
        mode: 'letsencrypt'

      letsencrypt:
        email: '[email protected]'

你可能想使用'ansible-vault'来加密你的密码:

ansible-vault encrypt_string

执行

运行playbook/角色:

ansible-playbook -K -D -i inventory/hosts.yml django.yml --ask-vault-pass

还有一些有用的标签可用:

  • base => 仅配置基础;不会更改实例
  • sites
  • config
  • db
  • sync => 仅将本地代码同步到远程主机(如果用户启用了)
  • django => 不启动apache和/或mariadb的子角色

要调试错误,你可以在运行时设置'debug'变量:

ansible-playbook -K -D -i inventory/hosts.yml playbook.yml -e debug=yes

功能

  • 软件包安装

    • Ansible依赖(_最小_)
  • 配置

    • 使用这个角色的Apache

    • 支持MySQL或PostgreSQL

    • 默认选择

      • 使用这个角色的MariaDB数据库
    • 默认不选择

      • 数据库备份服务
      • 特殊的apache配置 => 可以通过'django'字典传递
      • 运行'collectstatic'
    • 默认配置

      • 将使用自签名证书
      • 数据库类型 => MariaDB
        • 数据库将自动安装
      • 使用Python虚拟环境
      • 将在venv目录中创建数据库迁移脚本

信息

  • 注意:此角色目前仅支持基于Debian的系统

  • 注意:大多数角色功能可以选择启用或禁用。

    有关所有可用选项,请参见主/站点默认文件中的默认配置!

  • 警告:并不是你提供的每个设置/变量都会检查有效性。错误的配置可能会导致角色失败!

关于项目

Role to deploy one or multiple django sites using apache2 to host them

安装
ansible-galaxy install ansibleguy.infra_django_apache
许可证
other
下载
1.9k
拥有者
[email protected] | GPG: https://badges.ansibleguy.net/public.gpg