ansible-hostmanager
===================

CLI script to work with Ansible hosts file

To install::

    sudo pip3 install autopip
    app install ansible-hostmanager

To show hosts:

.. code-block:: console

    $ 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:

.. code-block:: console

    $ 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
====================

| PyPI Package: https://pypi.python.org/pypi/ansible-hostmanager
| GitHub Source: https://github.com/maxzheng/ansible-hostmanager
| Report Issues/Bugs: https://github.com/maxzheng/ansible-hostmanager/issues
|
| Follow: https://twitter.com/MaxZhengX
| Connect: https://www.linkedin.com/in/maxzheng
| Contact: maxzheng.os @t gmail.com
