Ansible详解(三)——Ansible主机清单

今天继续给大家介绍Linux运维相关知识,本文主要内容是Ansible的主机清定义。

一、Ansible主机清单定义方式

主机清单是Ansible的一个重要内容。在主机清单内,定义了Ansible需要控制的主机有哪些,以及其用户名、密码等信息,这些信息可以使得Ansible通过SSH链接到指定主机上。
Ansible的主机清单默认写在/etc/ansible/hosts文件中,我们在调用Ansible命令的时候,需要使用-i参数来指定主机清单文件。
Ansible的主机清单定义有两种方式,通过用户名和密码的方式或者是通过SSH密钥的方式。今天,我们就使用这两种方式来定义主机清单,尝试使用Ansible(192.168.136.20)来控制两台设备,分别是192.168.136.11和192.168.136.12。
在默认情况下,/etc/ansible/hosts文件为空的,我们需要手动的在文件内添加主机清单,在配置主机清单文件时,我们需要指定主机组,使用中括号可以设置一个主机组,中括号下的主机就属于该主机组。我们在执行Ansible命令的时候,必须指定主机组名。

二、基于用户名和密码定义主机清单

下面我们介绍第一种,基于用户名和密码来定义主机清单。
打开/etc/ansible/hosts文件,在文件的最后添加如下内容:

[exp]
192.168.136.11 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass=pzz
192.168.136.12 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass=pzz

ansible_ssh_port,ansible_ssh_user和ansible_ssh_pass三个参数分别定义了Ansible的SSH链接的端口号、用户名和密码。配置完成后,我们执行以下命令:

ansible -i /etc/ansible/hosts exp -m ping 

结果如下:
在这里插入图片描述
可以看出,我们的Ansible主机清单配置成功,Ansible正常的访问了两台主机设备。
注意,在上述配置完成后,有时我们去测试时会出现以下报错:
在这里插入图片描述
这种错误是由于我们尽管定义了主机清单,但是还需要在Ansible设备上手动的去链接以下客户端,执行命令:

ssh root@192.168.136.11

输入密码后链接成功,退出来之后就可以解决上述问题了。

三、基于SSH密钥来定义主机清单

除了上述方式之外,我们还可以基于SSH密钥来定义主机清单。
通过在Ansible设备上生成SSH密钥,然后把密钥发送给客户端,Ansible就可以使用密钥而不是使用密码来链接客户端并进行控制了。
Ansible设备上生成密钥命令如下:

ssh-keygen

根据提示,完成密钥生成,整个过程如下所示:
在这里插入图片描述
密钥生成后,我们还需要把密钥发送给客户端,注意,Ansible服务器给Ansible客户端发送了密钥,可以使得Ansible服务器使用密钥访问客户端。这样,Ansible服务器在访问客户端的时候就不需要使用密码了,如下所示:
在这里插入图片描述
这样,我们在定义主机清单的时候,就可以在/etc/ansible/hosts文件中,写入如下内容:

[exp]
192.168.136.11
192.168.136.12

我们再次尝试使用Ansible控制客户端,结果如下:
在这里插入图片描述
注,在上述过程中,如果出现对话框询问是否接收密钥,可以直接选择yes,表示接收密钥,每次重复上述过程都会使得一台设备正常。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

  • 8
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
自动化运维工具——ansible是一款开源的IT自动化工具,广泛应用于软件部署、配置管理和任务协同等领域。它的最大特点是简单易用、功能强大且跨平台。 首先,ansible具有简单易用的特点。它使用简单的YAML语言作为配置文件,无需编写复杂的脚本。用户只需要简单地定义主机和操作即可完成任务的执行。这使得即便是非开发人员,也能轻松上手使用ansible进行自动化管理。 其次,ansible功能强大。它支持广泛的操作系统、云平台和网络设备,并提供了丰富的模块化功能。通过在任务中使用ansible的模块,我们可以实现系统配置、软件安装、文件传输等各种常见操作。此外,ansible不仅支持并发执行任务,还能够将任务分组执行,并提供了强大的变量和条件控制功能。 再次,ansible跨平台。无论是在Linux、Unix还是Windows系统上,ansible都能够良好地运行。此外,它还支持云平台,如AWS、Azure等,以及网络设备,如Cisco、Juniper等。这使得ansible成为一个非常灵活的自动化运维工具,能够满足各种不同环境和需求的自动化管理。 最后,ansible还具有良好的社区支持。ansible拥有庞大的用户社区和活跃的开发者社区,有大量的文档、示例和插件可供参考和使用。这使得我们在使用ansible时能够获得快速解答和支持,同时也能够从社区中学习到更多的技巧和经验。 总而言之,ansible是一款简单易用、功能强大且跨平台的自动化运维工具。它在软件部署、配置管理和任务协同等方面具有广泛的应用,并且得到了良好的社区支持。无论是企业还是个人,都可以通过ansible来提高工作效率和自动化管理水平。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

永远是少年啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值