voxpupuli / puppetboard

Web frontend for PuppetDB
https://pypi.org/project/puppetboard/
Apache License 2.0
712 stars 237 forks source link

Few pages are not displaying the values #450

Open pradeepatta opened 6 years ago

pradeepatta commented 6 years ago

I am facind weird issue with Puppet Board setup, I have setup this in two locations with same configuration but one is working like charm where as second is giving trouble in displaying few of the pages like Overview, Nodes, Radiateor, Catalog...etc

Please find below the configuration of my setup:

Puppet Server - puppetserver-2.4.0-1.el7.noarch - CentOS Linux release 7.2.1511 (Core) Puppet DB - puppetdb-4.4.0-1.el7.noarch - CentOS Linux release 7.3.1611 (Core) Puppet Board - v0.3.0 - Installed on Puppet DB server

Attached the screen shots for more information, Can you please help me to fix the issue.

overview_page nodes_page inventory_page radiator_page puppetdb

mterzo commented 6 years ago

What happens when you change your environment drop down to *

pradeepatta commented 6 years ago

Hi mterzo,

Yes, it is showing the node info when I select "*" but I want the values should be displayed when I select "Production" environment as all my nodes are present in it. Is there any way?

If not, please let me know how to set the environment to "*" by default as work around. Thanks in advance.

mterzo commented 6 years ago

So * is all environments. For some reason your other DC is not in the production environment.

mterzo commented 6 years ago

Configuration of the ui is here.

https://github.com/voxpupuli/puppetboard/blob/master/README.rst#settings

pradeepatta commented 6 years ago

I can see that both DCs are pointing to production environment, I don;t see any difference in the settings when I run "puppet config print --environment=production" on both the puppet servers and even on puppet.conf on client machines. Not sure what's wrong with the other DC's puppetboard.

For now, I have set the "DEFAULT_ENVIRONMENT = '*'" in setting.py file to list all the environments by default.

Thanks a lot for all your help.

mterzo commented 6 years ago

Just to be clear you don't run puppet config that way.

mterzo@host:~$ puppet config print environment
production
mterzo@host:~$ sudo puppet config print --environment=production environment
production
mterzo@host:~$ sudo puppet config print --environment=foo environment
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/environments.rb:38:in `get!': Could not find a directory environment named 'foo' anywhere in the path: /etc/puppetlabs/code/environments. Does the directory exist? (Puppet::Environments::EnvironmentNotFound)

Using --environment changes the what the saved configuration bit would be.

Also, if you have catalogs enabled. You can on that section and look at one of the values by clicking on the catalog compile time.

You should see something like:

Package[python-matplotlib] | /etc/puppetlabs/code/environments/production/manifests/default.pp:28
pradeepatta commented 6 years ago

I have checked "puppet config print environment" on puppet server, PuppetDB server and Puppet Client..all are pointing to Production environment.

Somehow Catalogs data is not copied to Puppet DB on new DC, but I can see the information in "inventory" page. There, it is showing "agent_specified_environment = production" for all the nodes, that means they all are from "production" environment.

Can you please guide me the way to update the "Catalogs" info to PuppetDB.

mterzo commented 6 years ago

What's the result of:

curl http://localhost:8080/pdb/query/v4/environments
pradeepatta commented 6 years ago

Output is as below, it is showing "production" only

# curl http://localhost:8080/pdb/query/v4/environments
[{"name":"production"}]
pradeepatta commented 6 years ago

Hi mterzo,

Any other things I need to check? Please suggest

bschonec commented 6 years ago

I'm having similar issues. The reports tab is devoid of any reports, the Environments tab has only "production" in it and there's nothing else in the drop down to select.

toddjames commented 6 years ago

Same problem and symptoms here. Changing the Environment to * in Puppetboard shows everything.

root@puppet:~# curl http://localhost:8080/pdb/query/v4/environments
[{"name":"production"}]

FWIW, this only started happening to me today after I upgraded my server from Puppet Collection 1 (PC1, which includes puppetdb 4.4, puppetserver 4.x) to puppet5 (puppetdb 5.2.2, puppetserver 5.3.1).

edit: It seems that Puppetboard is querying nodes where puppet_environment and catalog_environment are set to the selected environment, however, viewing any individual node in my environment doesn't show those facts set.

edit 2: Actually, by just querying the API for all nodes, I can see that puppet_environment is set to production, but catalog_environment is set to null. This is certainly the problem with the nodes not displaying.

toddjames commented 6 years ago

To wrap that up in a nice bow, I believe the problem is that I don't currently push puppet catalogs to puppetdb and Puppetboard is expecting catalog_environment to be set and match the puppet_environment. My catalog_environment is set to null on all of my nodes, so the queries to puppetdb never return any results.

I was able to resolve this by removing or commenting out the following lines of code in app.py:

I'm not sure if this change is agreeable to the project maintainers, so I'm hesitant to submit a PR. @mterzo , could you take a look, please?

gdubicki commented 2 years ago

This problem still exists, I am hit by it too. In some setups the environment set in various attributes does not match.

F.e. this is a result of nodes { certname = "my.fqdn.com" } query in one of my envs:

[
    {
        "catalog_environment": "<custom_env>",
        "facts_environment": "production",
        "report_environment": "<custom_env>",
(...)
    }
]

Because of that on a Node view I don't see the node's facts if I choose "" BUT I do see them if I stick to "*"...

I am just not sure if this is result of a valid puppet config and should be supported by Puppetboard OR if it's an invalid Puppet configuration that should be fixed...

gdubicki commented 1 year ago

What I mentioned in a comment above happens when you use "resubmit_facts" feature with Puppet 5.x, see https://tickets.puppetlabs.com/browse/PUP-9290.

So, in this case, it's a bug in a unmaintained version of Puppet, so we cannot really expect Puppetlabs to fix it and I don't see a good way to work around it in Puppetboard too.

gdubicki commented 1 year ago

Does anyone experience this with Puppet 6 or 7?