Skip to main content

Connect to all hosts from the ansible inventory with one command

Project description

Ansibleconnect - connect to all hosts from the inventory with one command

Ansible Version CI Status
2.5 Ansible 2.5 Build Status
2.6 Ansible 2.6 Build Status
2.7 Ansible 2.7 Build Status
2.8 Ansible 2.8 Build Status
2.9 Ansible 2.9 Build Status

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.

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ansibleconnect-1.0.31.tar.gz (7.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ansibleconnect-1.0.31-py3-none-any.whl (9.7 kB view details)

Uploaded Python 3

File details

Details for the file ansibleconnect-1.0.31.tar.gz.

File metadata

  • Download URL: ansibleconnect-1.0.31.tar.gz
  • Upload date:
  • Size: 7.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.0 requests-toolbelt/0.9.1 tqdm/4.41.0 CPython/3.6.8

File hashes

Hashes for ansibleconnect-1.0.31.tar.gz
Algorithm Hash digest
SHA256 6147f83c3b82325448a05e419ff2ad8ac517a81c646c015bd13fb708efe2fc9a
MD5 d5a9fb59cccac914955e442b2e206db3
BLAKE2b-256 0bad71617e45b83a0195cfd443ecdc9f997c0ed4c2fa3c8645da4878fbe00a18

See more details on using hashes here.

File details

Details for the file ansibleconnect-1.0.31-py3-none-any.whl.

File metadata

  • Download URL: ansibleconnect-1.0.31-py3-none-any.whl
  • Upload date:
  • Size: 9.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.0 requests-toolbelt/0.9.1 tqdm/4.41.0 CPython/3.6.8

File hashes

Hashes for ansibleconnect-1.0.31-py3-none-any.whl
Algorithm Hash digest
SHA256 7b8f7ef830f4994edad132f35619fc8da046d1a731c2b38d53d000ac0e5e42ca
MD5 d5a23d9abed66a2e780587d046596147
BLAKE2b-256 0e2ebca16939c9a850fb5efc0e13805de6873e777a1e4a7f07b855e686b0bbb7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page