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 模块来检查与目标主机的连接。


相关文章
|
2月前
|
运维 监控 Docker
构建高效微服务架构:从理论到实践构建高效自动化运维体系:Ansible与Docker的完美融合
【5月更文挑战第31天】 在当今软件开发的世界中,微服务架构已经成为了实现可伸缩、灵活且容错的系统的关键策略。本文将深入探讨如何从零开始构建一个高效的微服务系统,涵盖从概念理解、设计原则到具体实施步骤。我们将重点讨论微服务设计的最佳实践、常用的技术栈选择、以及如何克服常见的挑战,包括服务划分、数据一致性、服务发现和网络通信等。通过实际案例分析,本文旨在为开发者提供一套实用的指南,帮助他们构建出既健壮又易于维护的微服务系统。
|
10天前
|
运维 Java 测试技术
Spring运维之boo项目表现层测试加载测试的专用配置属性以及在JUnit中启动web服务器发送虚拟请求
Spring运维之boo项目表现层测试加载测试的专用配置属性以及在JUnit中启动web服务器发送虚拟请求
16 3
|
10天前
|
运维 网络安全 网络虚拟化
2024网络建设与运维赛题-交换配置教程
SW1, SW2, SW3作为核心交换机,配置了多个VLAN以隔离不同部门的网络,如产品、营销、财务和行政。配置中还包括启用VLAN访问控制,允许特定VLAN通过二层链路,并设置了链路聚合(LACP)以增强SW1和SW2之间的连接可靠性。此外,所有交换机都配置了IP VRF来支持分公司(Branch,RD 1:1)和Internet(RD 2:2)的虚拟专用网络。
2024网络建设与运维赛题-交换配置教程
|
1天前
|
运维 Linux 应用服务中间件
Linux之自动化运维工具ansible、ansible模块(2)
Linux之自动化运维工具ansible、ansible模块(2)
|
1天前
|
运维 Linux Shell
Linux之自动化运维工具ansible、ansible模块(1)
Linux之自动化运维工具ansible、ansible模块(1)
|
2月前
|
关系型数据库 MySQL 网络安全
ansible 深入介绍之 主机清单与playbook
ansible 深入介绍之 主机清单与playbook
|
2月前
|
运维 Devops 测试技术
构建高效自动化运维体系:基于Ansible的实践指南
【5月更文挑战第30天】 在当今IT基础设施管理领域,自动化已成为提高效率、确保一致性和减少人为错误的关键。本文将探讨如何利用Ansible这一强大的自动化工具来构建一个高效的运维自动化体系。文章不仅介绍了Ansible的基本原理和组件,还通过实际案例展示了如何集成Ansible到现有的运维流程中,以及如何处理常见的自动化挑战。读者将获得一套实用的策略和最佳实践,以优化其自动化运维工作。
|
2月前
|
运维 监控 安全
构建高效自动化运维体系:Ansible与Docker的完美结合
【5月更文挑战第28天】 在当今快速演变的IT环境中,自动化已成为维护系统稳定性与提高效率的关键。本文将探讨如何通过结合Ansible和Docker技术构建一个高效的自动化运维体系。文章不仅介绍两者的基本概念,还详细阐述了集成实践,以及通过真实案例分析其优势和潜在挑战,旨在为读者提供一套可行的解决方案,以优化他们的DevOps流程。
|
2月前
|
运维 Linux 程序员
最全树莓派4B安装64位Linux(不用显示器键盘鼠标),Linux运维面试送分题
最全树莓派4B安装64位Linux(不用显示器键盘鼠标),Linux运维面试送分题
最全树莓派4B安装64位Linux(不用显示器键盘鼠标),Linux运维面试送分题
|
1月前
|
运维 Linux Shell
运维:Linux服务器崩了怎么办,快来看看这份”急救命令指南“吧!
当服务器出现问题,如崩溃、内存耗尽或CPU使用率过高时,运维工程师需要保持冷静,并通过一系列Shell命令来诊断和解决。首先,检查是否有异常SSH登录活动,查看`/etc/passwd`和`.bash_history`文件,以及用户最近的登录信息。接着,监控网络连接和端口,使用`netstat`和`lsof`命令找出资源占用高的进程,并查看进程启动时间和详细信息。同时,排查可能的恶意文件,检查定时任务和服务配置以确保没有异常启动项。最后,分析系统日志,如`/var/log`目录下的各种日志文件,找出潜在问题。通过这些步骤,可以有效定位和解决服务器故障。

热门文章

最新文章