ansible role to install a django app
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
jens 194f503e8f Update 'tasks/main.yml' 4 weeks ago
defaults Update 'defaults/main.yml' 10 months ago
handlers Update 'handlers/main.yml' 10 months ago
meta fix linting 10 months ago
tasks Update 'tasks/main.yml' 4 weeks ago
templates made more generic 10 months ago
tests made more generic 10 months ago
vars made more generic 10 months ago
.drone.yml Update '.drone.yml' 10 months ago
README.md Update 'README.md' 10 months ago
settings_template.py.j2 made more generic 10 months ago

README.md

Ansible role Djangoapp

Build Status

This role installs a django app given the download url for it's tar.gz

Requirements

This role requires a database server to to be present where the django app can connect to. The git checkout of the app should have a file called settings_template.py.j2 which will be templated by jinja with the vars defined and used as settings file for this django app.

Role Variables

  • django_app_gitrepo: git repo to check out (required)
  • django_app_gitversion: git thing to check out defautls to "main"
  • django_admin_password: required, password for 'admin' user
  • django_secret_key: optional Secret Key for Django app, defaults to random 56char string recreated on every run (This will invalidated current open sessions)
  • django_user: user running the app, defaults to 'django' (this user will be created)
  • django_home: path to install the djangoapp in, defaults to /home/django (this path will be created)
  • django_domain: the domain this app will run on (Needed for django's ALLOWED_HOSTS), default localhost
  • django_db_name: database name, defaults to 'django'
  • django_db_user: database user, defaults to 'django'
  • django_db_password: database password, defaults to '', (ignored for unix socket connection)
  • django_db_host: database server, defaults to '/run/postgresql/' for local unix socket connection
  • django_db_port: database port, defaults to 5432 (ignored for unix socket connection)
  • django_workers: the number of gunicorn http worker threads (defaults to 4)
  • django_http_listen: the ip address to bind to, change this to ip address of the host if you use a reverse proxy on a different host, defaults to localhost
  • django_http_port: the http port to bind to, defaults to 80

Dependencies

None

Example Playbook

- name: "Install im pantry app"
  hosts: im
  roles:
      - ansible-role-djangoapp
  vars:
      - django_domain: "im.example.com"
      - django_http_listen: "{{inventory_hostname}}"
      - django_admin_password: "test"
      - django_app_gitrepo: "https://gitea.caret.be/jens/im.git"
      - django_app_gitversion: "main"
- name: "install posgres servers"
  hosts: pa
  roles:
    - ansible-role-postgresql
  vars:
    - postgresql_python_library: python3-psycopg2
    - postgresql_databases:
      - name: "{{inventory_hostname}}"
        owner: "{{inventory_hostname}}"
    - postgresql_users:
      - name: "{{inventory_hostname}}"


- name: "Install im pantry app"
  hosts: im
  roles:
      - ansible-role-djangoapp
  vars:
      - django_appname: "im"
      - django_domain: "im.example.com"
      - django_admin_email: "im@example.com"
      - django_http_listen: "{{inventory_hostname}}"
      - django_http_listen: "192.168.1.112"
      - django_http_port: 8000
      # needs to be a tar.gz for now
      # needs to have a settings_template.py.j2 file in the django_appname folder
      - django_app_gitrepo: "https://gitea.caret.be/jens/im.git"
      - django_app_gitversion: "v2.0"
      - django_admin_password: !vault |
          $ANSIBLE_VAULT;1.1;AES256
          33366337663233346138373232353438613362636634393334613935303466343238646361613037
          3738623833643738636162303362383665646132616362320a366338313363356634636534653932
          36383131333437613236303662346637633536373637343562336465663639353765616130353536
          3439653639343234390a636334383262663363353030333837316430383762346463386166626637
          6536

License

GPL-v3

Author Information

Jens (gitea.caret.be)