Provide a bash completion on host name, module name and options for ansible.
- 
Get the
ansible-completion.bashfile. - 
Copy/move the
ansible-completion.bashin yourbash_completion.dfolder (/etc/bash_completion.d,/usr/local/etc/bash_completion.dor~/bash_completion.d). - 
Or copy/move it where you want and then load the
ansible-completion.bashfile in your~/.bashrcor~/.profilelike that: source ~/ansible-completion.bash - 
Reload your shell with something like
source ~/.bashrcorsource ~/.profile 
- 
Clone the repo, install bash an auto-completion2 with homebew:
brew install bash bash-completion2 - 
Change your terminal bash to a homebrew one by setting the
commandoption to/usr/local/bin/bash - 
Add the following code to your
~/.profile:if [ -f $(brew --prefix)/share/bash-completion/bash_completion ]; then . $(brew --prefix)/share/bash-completion/bash_completion fi - 
Create a symbolik link for
ansible-completion.bash:ln -vs ~/soft/ansible-completion/ansible-completion.bash /usr/local/share/bash-completion/completions/ansible 
If the --module-path (-M) or --inventory-file (-i) is on the command line, the completion will use it.
For the completion on module name, the completion script build a cache of modules names.
You can set the cache timeout with the environement variable ANSIBLE_COMPLETION_CACHE_TIMEOUT, the default value is 120 secondes.