ansible-hostmanager

CLI script to work with Ansible hosts file


Keywords
list, ssh, Ansible, hosts, file
License
MIT
Install
pip install ansible-hostmanager==0.2.5

Documentation

ansible-hostmanager

CLI script to work with Ansible hosts file

To install:

sudo pip3 install autopip
app install ansible-hostmanager

To show hosts:

$ ah list
/etc/ansible/hosts exists and will be used. To change, run: ah set-hosts <PATH>
Inventory has 4 host(s)
app-server1         1.2.3.4   [app, all]
app-server2         1.2.3.6   [app, all]
web-server          1.2.3.5   [web, all]
db-server           1.2.3.7   [db, all]

$ ah list app
app-server1         1.2.3.4   [app, all]
app-server2         1.2.3.6   [app, all]

To ssh to a host:

$ ah ssh db
# Runs `ssh 1.2.3.7`

$ ah ssh app
Found multiple matches and will use first one: app-server1, app-server2
# Runs `ssh 1.2.3.4`

$ ah ssh server1 ls /
bin
boot
dev
...

$ ah ssh -i ~/.ssh/alternative_id user@app1
# Runs `ssh -i ~/.ssh/alternative_id user@1.2.3.4`
# As long as hostname is first, or last, argument, it will get translated.

# To avoid having to remember `ah ssh` vs `ssh`, just create an `ssh` alias
# as any non-Ansible host / args would just be passed to `ssh` without change.
$ alias ssh=`ah ssh`
$ ssh user@not_ansible_host

Links & Contact Info