Metadata-Version: 2.1
Name: ansibleconnect
Version: 1.0.3
Summary: Connect to all hosts from the ansible inventory with one command
Home-page: https://github.com/psykulsk/ansibleconnect
Author: Piotr Sykulski
Author-email: pitersk@gmail.com
License: MIT
Description: # Ansibleconnect - connect to all hosts from the inventory with one command
        
        
        Ansible Version | CI Status
        ---------|:---------
        2.5    | [![Ansible 2.5 Build Status](https://travis-ci.com/psykulsk/ansibleconnect.svg?branch=master&&env=USED_ANSIBLE_VERSION=2.5)](https://travis-ci.com/psykulsk/ansibleconnect)
        2.6    | [![Ansible 2.6 Build Status](https://travis-ci.com/psykulsk/ansibleconnect.svg?branch=master&&env=USED_ANSIBLE_VERSION=2.6)](https://travis-ci.com/psykulsk/ansibleconnect)
        2.7    | [![Ansible 2.7 Build Status](https://travis-ci.com/psykulsk/ansibleconnect.svg?branch=master&&env=USED_ANSIBLE_VERSION=2.7)](https://travis-ci.com/psykulsk/ansibleconnect)
        2.8    | [![Ansible 2.8 Build Status](https://travis-ci.com/psykulsk/ansibleconnect.svg?branch=master&&env=USED_ANSIBLE_VERSION=2.8)](https://travis-ci.com/psykulsk/ansibleconnect)
        2.9    | [![Ansible 2.9 Build Status](https://travis-ci.com/psykulsk/ansibleconnect.svg?branch=master&&env=USED_ANSIBLE_VERSION=2.9)](https://travis-ci.com/psykulsk/ansibleconnect)
        
        
        ## SSH into all hosts in your inventory with one command.
        
        Ansibleconnect creates a bash script based on your ansible inventory.
        That script will create a new tmux window or session and create a separate pane
        for each one of your 'sshable' inventory hosts. Inside of each of the
        panes an ssh connection to the pane's host will be established.
        
        ![](doc/demo.gif)
        
        ### Setup example (on Ubuntu):
        ```
        sudo apt install tmux
        sudo apt install sshpass
        pip install ansibleconnect
        ```
        
        ### Usage examples:
        
        Connect to all hosts in inventory:
        ```
        source <(ansibleconnect -i inventory.yml)
        ```
        
        Connect to all hosts from group1 and group2:
        ```
        source <(ansibleconnect -i inventory.yml -g 'group1:group2')
        ```
        
        Connect to all hosts from group1 except for hosts that are also in group2:
        ```
        source <(ansibleconnect -i inventory.yml -g 'group1:!group2')
        ```
        
        Connect to all hosts from inventory except for hosts in group1:
        ```
        source <(ansibleconnect -i inventory.yml -g '!group1')
        ```
        
        Connect to all hosts that have AWS provider:
        ```
        source <(ansibleconnect -i inventory.yml -vars provider:aws)>
        ```
        
        **NOTE:** In case you don't use bash. You can also use *eval* command, for example:
        ```
        eval "$(ansibleconnect -i inventories/inventory.yml)"
        ```
        
        #### Possible flags
        
        * `-i`, `--inventory` - Path to ansible inventory
        * `-g`, `--groups` - Inventory groups of hosts to connect to (multiple groups should be concentrated with *:*. *!* in front of group name means that ansibleconnect should not connect to hosts form this group). Example: `-g computes:!storage`
        * `--hosts` - List of hostnames to connect to. Example: `--hosts hostA,hostB`
        * `-vars`, `--variables` - Variables that host should have defined in inventory to connect to it. Accepted format: *key:value* in case where host should have variable with specific value or *key* in case where host should have defined variable no matter what value. Example: `-v type:dev,team:ui`
        * `-novars`, `--no-variables` - Variables that host should not have defined in inventory to connect to it. Accepted format: *key:value* in case where host should not have variable with specific value or *key* in case where host should not have defined variable no matter what value.Example: `-novars type:prod,team:sales`
        
        #### Configuration
        
        Ansibleconnect looks for the `ansible.cfg` file in the same locations as ansible. 
        
        ### Authentication
        
        
        #### ssh-agent
        
        For authentication one can use ssh keys. `ansibleconnect` will scan the inventory file for connection options (`ansible_ssh_common_args`, `ansible_ssh_user`, `ansible_host`, `ansible_private_key_file`, etc.). Ssh keys can be passed via them. Otherwise, one can use the `ssh-agent` tool. Environment args (`SSH_AGENT_PID` and `SSH_AUTH_SOCK`) will be passed to each one of the tmux shells.
        
        ##### ssh-agent setup example
        ```
        eval $(ssh-agent)
        ssh-add ~/.ssh/my_private_key.pem
        ```
        
        #### sshpass
        
        If `ansible_ssh_pass` variable is used in the inventory, one should install the `sshpass` and make it discoverable via `PATH`. Please note that when using the sshpass, password will passed in plaintext and it will be saved in each of the tmux shells' history.
        
Platform: UNKNOWN
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: System Administrators
Classifier: Topic :: Utilities
Classifier: Topic :: System :: Systems Administration
Description-Content-Type: text/markdown
