noggin icon indicating copy to clipboard operation
noggin copied to clipboard

[secaudit-blocking] No installation documentation

Open puiterwijk opened this issue 4 years ago • 23 comments

Part of secaudit #316, blocking.

The Installation documentation is absent, and doesn't contain any useful information in how to set up a production-grade setup of noggin.

puiterwijk avatar Aug 11 '20 11:08 puiterwijk

@puiterwijk we will get working on this ASAP.

Note too, (while not documentation, i know), there is the vagrant setup that sets up a freeipa server, installs the freeipa-fas plugin to freeipa, then installs noggin.

Note too there is an in-review PR here (https://github.com/fedora-infra/noggin/pull/326) that makes the noggin flask app behave a little better.

ryanlerch avatar Aug 12 '20 09:08 ryanlerch

@ryanlerch Right. But note that if you decide the Vagrant setup is the official way of deploying, I'll have many complaints about insecure deployment practices 😀. That's why I want to see how you tell people to actually deploy it.

puiterwijk avatar Aug 12 '20 10:08 puiterwijk

@puiterwijk I don't think we'll document using Vagrant to deploy in production, with or without your comment :wink:. Off the top of your head, are there any other gotchas? If we can avoid embarrassing ourselves upfront, I'm all for it.

nphilipp avatar Aug 13 '20 08:08 nphilipp

Some of the things you really want to point out:

  • Don't use flask run, but instead use a serious HTTP server, and explain how to do so (apache/nginx with possible gunicorn behind it)
  • Do not use the global admin user: instead, I'd strongly recommend a separate noggin user for auditing/permission purposes (as part of the docs would then be "What are the minimum required permissions to grant")
  • Make very sure to change SECRET and FERNET_SECRET (#334)

And other things like those

puiterwijk avatar Aug 13 '20 11:08 puiterwijk

@nphilipp @puiterwijk Probably a good starting point for installation documentation would be the haphazard one I wrote for getting the system up and running for openSUSE infrastructure on COPR: https://copr.fedorainfracloud.org/coprs/ngompa/fedora-aaa/

Conan-Kudo avatar Aug 17 '20 03:08 Conan-Kudo

Any updates on this?

Cliftonz avatar Jun 04 '21 06:06 Cliftonz

Yeah there is still no proper installation documentation, sadly. But all the steps and files we use in our Openshift deployment are publicly accessible (playbook, template). I know it's not ideal but it's there.

Noggin is deployed in Openshift using the python s2i container, which runs gunicorn. It connects to IPA with a specific user that only has the necessary permissions (setup by this playbook). The SECRET and FERNET_SECRET variables are long randomly generated strings (that are, obviously, not public).

abompard avatar Jun 04 '21 10:06 abompard

We'll probably have classical setup information available soon too, it just takes some time to run through a setup and make it a thing.

Conan-Kudo avatar Jun 04 '21 10:06 Conan-Kudo

That's understandable. I do want to ask what is the recommended setup for this. For example, if I have 4 IPA servers internally do I want to install it on each of them? Just of the IPA servers? etc

Cliftonz avatar Jun 04 '21 15:06 Cliftonz

If it's an IPA cluster, then you only need one instance of Noggin.

abompard avatar Jun 04 '21 16:06 abompard

This issue has been sitting out for over a year. Is there any way someone could upload a rudimentary list of steps to install this product?

We do not use Openshift and want to install this manually for our ipa cluster.

Cliftonz avatar Nov 27 '21 16:11 Cliftonz

I guess I could write up a guide for installing it the traditional way with the RPMs I made of this. The main reason I haven't done it yet is that I need to finish the work to update it to the latest stable version in Fedora.

Conan-Kudo avatar Nov 27 '21 16:11 Conan-Kudo

@Conan-Kudo That would much be appreciated. I do think you should include how to install it with the playbooks and templates too. Do you have an estimate on how long this may take?

Cliftonz avatar Nov 27 '21 17:11 Cliftonz

As I don't use Ansible much, I'm not sure I could help there, but at least I can document the manual setup process and someone can contribute Ansible stuff. As for an estimate, my priorities at the moment do not leave me a lot of time for this right now, but I'm hoping to come back to this in mid-December.

Conan-Kudo avatar Nov 27 '21 17:11 Conan-Kudo

Mid-December would be great. In terms of the Ansible installation, I would say just leave a Todo in the documentation.

Cliftonz avatar Nov 27 '21 19:11 Cliftonz

@Conan-Kudo Any updates?

Cliftonz avatar May 29 '22 19:05 Cliftonz

Life happened the past few months, but I'm coming back to this.

Conan-Kudo avatar May 29 '22 23:05 Conan-Kudo

@Conan-Kudo Did life get in the way again?

Cliftonz avatar Jan 13 '23 18:01 Cliftonz

@Cliftonz actually, in the process of testing it, I discovered that the deployment was broken and I'm trying to figure out why... 😕

Conan-Kudo avatar Jan 17 '23 11:01 Conan-Kudo

Awesome!

Cliftonz avatar Jan 17 '23 13:01 Cliftonz

I've made some progress on this, I'm having @jonathanspw test out my draft before submitting it upstream.

Conan-Kudo avatar Feb 18 '23 19:02 Conan-Kudo

@Conan-Kudo updates?

Cliftonz avatar Oct 02 '23 13:10 Cliftonz

@abompard @Conan-Kudo I think this be closed now, correct?

Cliftonz avatar Apr 15 '24 20:04 Cliftonz