I just setup the same HT801 but I used SIP-domains and twilio services/functions instead of SIP trunk and asterisk. I'll make sure to reply again once I have a write up.
This might be off-topic but, when can i get cloud-init for physical installs? Without jumping through ten hacks? Isn't that the future for installers given the amount of effort being put into the project and it's cross distro focus?
I'm genuinely curious on each of these questions, thanks for any insights!
Modules are where the python lives. Really well written, idempotent, and battle tested python.
But "writing" Ansible playbooks is definitely not python. It's its own dsl bastardized between yaml, jinja2 and reserved/special keywords. This is the worst thing I can say about the whole toolkit.
Unfortunately, I'm really productive with it and when I return to work I've written 3+ years ago:
A) It still runs
2) I can read and understand the intent of my playbooks
Anyone who thinks that any tool will make systems administration and automation "simple" has drank the kool-aide of some sales pitch.
Systems administration and automation is complex.
That being said I've found Ansible to be the most useful tool for the job. It does the things I need it to and new modules are usually easy to incorporate into my work if I need specific tasks done. It has its shortcomings but it hasn't blown up into an unmaintainable mess like many of the other solutions I've poured hundreds of hours into.
YAML is not fun, but it's been good enough for the task of pushing parameters around.
I'm a heavy ansible user and have not experienced anywhere close to this level of pain with ansible 2.10 and collections. None of my playbooks needed module names updated and this is not a syntax change. A fully qualified module name is simply being more explicit about where your desired module comes from in the infinitely extensible library of modules. If you use builtins or have only one of that module name installed you don't have to update anything. At least that has been my experience, although I primarily use builtin modules for a majority of my work.
I'm not saying the OP code isn't useful, but I do think that readers may be unaware of existing documented features and jumping into a library to solve their perceived problems is short changing the existing mechanisms.
I've gotten along ok with create_task and gather. I'll need to spend some time with this implementation to see if it fits any of my existing asyncio coding patterns.
This has provided an opportunity for exercising my seldom used downvote button. How apropos. This comment violates the first guideline on comments:
> Be kind. Don't be snarky. Have curious conversation; don't cross-examine. Comments should get more thoughtful and substantive, not less, as a topic gets more divisive.