cognifloyd / st2_installer.ansible

Ansible Collection for installing StackStorm (ST2)
Apache License 2.0
2 stars 0 forks source link

Select 3rd Party Collections and Roles #1

Open cognifloyd opened 4 years ago

cognifloyd commented 4 years ago

One of the goals of this collection:

Participate in the wider ansible community; Use and contribute to 3rd party collections and roles wherever possible.

So, this installer needs to use and contribute to other collections and roles. If they don't support what StackStorm requires, then we work with them to include the relevant platforms and features.

Candidates for installation/configuration by 3rd party roles/collections:

cognifloyd commented 4 years ago

For mongodb, the mongodb modules have moved to the community.mongodb collection, so that is already a dependency for Ansible 2.10+. It looks like that collection has several mongodb roles for installing/configuring mongodb. A good reference for how to use those roles would probably be the playbooks in rhysmeister/AutomatingMongoDBWithAnsible.

For rabbitmq, the rabbitmq modules have moved to the community.rabbitmq collection, but that only has the modules, so we'll need another role for handling rabbitmq installation.

For nginx, we should use the nginxinc.nginx role which is maintained by the nginx company/community.

Other suggestions are listed here: https://github.com/StackStorm/ansible-st2/issues/229

cognifloyd commented 3 years ago

For the mongodb role:

I've been working on the community.mongodb collection. Most of it is satisfactory for installing and configuring mongo. It also makes transitioning to a HA (replicaset and/or sharded) installation much more natural. The mongodb_auth role is WIP still and has not been merged yet.

For the rabbitmq role:

In StackStorm/ansible-st2#229, the geerlingguy.rabbitmq role was recommended. However, that role has three issues:

  1. It has not updated since 2017, so it uses ansible_os_family instead of ansible_facts.os_family.
  2. It downloads rpm and deb files directly instead of adding the repo like the st2 role does.
  3. It does not configure authentication for rabbitmq

Now searching for other alternatives for rabbitmq.

cognifloyd commented 3 years ago

For the rabbitmq role:

It looks like most existing roles were not written with collections in mind (not a criticism since collections are so new). So, I'm asking about the possibility of adding rabbitmq roles to community.rabbitmq. edit: There seems to be interest from odysseey4me (one of the maintainers) in adding roles to this collection.

Possible bases for those roles include:

Another good reference would be the equivalent chef cookbook written by the rabbitmq folks: https://github.com/rabbitmq/chef-cookbook

cognifloyd commented 3 years ago

For the nginx role:

Yes, the nginxinc official ansible stuff is maintained and a good choice to use. They are currently splitting their one massive role into smaller roles that can be used more simply within collections. Here is the collection:

Which embeds these relevant roles as submodules:

cognifloyd commented 3 years ago

For the epel role:

The geerlingguy.repo-epel role seems like the best role. There are a few of issues with it, but I've filed PRs to fix two them:

cognifloyd commented 3 years ago

For the nodejs role:

There are no node.js collections on galaxy. Possible roles:

cognifloyd commented 3 years ago

All redis modules are in the community.general collection: https://github.com/ansible-collections/community.general

They might need to be extracted into a community.redis collection.