Ansible non standard ssh port
Posted by danielFeb 4
How to run playbooks against a host running ssh on a port other than port 22.
Ansible is a simple automation or configuration management tool, which allows to execute a command/script on remote hosts in an adhoc or using playbooks. It is push based, and uses ssh to run the playbooks against remote hosts. The below steps are on how to run ansible playbooks on a host running ssh on port 2222.
One of the hosts managed by ansible is running in a non-default port. It is a docker container listening on port 2222. Actually ssh in container listens on port 22, but the host redirect port 2222 on host to port 22 on container.
1. Use environment variable –
ansible-playbook tasks/app-deployment.yml --check -e ansible_ssh_port=2222
2. specify the port in the inventory or hosts file –
Under hosts file set the hostname to have the format ‘server:port’ –
[docker-hosts]
docker1:2222
Let us run the playbook now –
root@linubuvma:/tmp/ansible# cat tasks/app-deployment.yml - hosts: docker-hosts vars: app_version: 1.1.0 tasks: - name: install git apt: name=git state=latest - name: Checkout the application from git git: repo=https://github.com/docker/docker-py.git dest=/srv/www/myapp version={{ app_version }} register: app_checkout_result root@linubuvma:/tmp/ansible# ansible-playbook tasks/app-deployment.yml PLAY [docker-hosts] ************************************************************ TASK: [install git] *********************************************************** changed: [docker1] TASK: [Checkout the application from git] ************************************* changed: [docker1] PLAY RECAP ******************************************************************** docker1 : ok=2 changed=2 unreachable=0 failed=0
References –
http://docs.ansible.com/
http://docs.ansible.com/ansible/intro_inventory.html
No comments
You must be logged in to post a comment.