Geonode: Update and revise the GeoNode Ansible deployment

Created on 8 Dec 2020  路  4Comments  路  Source: GeoNode/geonode

Is your feature request related to a problem? Please describe.
The current ansible-playbook is old and not maintained anymore. It should get revised by an experience DevOp as part of a fork which than can lead to a GNIP.

Describe the solution you'd like
The ansible-playbook should be more granular and enable eg. updating GeoServer if there are any security fixes for it.

Describe alternatives you've considered
There is already a working docker-composition which can be used for DevOps. Since docker does not provide enough control for some DevOps the ansible role should be an alternative.

Additional context
Add any other context or screenshots about the feature request here.

code-sprint2020 feature in progress

Most helpful comment

https://github.com/malnajdi will work on this

All 4 comments

https://github.com/malnajdi will work on this

... if the ansible role is generic enough it could even be used to for example update geoserver inside a docker container. just my two cents.

@malnajdi had some very nice ideas about the 'genericness' and updating GeoServer per Ansible was one of them. If the docker composition will also be covered is TBD (I do not think so), but maybe that could be an addition done by others.
If you have anything to show or discuss @malnajdi do not hesitate to link it here.

Great, so my initial ideas and we can go on about this and discuss it more later but here it is:

  1. We need to generalize the roles or maybe even use an roles made already by the community.
  2. We need to ensure that the roles are designed in a way where it's easy to add support for different Linux flavor mainly now Debian and Ubuntu.
  3. I like to think of the components we have as (1. Something more closer to the Dev) (2. something more closer to the Ops).

With the things above in mind GeoNode Template should have a deploy folder where inside that folder you would be able to
deploy that django application to a target server and the target server is managed by the Ops team.

The other components like postgres and geoserver we can think of them as services provided to the developer as [ip or domain]
where the developer can use these [ip or domain] in their GeoNode template.

The deploy folder will also be used to do a lot of things:

  • prepare a docker image docker.yml
  • prepare a postgres database for that GeoNode Template database.yml
  • Deploy the django application application.yml
    ... and think of the possibilities that we can do.

The current roles has a lot of old structure and i guess as @gannebamm has pointed out it's out dated.

To summarize:
This role can be changed to:

postgres [ which has an option to enable/install postgis extension & option to install it via docker ?? maybe ??]
geoserver [ which has an option to enable/install extra extension & option to install it via docker ?? maybe ??]
apache [ which can be used by geonode and geoserver if needed]
nginx [ which can be used by geonode and geoserver if needed]
uwsgi [ which will be used by django-role ]
celery [ which will be used by django-role if needed]
django-role [deploy a django application which has a dependency of uwsgi and [nginx or apache] & option to install it via docker ?? maybe ??]

As always please let me know if you think something is not correct or need to be changed etc..

Was this page helpful?
0 / 5 - 0 ratings

Related issues

HaidarZ picture HaidarZ  路  4Comments

ingenieroariel picture ingenieroariel  路  10Comments

dpadron picture dpadron  路  7Comments

kikislater picture kikislater  路  7Comments

hishamkaram picture hishamkaram  路  9Comments