一、ansible修改组的ssh连接端口
前言:
ansible要连接好几组机器,因为有的机器不是使用22端口,所以需要修改
配置ansible的hosts配置文件,在hosts文件中指定variables
下面是一个例子:
- 表示一个web组,然后连接web组内机器的ssh端口为18822
[web]
192.168.3.102
192.168.3.103
192.168.3.104
[web:vars]
ansible_ssh_port=18822
接下来执行一条ansible命令:复制本机hosts文件到web组的机器上
因为我使用的不是root用户,但是有sudo权限,可使用-b --become-user=root
参数
ansible -i hosts web -b --become-user=root -m copy -a "src=/etc/hosts dest=/etc/hosts"
二、其他参数
如果没有配置免密,要使用密码登录,可以添加如下配置
[web:vars]
ansible_ssh_user=root
ansible_ssh_pass="xwp1234"
如果没有ssh登录过其他机器,使用这种密码登录的方式会报错,可通过修改ansible.cfg
host_key_checking = False
来解决,但是这种方式不是很安全。
可通过执行ansible命令是加入参数 --ssh-common-args="-o StrictHostKeyChecking=no"
来解决。推荐使用这种方式。
三、使用yaml格式
---
all:
web:
hosts:
192.168.3.102:
192.168.3.103:
192.168.3.104:
vars:
ansible_ssh_port: 18822
ansible_ssh_user: root
ansible_ssh_pass: xwp1234