Open cognifloyd opened 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
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.
In StackStorm/ansible-st2#229, the geerlingguy.rabbitmq role was recommended. However, that role has three issues:
ansible_os_family
instead of ansible_facts.os_family
.Now searching for other alternatives for rabbitmq.
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
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:
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:
For the nodejs role:
There are no node.js collections on galaxy. Possible roles:
All redis modules are in the community.general
collection:
https://github.com/ansible-collections/community.general
redis
moduleredis_info
moduleredis
lookup pluginredis
cache pluginThey might need to be extracted into a community.redis
collection.
davidwittman.redis
role covers a lot of redis versions and install methods. It builds redis and can configure HA (replication, sentinel).
with_first_found
instead of loop
, non-namespaced facts,
One of the goals of this collection:
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: