ansible初识(三)--ansible主机清单及基于key验证的配置

本文介绍了Ansible的基本语法和使用方法,包括如何通过主机清单管理目标主机,解决因主机未在清单中导致的连接问题。文章还详细阐述了Ansible默认基于SSH密钥验证的机制,分析了首次连接时的安全性确认问题,并提供了关闭主机键检查的配置方法,以及如何通过SSH公钥授权实现无密码登录多台主机。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一:ansible基本语法:
[root@centos7 ~]# ansible --help
Usage: ansible [options] //ansible 主机ip 选项
在这里插入图片描述

实例演示:
在这里插入图片描述
注意:ping
此处的ping是模块,测试管理端与被管理端连接状况(并不等于ping命令),测试主控端与被控端连通性,被控端是否存在,若存在,则回应“pong”

报错原因:
此时会报错是因为在主机清单中没有目标主机的ip,无法进行匹配,因此无法对目标主机进行操作

解决办法:
在主机清单inventory中加入目标主机

在这里插入图片描述
[root@centos7 ~]# vim /etc/ansible/hosts 一般加到最后一行

在这里插入图片描述
也可以对主机清单进行分组管理,在主机清单中对不同主机进行分组
在这里插入图片描述
在这里插入图片描述
也可以这样哦,表示101,102,103三台主机
在这里插入图片描述
再次尝试实例演示中第一个ad-hoc命令:
会发现此时虽然在主机清单中加了目标主机,但是目标主机依然不会做出回应,是因为ansible默认是基于ssh登陆连接,基于key进行验证登陆的,因此在连接之前需要对主机进行安全性认证
(在目前没有做基于key认证时,可以加上选项-k进行用户账号口令验证)
在这里插入图片描述报错原因:
  当ansible首次去进行ssh连接一个服务器的时候,由于在本机的~/.ssh/known_hosts文件中并有fingerprint key串,ssh第一次连接的时候一般会提示输入yes 进行确认 ,是为了将key字符串加入到 ~/.ssh/known_hosts 文件中,而在此之前没有ssh连接过此目标主机,没有输入yes进行确认,目标主机会认为此主机是一个不可信任的主机,故回报如上错误。
解决办法:
修改ansible.cfg文件
vim /etc/ansible/ansible.cfg
找到以下行,让host_key_checking=False这行生效 //关闭第一次使用ansible连接客户端时需要输入yes确认提示

这也就是上一篇文章中ansible主配置文件中标绿色建议生效的原因

再次尝试:
在这里插入图片描述
注意:
这种加选项-k的方式只适用于只有一个目标主机或者多个密码口令一样的目标主机的情况下。如果有多个主机的情况下,这种方式只会询问一次密码口令,不会询问多次,而且并不会按照顺序询问

现以两个密码不同的目标主机做演示:
在这里插入图片描述
因为-k参数只是输入一次密码,因此当多台主机密码不同时,就很难实现目的。

因此ansible提供了一种基于key的验证来实现免密管理验证的方式,可以不用反复输入不同被控端主机的密码口令
配置基于key验证:
[root@centos7 ~]# ssh-keygen
在这里插入图片描述
给被控端推送公钥
[root@centos7 ~]# ssh-copy-id 192.168.24.131
[root@centos7 ~]# ssh-copy-id 192.168.24.129

推送过程中需要输入被控端主机密码
在这里插入图片描述
做完基于key验证后,主控端控制被控端就无需加-k选项重复输入密码:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值