Ansible自动化运维工具主机清单配置

简介: Ansible自动化运维工具主机清单配置

Ansible主机清单文件用于定义要管理的主机及其相关信息。它是Ansible的核心配置文件之一,用于Ansible识别目标主机并与其建立连接。


主机清单文件通常位于Ansible控制器的/etc/ansible/hosts目录下,也可自定义位置。文件内容使用YAML格式编写,语法简单易懂。

1.增加主机组

(host1做了免密登录 可以直接ssh访问)

(host2 没有免密登录 所以需要输入用户和密码才可以ssh访问)

这边host2访问失败也很正常因为没有设置免密需要用户和密码

访问的时候直接访问组 可以包括所有的主机 十分的方便

文件 /etc/ansible/hosts 是 Ansible 控制机上 Ansible 库存文件的默认位置。

有两种方法可以在此文件中定义主机:

  • 按组:将相似的主机分组以便更好地管理。
  • 单独:单独定义每个主机。
[root@localhost ~]# ansible webServer -m ping -o
host2 | UNREACHABLE!: Failed to connect to the host via 
ssh: ssh: Could not resolve hostname host2: Name or service not known
host1 | SUCCESS => {"ansible_facts": {"discovered_interpreter_python"
: "/usr/bin/python"}, "changed": false, "ping": "pong"}

2.增加用户名密码

我们在内部设置密码这样更加的方便快捷去访问

符合自动化运维的特征

接着我们在测试连通性(一举拿下!!!!!!!!!!!!)

ansible webServers -m ping -o

3.组变量

Ansible 组变量是一种将变量与主机关联的方式,用于为组内所有主机设置共享属性。这可以简化 Playbook 的编写,提高配置的一致性和可维护性。

优点

使用组变量具有以下优点:


提高代码简洁性: 无需在 Playbook 中重复定义相同变量,使代码更简洁易读。

增强配置一致性: 确保组内所有主机都使用相同的配置值,避免配置差异。

简化维护工作: 当需要修改配置时,只需修改组变量即可,无需逐个修改主机变量。

提高灵活性: 可以根据组的不同特征定义不同的变量,满足不同组的配置需求。

vim /etc/ansible/host

通过以下配置就是创建一个webServers组 并且加入两个主机 再给组赋予变量 用户名和密码 这样组下的所有主机都可以访问 更加的便捷

[webServers]
host1
host2
 
[webServers:vars]
ansible_ssh_user='root'
ansible_ssh_pass='abc-123'

常用的一些变量

4.子分组

Ansible 中的子分组

Ansible 主机清单支持多级分组功能,也被称为子分组。这是一种将主机组织成层级结构的有效方法,可以使清单更易于管理和维护,尤其是在复杂的环境中。

优点


使用子分组具有以下优点:


提高组织性: 将相关的主机分组在一起,使清单更加清晰明了,易于理解和查找目标主机。

简化管理: 可以对子组应用通用的配置和操作,减少重复任务,提高管理效率。

增强灵活性: 可以根据需要创建多级子分组,满足不同层次的管理需求。

支持条件过滤: 可以使用条件表达式过滤子组中的主机,更精准地定位目标主机。

没有定义webServers组之前

调用的时候需要单独去输出

[root@localhost ~]# ansible apache -m ping -o
host1 | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"}, "changed": false, "ping": "pong"}
[root@localhost ~]# ansible mysql -m ping -u root -k -o
SSH password: 
host2 | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"}, "changed": false, "ping": "pong"}

定义之后

调用webServers就等于调用apache,mysql 并且给组赋予的属性(用户名和权限)也可以使用

[root@localhost ~]# ansible webServers -m ping  -o
host2 | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"}, "changed": false, "ping": "pong"}
host1 | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"}, "changed": false, "ping": "pong"}

5.自定义主机列表

Ansible 提供了多种方式来定义和管理主机列表,除了默认的 /etc/ansible/hosts 文件之外,您还可以使用自定义主机列表。这提供了更大的灵活性,允许您根据需要从不同来源获取主机信息。

优点

使用自定义主机列表具有以下优点:

  • 灵活性: 可以从各种来源获取主机信息,例如数据库、API、文件等。
  • 可扩展性: 随着主机数量的增加,可以轻松添加新主机而无需手动修改清单文件。
  • 动态性: 可以根据主机状态或其他条件动态更新主机列表。
  • 可重用性: 可以创建多个自定义主机列表,并根据需要在 Playbook 中使用。


我们在当前的目录下定义一个hostlist 加入写好的配置衣语法

[root@localhost ~]# vim /etc/ansible/hosts 
[root@localhost ~]# ls
anaconda-ks.cfg
[root@localhost ~]# ls
anaconda-ks.cfg
[root@localhost ~]# vim hostlist
[root@localhost ~]# ls
anaconda-ks.cfg  hostlist

这时我们来测试一下

[root@localhost ~]# ansible -i hostlist webServers  -m ping -o
host2 | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"}, "changed": false, "ping": "pong"}
host1 | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"}, "changed": false, "ping": "pong"}
ansible -i hostlist webServers  -m ping -o

从hostlist中调用webServers这个组来检测


ansible :这是 Ansible 可执行命令。

-i hostlist :此选项指定要使用的清单文件。在本例中,您使用的是名为 hostlist 的自定义清单文件。

