Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dysosmus/ansible-completion
Basic bash completion for Ansible
https://github.com/dysosmus/ansible-completion
ansible bash completion shell
Last synced: 2 months ago
JSON representation
Basic bash completion for Ansible
- Host: GitHub
- URL: https://github.com/dysosmus/ansible-completion
- Owner: dysosmus
- License: gpl-3.0
- Created: 2014-03-06T14:48:48.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2021-03-25T21:42:43.000Z (almost 4 years ago)
- Last Synced: 2024-06-15T17:40:31.053Z (7 months ago)
- Topics: ansible, bash, completion, shell
- Language: Shell
- Homepage:
- Size: 47.9 KB
- Stars: 151
- Watchers: 13
- Forks: 49
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-repositories - dysosmus/ansible-completion - Basic bash completion for Ansible (Shell)
- awesome-list-ansible - ansible-completion
README
# ansible-completion
Provide a bash completion on host name, module name and options for [ansible](https://github.com/ansible/ansible "ansible git repository").
## Important
[As of Ansible 2.9, you can add shell completion of the Ansible command line utilities by installing an optional dependency called argcomplete. argcomplete supports bash, and has limited support for zsh and tcsh.](https://docs.ansible.com/ansible/devel/installation_guide/intro_installation.html#shell-completion)The difference with the official auto-completion is ansible-completion support completion of the hosts, based on the inventory file, and modules.
The official auto-completion is however much more up-to-date with all the arguments names.## Installation
1. Get the `ansible-completion.bash` file.
2. Copy/move the `ansible-completion.bash` in your `bash_completion.d`
folder (`/etc/bash_completion.d`, `/usr/local/etc/bash_completion.d`or `~/bash_completion.d`).3. **Or** copy/move it where you want and then load the `ansible-completion.bash` file in your `~/.bashrc` or `~/.profile` like that:
source ~/ansible-completion.bash4. Reload your shell with something like `source ~/.bashrc` or `source ~/.profile`
### Note for OSX
1. Clone the repo, install bash an auto-completion2 with homebew: ```brew install bash bash-completion2```
2. Change your terminal bash to a homebrew one by setting the ```command``` option to ```/usr/local/bin/bash```
3. 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
```
2. Create a symbolik link for ``` ansible-completion.bash```:```
ln -vs ~/soft/ansible-completion/ansible-completion.bash /usr/local/share/bash-completion/completions/ansible
```## Good to know
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` seconds.
## Contributors
- [ogarcia](https://github.com/ogarcia)
- [pheanex](https://github.com/pheanex) (ansible-* completions)
- [DenKoren](https://github.com/DenKoren)
- [hryamzik](https://github.com/hryamzik)
- [mrqwer88](https://github.com/mrqwer88)
- [wolfgangkarall](https://github.com/wolfgangkarall)