community.zabbix icon indicating copy to clipboard operation
community.zabbix copied to clipboard

feat: support zabbix installation on suse

Open jon4hz opened this issue 1 year ago • 7 comments

SUMMARY

Hi! This PR adds full openSUSE and SLES 15 support for the zabbix installation roles with the following exceptions:

  • zabbix_server and zabbix_proxy version 6.2 is unsupported due to a library mismatch. Both components require libnetsnmp.so.30 but SLES 15 provides libnetsnmp.so.40.
  • zabbix_server and zabbix_proxy don't support the mysql version. For some reason I couldn't get the community.mysql collection to work on SLES 15. I'm not 100% sure why it isn't working. My best guess is because Suse ships an outdated version of the PyMySQL package.
  • The zabbix_web role is currently not covered by molecule tests because of missing SLES support in the geerlingguy.php role.

Everything else should be working as expected and is covered by molecule tests.

Please feel free to add a first review and let me know what you think! :)

An update to the docs and a change fragment will follow soon.

ISSUE TYPE
  • Docs Pull Request
  • Feature Pull Request
COMPONENT NAME
  • zabbix_agent
  • zabbix_javagateway
  • zabbix_proxy
  • zabbix_server
  • zabbix_web

jon4hz avatar Mar 24 '24 21:03 jon4hz

@BGmot and @dj-wasabi what are our thoughts on adding another supported OS? I'll admit I don't think I've ever used SUSE and have no idea how widely used it is out there. Given its relatively short life cycle we're not adding a ton of additional testing. I would want to make sure we figure out the molecule testing for Web and ideally why mysql isn't working.

pyrodie18 avatar Mar 27 '24 11:03 pyrodie18

I am a bit conflicted with this, but ideally the collection/roles should be to support all OS'es that Zabbix supports. I don't see it present on the https://www.zabbix.com/documentation/current/en/manual/installation/requirements page. But I also think to a certain degree we can support other OS'es.

But the problem with that is, providing the support and most specifically when you as a maintainer don't have the experience with it. And not only you/me as a maintainer, when someone else makes a PR that results in failing a CI run, can we ask that of the PR Author?

I am not sure if we can "decide" per OS if a molecule test fail should result into a Pipeline error or not. Like if we merge this PR, maybe we can allow the molecule tests to fail on a OS without interupting the main/supported OS'es.

dj-wasabi avatar Mar 28 '24 08:03 dj-wasabi

I don't see it present on the https://www.zabbix.com/documentation/current/en/manual/installation/requirements page. But I also think to a certain degree we can support other OS'es.

According to https://www.zabbix.com/documentation/current/en/manual/installation/install_from_packages SLES is an officially supported OS.

jon4hz avatar Mar 28 '24 10:03 jon4hz

I am a bit conflicted with this, but ideally the collection/roles should be to support all OS'es that Zabbix supports. I don't see it present on the https://www.zabbix.com/documentation/current/en/manual/installation/requirements page. But I also think to a certain degree we can support other OS'es.

But the problem with that is, providing the support and most specifically when you as a maintainer don't have the experience with it. And not only you/me as a maintainer, when someone else makes a PR that results in failing a CI run, can we ask that of the PR Author?

I am not sure if we can "decide" per OS if a molecule test fail should result into a Pipeline error or not. Like if we merge this PR, maybe we can allow the molecule tests to fail on a OS without interupting the main/supported OS'es.

I'm curious if there is a larger community definition of what it means for a role to support an OS. I know a lot of the collections don't actually include roles (disappointing to me personally)

pyrodie18 avatar Mar 28 '24 11:03 pyrodie18

I don't see it present on the https://www.zabbix.com/documentation/current/en/manual/installation/requirements page. But I also think to a certain degree we can support other OS'es.

According to https://www.zabbix.com/documentation/current/en/manual/installation/install_from_packages SLES is an officially supported OS.

Thank you! Then it has a +1 for me that we should include the code (and thus merging the PR) to the collection.

I am not sure yet how to support something like this, when - also based on the comment of @pyrodie18 - it also not sure how much it is used. Back then before the 'collections' and with my role, I added Suse and Windows as a nice "experiment" with working with them from an Ansible p.o.v. It was easy for me, as these roles were in my own 'github namespace' and thus could easily say that they were best effort. Not sure if we can do the same with the collection?

dj-wasabi avatar Mar 28 '24 12:03 dj-wasabi

I am a bit conflicted with this, but ideally the collection/roles should be to support all OS'es that Zabbix supports. I don't see it present on the https://www.zabbix.com/documentation/current/en/manual/installation/requirements page. But I also think to a certain degree we can support other OS'es. But the problem with that is, providing the support and most specifically when you as a maintainer don't have the experience with it. And not only you/me as a maintainer, when someone else makes a PR that results in failing a CI run, can we ask that of the PR Author? I am not sure if we can "decide" per OS if a molecule test fail should result into a Pipeline error or not. Like if we merge this PR, maybe we can allow the molecule tests to fail on a OS without interupting the main/supported OS'es.

I'm curious if there is a larger community definition of what it means for a role to support an OS. I know a lot of the collections don't actually include roles (disappointing to me personally)

Well, normally I would say you are never alone in a situation. So I think we - as the Zabbix collection community - should maybe find some that can either help us or forward us to some place/team where we can ask these kinds of questions?

dj-wasabi avatar Mar 28 '24 12:03 dj-wasabi

@dj-wasabi going to point you over to https://github.com/ansible-community/community-topics/issues/197. There is nothing definitive in there about testing standards but some good discussion. May kick the tires since its been dead for a year.

pyrodie18 avatar Mar 29 '24 01:03 pyrodie18

I'm all for this, I think it would make a great addition to the 3.0.0 release. You'll have wait and rebase once #1272 merges, but it should be much easier adding support after. I think you'll find the zabbix_server and zabbix_proxy roles will be much easier to port to ever since the refactors landed there (#1193 #1196) and you should be able to support mysql by reusing the workarounds in #1235 once that lands.

eb4x avatar Jun 06 '24 07:06 eb4x

@jon4hz still have some failures happening. Also need you to please update the documentation

pyrodie18 avatar Jun 08 '24 02:06 pyrodie18

Yeah, there are still a few things to be changed due to the refactoring prs from @eb4x. I should be able to adjust this PR over the weekend :+1:

jon4hz avatar Jun 08 '24 02:06 jon4hz

Hi @jon4hz , how soon you can update this PR? We are about to release new version of this collection and it would be nice to have this feature added.

BGmot avatar Jun 11 '24 17:06 BGmot

Actually I was waiting for #1235 to land on main so I can rebase my PR. If you want to merge this PR before that, I should be able to finish it today or tomorrow.

jon4hz avatar Jun 11 '24 17:06 jon4hz

I will be bringing in #1235 shortly. If you can get this done in the next day or two that would be great.

pyrodie18 avatar Jun 11 '24 18:06 pyrodie18

This PR should be ready now.

jon4hz avatar Jun 12 '24 17:06 jon4hz