webServers :这是您要在其上执行 Ansible 模块的目标主机组或主机名。

-m ping :此选项指定您要运行的 Ansible 模块。在这里,您使用 ping 模块来检查与目标主机的连接。


相关文章
|
8天前
|
运维 应用服务中间件 网络安全
自动化运维的新篇章:使用Ansible进行服务器配置管理
【10月更文挑战第34天】在现代IT基础设施的快速迭代中,自动化运维成为提升效率、确保一致性的关键手段。本文将通过介绍Ansible工具的使用,展示如何实现高效的服务器配置管理。从基础安装到高级应用,我们将一步步揭开自动化运维的神秘面纱,让你轻松掌握这一技术,为你的运维工作带来革命性的变化。
|
3天前
|
运维 应用服务中间件 Linux
自动化运维的利器:Ansible在配置管理中的应用
【10月更文挑战第39天】本文旨在通过深入浅出的方式,向读者展示如何利用Ansible这一强大的自动化工具来优化日常的运维工作。我们将从基础概念讲起,逐步深入到实战操作,不仅涵盖Ansible的核心功能,还会分享一些高级技巧和最佳实践。无论你是初学者还是有经验的运维人员,这篇文章都会为你提供有价值的信息,帮助你提升工作效率。
|
1月前
|
运维 Linux Apache
Puppet 作为一款强大的自动化运维工具,被广泛应用于配置管理领域。通过定义资源的状态和关系,Puppet 能够确保系统始终处于期望的配置状态。
Puppet 作为一款强大的自动化运维工具,被广泛应用于配置管理领域。通过定义资源的状态和关系,Puppet 能够确保系统始终处于期望的配置状态。
51 3
|
6天前
|
运维 Ubuntu 应用服务中间件
自动化运维工具Ansible的实战应用
【10月更文挑战第36天】在现代IT基础设施管理中,自动化运维已成为提升效率、减少人为错误的关键手段。本文通过介绍Ansible这一流行的自动化工具,旨在揭示其在简化日常运维任务中的实际应用价值。文章将围绕Ansible的核心概念、安装配置以及具体使用案例展开,帮助读者构建起自动化运维的初步认识,并激发对更深入内容的学习兴趣。
26 4
|
4天前
|
机器学习/深度学习 数据采集 人工智能
智能运维:从自动化到AIOps的演进与实践####
本文探讨了智能运维(AIOps)的兴起背景、核心组件及其在现代IT运维中的应用。通过对比传统运维模式,阐述了AIOps如何利用机器学习、大数据分析等技术,实现故障预测、根因分析、自动化修复等功能,从而提升系统稳定性和运维效率。文章还深入分析了实施AIOps面临的挑战与解决方案,并展望了其未来发展趋势。 ####
|
5天前
|
运维 安全 应用服务中间件
自动化运维的利剑:Ansible在配置管理中的应用
【10月更文挑战第37天】本文将深入探讨如何利用Ansible简化和自动化复杂的IT基础设施管理任务。我们将通过实际案例,展示如何用Ansible编写可重用的配置代码,以及这些代码如何帮助运维团队提高效率和减少人为错误。文章还将讨论如何构建Ansible playbook来自动部署应用、管理系统更新和执行常规维护任务。准备好深入了解这个强大的工具,让你的运维工作更加轻松吧!
19 2
|
8天前
|
运维 监控 数据安全/隐私保护
自动化运维工具的设计与实现
【10月更文挑战第34天】在现代IT基础设施管理中,自动化运维工具扮演着至关重要的角色。它们不仅提高了运维效率,还确保了服务的连续性和稳定性。本文将深入探讨如何设计并实现一个自动化运维工具,从需求分析到功能实现,再到最终的测试与部署。我们将通过一个简单的代码示例来展示如何自动执行常见的运维任务,如日志清理和性能监控。文章旨在为读者提供一套完整的方法论,以便他们能够构建自己的自动化运维解决方案。
|
13天前
|
机器学习/深度学习 数据采集 运维
智能化运维:机器学习在故障预测和自动化响应中的应用
智能化运维:机器学习在故障预测和自动化响应中的应用
38 4
|
19天前
|
缓存 运维 应用服务中间件
自动化运维的新篇章:使用Ansible进行配置管理
【10月更文挑战第23天】随着云计算和微服务架构的兴起,传统的手动运维方式已经无法满足现代IT基础设施的需求。自动化运维成为提升效率、减少错误的关键。本文将介绍如何使用Ansible,一个流行的开源自动化工具,来简化配置管理和部署流程。我们将从基础概念出发,逐步深入到实战应用,展示如何通过编写Playbook来实现服务器的自动化配置和管理。
|
1月前
|
存储 运维 监控
高效运维:从基础架构到自动化管理的全面指南
【10月更文挑战第11天】 本文将深入探讨如何通过优化基础架构和引入自动化管理来提升企业IT运维效率。我们将从服务器的选择与配置、存储解决方案的评估,到网络的设计与监控,逐一解析每个环节的关键技术点。同时,重点讨论自动化工具在现代运维中的应用,包括配置管理、持续集成与部署(CI/CD)、自动化测试及故障排除等方面。通过实际案例分析,展示这些技术如何协同工作,实现高效的运维管理。无论是IT初学者还是经验丰富的专业人员,都能从中获得有价值的见解和实操经验。
61 1