-
Notifications
You must be signed in to change notification settings - Fork 39
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
10.0 redis clustering #26
Comments
i have maybe found awx it's now using postgres for inter-node communication i try and send feedback |
Indeed 11.0.0 is the latest tag. Custom clustering with RabbitMQ as this playbook provides seems to no longer be relevant. |
@sebstyle yes clustering use notification postgresql for communication internode |
Just chiming in - AWX isn't using any sort of redis clustering; every redis on every node is unaware of the others (if you all have questions, I'm happy to answer them). |
Hi Ryan, What is the high-level process for clustering Local Docker installations now that Redis is implemented and inter-node communication is done through PostgreSQL? |
I have clustered some AWX nodes by just writing a wrapper around the official role local_docker I have not fully tested every feature, but these are the steps required that I know of:
- name: 'include official installation role "local_docker"'
include_role:
name: '/tmp/awx/installer/roles/local_role'
vars:
secret_key: '{{ lookup("your_secret_provider_plugin", "params") }}'
admin_password: '{{ lookup("your_secret_provider_plugin", "params")}}'
broadcast_websocket_secret: '{{ lookup("your_secret_provider_plugin", "params") }}'
pg_hostname: 'your_postgres_server'
project_data_dir: " - \"~/.awx/awxcompose/settings.py\":\"/etc/tower/settings.py\"\n - \"{{ your_desired_project_data_dir }}"
(...) |
Hi everyone. How about this: https://github.com/fitbeard/awx-ha-cluster |
I've used a lot of your functionality in making my own AWX 11+ installer, particularly your use of a Key Vault lookup plugin! (You use Hashicorp, I use AKV, but same idea!) I'd been wrestling for a while with how to use the inventory file securely...but avoiding it completely is entirely nicer. |
Thanks for sharing it! Gonna test ASAP. |
Do you know why the web node try to contact all worker node in cluster in same port of web node ? The worker is not exposed with docker AWX version 11.2 2020-06-04 15:36:04,890 DEBUG awx.main.wsbroadcast Connection from vldvaawx02-web to vldvaawx02-worker attempt number 10. thanks |
Yep. Starting with the removal of RabbitMQ, when a playbook runs on a certain node, the stdout events are broadcast to all other cluster nodes via websockets/ASGI over port 443. This is how you can run a playbook on Node A, but view the streaming stdout results on Node B. Previously, our RabbitMQ clustering had a similar model which required shared network activity amongst the nodes, and this new ASGI traffic in the redis implementation is the analog to that behavior, so a requirement for this behavior to work in any clustered AWX installs is that each node/instance is routable to each other instance via some address on port 443. from ansible/awx#5443:
|
@ryanpetrello thanks for you response , ok i inderstand now ! but in this config the task can't run without web in node ? all node must contain worker and web composant right ? |
@chris93111 With the way AWX works today, that's correct. |
@sujiar37 @chris93111 since we're here chatting, another thing you may care to know about this - though I don't think it strictly affects clustering - is that in the near future, we're considering removing memcached entirely (because redis sort of serves the same purpose). I don't anticipate any notable changes for you all downstream aside from "point Django's caching at redis instead of memcached" Details here: ansible/awx#6932 This is likely coming in the next major version of AWX in the coming weeks (12.0.0). |
@ryanpetrello yes i have read this in google ansible project :) Thanks for this information ;) |
@fitbeard This is great, thank you so much for your work and helping the community with the recent updates. Unfortunately due to other engagements, I couldn't look deeper and follow up after the version 10.0 with the introduction of redis clustering. @ryanpetrello Great to see you here, Appreciate your comments and thank you for those information's. |
Hi @sujiar37
10.0 is available but i rabbitmq is replace by redis
i have see redis cluster is possible with master an slave but i don't know if is target for the cluster awx
because is use socket
https://github.com/ansible/awx/pull/6034/files
Do you have see ? do you have any idea of integration of redis in the cluster ?
The text was updated successfully, but these errors were encountered: