MENU

ansible控制非22端口服务器

2017 年 09 月 13 日 • 杂乱文章

对于linux服务器,SSH使用默认22端口暴露在外网不是很安全,最好改一下,然后有一个问题就抛出来了,ansible默认是以22端口去连接受控端的,改了端口之后ansible要做一些特殊配置,否则无法连接,下面来解决一下这个问题,开撸。

修改iptables

先说明一下,现在还没有改,还是22端口,我三个服务器端口用的都是24680,先把iptables开了再说,我现在要向受控端传输的iptables配置文件都已经修改好的,拿过去直接用即可。

[root@ansible ~]# ansible aliyun -m copy -a "src=/config/iptables/iptables dest=/etc/sysconfig/iptables backup=yes"

20170913135719.png

重启iptables,看结果。

[root@ansible ~]# ansible aliyun -m service -a "name=iptables state=reloaded"
[root@ansible ~]# ansible aliyun -m shell -a "iptables -L -n | grep 24680 | grep -v grep"

20170913140448.png

修改ssh端口,查看结果,重启服务

[root@ansible ~]# ansible aliyun -m shell -a "sed -i 's#\#Port 22#Port 24680#g' /etc/ssh/sshd_config"
[root@ansible ~]# ansible aliyun -m shell -a "cat /etc/ssh/sshd_config | grep 24680"
[root@ansible ~]# ansible aliyun -m service -a "name=sshd state=restarted"

20170913141421.png

ansible配置

现在去检查一下他们是否还是存活状态,使用ping模块,这个ping和你们所以理解的ping是不一样的,ansible的ping指的是测试能否连接到受控端,如果连接失败,就代表挂了,如图所示。

[root@ansible ~]# ansible aliyun -m ping

20170913142002.png

批量分发秘钥

从分发秘钥开始吧,因为端口改了分发秘钥的命令和以前也不一样了,要加上端口号了,直接贴出来了。

#!/bin/bash
for aliyun in ip
  do
    sshpass -ppasswd ssh-copy-id  -i /root/.ssh/id_dsa.pub "-p24680 -o StrictHostKeyChecking=no root@"$aliyun""
done

修改hosts文件

修改ansible的host文件,将主机端口加到ip后面即可。

[root@ansible ~]# vim /etc/ansible/hosts
[aliyun]
1.1.1.45 ansible_ssh_port=24680
1.1.1.166 ansible_ssh_port=24680
1.1.1.41 ansible_ssh_port=24680

再次ping,绿了,一切恢复正常,可以继续安装服务了,结束。

20170913145205.png

最后编辑于: 2018 年 12 月 14 日
返回文章列表 文章二维码 打赏
本页链接的二维码
打赏二维码