I like Ansible's approach to management. Don't need almost anything at
managed hosts. Don't need any central daemon. Copy the module, run, get
results, remove, repeat. Easy.
But unfortunately can be slow.
I have a playbook with ~200 actions. It takes 20 seconds to run with
'-c local'. About a minute if use SSH to localhost. Connecting and
disconnecting for every step really makes things slower... And 12 minutes
if used with remote server. Shared SSH connections (ControlMaster /
ControlPersist) are enabled, servers aren't too busy but located in
different datacenters.
ansible-pull is nice, but not really what I would like. I don't need to
run tasks via Cron, I need to trigger them manually. Also will need to
have central Git repository for playbooks. Being able to run Ansible,
look at output and fix problems if any is much more desirable than
getting reports about errors by e-mail or something similar.
Don't need to tell. Everyone here knows advantages of usual Ansible
usage way
So. Aren't there any plans to change usual process which now requires
additional connections and steps? I understand that it helps to make
thing more easy, but anyway...
Require Ansible to be installed on remote computer, copy playbook, run
with '-c local' and show results in the same way as now? Or just copy
Ansible there together with playbook and remove when execution finished?
Don't copy full Ansible, but some smaller (and having less dependencies)
script and provide it with playbook already parsed at central server (I
dont't know if this is reasonable)?
Quite big changes. A bit simpler one would be to create temp directory
and upload all modules only once, don't repeat this for every 'action'
line in playbook. As for now one can see in debug (-vvv) output 5
actions related to network activity:
<127.0.0.1> EXEC mkdir -p
$HOME/.ansible/tmp/ansible-1348675481.15-70644186131164 && chmod a+rx
$HOME/.ansible/tmp/ansible-1348675481.15-70644186131164 && echo
$HOME/.ansible/tmp/ansible-1348675481.15-70644186131164
<127.0.0.1> REMOTE_MODULE setup
<127.0.0.1> PUT /tmp/tmpLYtBRt TO
/home/alopropoz/.ansible/tmp/ansible-1348675481.15-70644186131164/setup
<127.0.0.1> EXEC chmod u+x
/home/alopropoz/.ansible/tmp/ansible-1348675481.15-70644186131164/setup
<127.0.0.1> EXEC
/home/alopropoz/.ansible/tmp/ansible-1348675481.15-70644186131164/setup
<127.0.0.1> EXEC rm -rf
/home/alopropoz/.ansible/tmp/ansible-1348675481.15-70644186131164/
As for me, creating directory, uploading module, making it executable
and removing directory can be done only once for playbook, so eliminating
4 of 5 network-related actions. Does this make sense?