ansibleguy.infra_django_apache

<a href="https://www.djangoproject.com">
<img src="https://static.djangoproject.com/img/logos/django-logo-negative.svg" alt="Djangoロゴ" width="300"/>
</a>

# Ansible Role - Python3 Django

Apache2をウェブサーバーとして使用して、Linuxサーバー上に1つまたは複数のDjangoアプリケーションをデプロイするためのAnsibleロールです。

<a href='https://ko-fi.com/ansible0guy' target='_blank'><img height='35' style='border:0px;height:46px;' src='https://az743702.vo.msecnd.net/cdn/kofi3.png?v=0' border='0' alt='コーヒーを買ってください' />

[![Molecule Test Status](https://badges.ansibleguy.net/infra_django_apache.molecule.svg)](https://github.com/ansibleguy/_meta_cicd/blob/latest/templates/usr/local/bin/cicd/molecule.sh.j2)
[![YamlLint Test Status](https://badges.ansibleguy.net/infra_django_apache.yamllint.svg)](https://github.com/ansibleguy/_meta_cicd/blob/latest/templates/usr/local/bin/cicd/yamllint.sh.j2)
[![PyLint Test Status](https://badges.ansibleguy.net/infra_django_apache.pylint.svg)](https://github.com/ansibleguy/_meta_cicd/blob/latest/templates/usr/local/bin/cicd/pylint.sh.j2)
[![Ansible-Lint Test Status](https://badges.ansibleguy.net/infra_django_apache.ansiblelint.svg)](https://github.com/ansibleguy/_meta_cicd/blob/latest/templates/usr/local/bin/cicd/ansiblelint.sh.j2)
[![Ansible Galaxy](https://badges.ansibleguy.net/galaxy.badge.svg)](https://galaxy.ansible.com/ui/standalone/roles/ansibleguy/infra_django_apache)

Moleculeログ: [短](https://badges.ansibleguy.net/log/molecule_infra_django_apache_test_short.log), [完全](https://badges.ansibleguy.net/log/molecule_infra_django_apache_test.log)

**テスト済み:**
* Debian 11

## インストール

```bash
# 最新版
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

実行

プレイブック/ロールを実行します:

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