Ansible主机清单

华子目录

  • 管理`Ansible静态清单`
    • 1.定义主机清单
    • 2.两种方式定义`主机清单`
    • 3.使用`静态主机`清单指定受管主机(默认)
      • 3.1产生原因
      • 3.2`静态主机清单`文件本质
      • 3.3清单内容分析(不分组)
      • 3.4清单内容分析(分组)
      • 3.5通过范围简化主机清单写法
      • 3.6嵌套分组
    • 4.自定义主机清单
    • 5.有选择地查看主机和组

管理Ansible静态清单

1.定义主机清单

  • 作用:主机清单用于定义ansible将要管理的一批主机,这些主机也可以分配到组中,以进行集中管理组中也可以包含子组一台主机也可以是多个组中的成员。

2.两种方式定义主机清单

  • 静态主机清单可以通过文本文件定义
  • 动态主机清单可以根据需要通过脚本其他程序生成

3.使用静态主机清单指定受管主机(默认)

3.1产生原因

  • Ansible服务是用于实现主机批量自动化控制的管理工具,受管的主机一定不是一两台,而是数十台甚至成百上千台,那么主机清单inventory)在生产环境中可以起到重要作用。

3.2静态主机清单文件本质

  • Ansible目标受管主机的文本文件
  • 路径:/etc/ansible/hosts

3.3清单内容分析(不分组)

  • 格式:一行书写一个主机IP或主机名
  • 例:
[root@server ~]#  vim  /etc/ansible/hosts
node1.example.com
node2.example.com
  • 查看主机清单内容
[root@server ~]# ansible all --list-hosts   #all的意思是所有组hosts (2):    #数字表示主机数node1.example.comnode2.example.com
  • 尝试ping
[root@server ~]# ansible all -m ping
node2.example.com | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python3"},"changed": false,"ping": "pong"
}
node1.example.com | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python3"},"changed": false,"ping": "pong"
}

3.4清单内容分析(分组)

  • 作用:按照主机的地理位置工作性质进行分组,如:开发机(dev)测试机(test)产品(prod)
  • 分组格式:
[组名]    #名字自定义
一行一个IP或主机名
[root@server ~]# vim  /etc/ansible/hosts
[dev]
node1.example.com
[test]
node2.example.com
  • 查看分组内容
[root@server ~]# ansible-inventory --graph
@all:|--@ungrouped:    #未分组的主机,当前无|--@dev:|  |--node1.example.com|--@test:|  |--node2.example.com
  • 查看单个组的内容
#查看未分组的主机信息
[root@server ~]# ansible ungrouped --list-hosts 
[WARNING]: No hosts matched, nothing to dohosts (0):#查看dev组的主机信息
[root@server ~]# ansible dev --list-hostshosts (1):node1.example.com#查看test组的主机信息
[root@server ~]# ansible test --list-hostshosts (1):node2.example.com
  • 分组操作
[root@server ~]# ansible dev -m ping   #向dev组的主机发送ping命令
node1.example.com | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python3"},"changed": false,"ping": "pong"
}[root@server ~]# ansible test -m ping  #向test组的主机发送ping命令
node2.example.com | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python3"},"changed": false,"ping": "pong"
}

3.5通过范围简化主机清单写法

  • IP格式
[root@server ~]# vim /etc/ansible/hosts
[root@server ~]# cat /etc/ansible/hosts
192.168.80.[100:120][root@server ~]# ansible all --list-hostshosts (21):192.168.80.100192.168.80.101192.168.80.102192.168.80.103192.168.80.104192.168.80.105192.168.80.106192.168.80.107192.168.80.108192.168.80.109192.168.80.110192.168.80.111192.168.80.112192.168.80.113192.168.80.114192.168.80.115192.168.80.116192.168.80.117192.168.80.118192.168.80.119192.168.80.120
  • 分组
[root@server ~]# vim /etc/ansible/hosts
[root@server ~]# cat /etc/ansible/hosts
192.168.80.100   #未分组的写在上面
192.168.80.101[dev]
192.168.80.[102:109][test]
1092.168.80.[110:120][prod]
192.168.80.[111:130]
[root@server ~]# ansible-inventory --graph
@all:|--@ungrouped:      # 未分组|  |--192.168.80.100|  |--192.168.80.101|--@dev:            # dev组|  |--192.168.80.102|  |--192.168.80.103|  |--192.168.80.104|  |--192.168.80.105|  |--192.168.80.106|  |--192.168.80.107|  |--192.168.80.108|  |--192.168.80.109|--@test:             # test组|  |--1092.168.80.110|  |--1092.168.80.111|  |--1092.168.80.112|  |--1092.168.80.113|  |--1092.168.80.114|  |--1092.168.80.115|  |--1092.168.80.116|  |--1092.168.80.117|  |--1092.168.80.118|  |--1092.168.80.119|  |--1092.168.80.120|--@prod:            # prod组|  |--192.168.80.111|  |--192.168.80.112|  |--192.168.80.113|  |--192.168.80.114|  |--192.168.80.115|  |--192.168.80.116|  |--192.168.80.117|  |--192.168.80.118|  |--192.168.80.119|  |--192.168.80.120|  |--192.168.80.121|  |--192.168.80.122|  |--192.168.80.123|  |--192.168.80.124|  |--192.168.80.125|  |--192.168.80.126|  |--192.168.80.127|  |--192.168.80.128|  |--192.168.80.129|  |--192.168.80.130
  • 名称格式:[A:B].example.com

3.6嵌套分组

  • 格式
[子组1名]
主机列表[子组2名]
主机列表[子组3名]
主机列表[父组名:children]    
子组1名
子组2名
子组3名
[root@server ~]# vim /etc/ansible/hosts
[root@server ~]# cat /etc/ansible/hosts
192.168.80.100
192.168.80.101[dev]
192.168.80.[102:109][test]
1092.168.80.[110:120][prod]
192.168.80.[111:130][Father:children]
dev
test
prod
[root@server ~]# ansible-inventory --graph
@all:|--@ungrouped:|  |--192.168.80.100|  |--192.168.80.101|--@Father:|  |--@dev:|  |  |--192.168.80.102|  |  |--192.168.80.103|  |  |--192.168.80.104|  |  |--192.168.80.105|  |  |--192.168.80.106|  |  |--192.168.80.107|  |  |--192.168.80.108|  |  |--192.168.80.109|  |--@test:|  |  |--1092.168.80.110|  |  |--1092.168.80.111|  |  |--1092.168.80.112|  |  |--1092.168.80.113|  |  |--1092.168.80.114|  |  |--1092.168.80.115|  |  |--1092.168.80.116|  |  |--1092.168.80.117|  |  |--1092.168.80.118|  |  |--1092.168.80.119|  |  |--1092.168.80.120|  |--@prod:|  |  |--192.168.80.111|  |  |--192.168.80.112|  |  |--192.168.80.113|  |  |--192.168.80.114|  |  |--192.168.80.115|  |  |--192.168.80.116|  |  |--192.168.80.117|  |  |--192.168.80.118|  |  |--192.168.80.119|  |  |--192.168.80.120|  |  |--192.168.80.121|  |  |--192.168.80.122|  |  |--192.168.80.123|  |  |--192.168.80.124|  |  |--192.168.80.125|  |  |--192.168.80.126|  |  |--192.168.80.127|  |  |--192.168.80.128|  |  |--192.168.80.129|  |  |--192.168.80.130

4.自定义主机清单

  • /root目录下创建一个名称为inv的自定义主机清单
[root@server ~]# vim  /root/inv[web]
node1.example.com
node2.example.com
  • 查看自定义主机清单
  • -i指定自定义的主机清单
[root@server ~]# ansible all -i /root/inv --list-hostshosts (2):node1.example.comnode2.example.com
[root@server ~]# ansible web -i /root/inv --list-hostshosts (2):node1.example.comnode2.example.com

5.有选择地查看主机和组

[root@server ~]# vim  /etc/ansible/hosts192.168.48.254[web]
192.168.48.[130:133][http]
192.168.48.[134:135][ftp]
192.168.48.[136:139][dns]
192.168.48.[140:145][mail]
192.168.48.[143:146]
  • 查看全部主机
[root@server ~]# ansible all --list-hostshosts (18):192.168.48.254192.168.48.130192.168.48.131192.168.48.132192.168.48.133192.168.48.134192.168.48.135192.168.48.136192.168.48.137192.168.48.138192.168.48.139192.168.48.140192.168.48.141192.168.48.142192.168.48.143192.168.48.144192.168.48.145192.168.48.146
  • 查看单个组
[root@server ~]# ansible dns --list-hostshosts (6):192.168.48.140192.168.48.141192.168.48.142192.168.48.143192.168.48.144192.168.48.145
  • 匹配多个组
#    &表示交集
[root@server ~]# ansible 'dns:&mail' --list-hostshosts (3):192.168.48.143192.168.48.144192.168.48.145
#    !表示补集,即属于dns组但不属于mail组
[root@server ~]# ansible 'dns:!mail' --list-hostshosts (3):192.168.48.140192.168.48.141192.168.48.142
# 不属于dns组但属于mail组
[root@server ~]# ansible '!dns:mail' --list-hostshosts (1):192.168.48.146
#   并集
[root@server ~]# ansible 'dns:mail' --list-hostshosts (7):192.168.48.140192.168.48.141192.168.48.142192.168.48.143192.168.48.144192.168.48.145192.168.48.146[root@server ~]# ansible 'dns:mail:ftp' --list-hostshosts (11):192.168.48.140192.168.48.141192.168.48.142192.168.48.143192.168.48.144192.168.48.145192.168.48.146192.168.48.136192.168.48.137192.168.48.138192.168.48.139

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/867202.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

void *指针与其他类型指针间赋值

#include<stdio.h> int main() {int a;int *p = &a;void *z = p;char *c = z; }上面的代码编译并不一定会有报错和告警信息,但有些是需要注意的。 分析: int a;:定义了一个整型变量a。 int *p = &a;:定义了一个指向整型变量的指针p,指向变量a的地址。 void…

2024亚太杯中文赛数学建模B题完整论文讲解(含每一问python代码+结果+可视化图)

大家好呀&#xff0c;从发布赛题一直到现在&#xff0c;总算完成了2024 年第十四届 APMCM 亚太地区大学生数学建模竞赛B题洪水灾害的数据分析与预测完整的成品论文。 本论文可以保证原创&#xff0c;保证高质量。绝不是随便引用一大堆模型和代码复制粘贴进来完全没有应用糊弄人…

web服务之Nginx

web服务之Nginx &#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:Li…

将IConfiguration对象转换成一个具体的对象,以面向对象的方式来使用配置

我们倾向于将IConfiguration对象转换成一个具体的对象&#xff0c;以面向对象的方式来使用配置&#xff0c;我们将这个转换过程称为配置绑定。除了将配置树叶子节点配置节的绑定为某种标量对象外&#xff0c;我们还可以直接将一个配置节绑定为一个具有对应结构的符合对象。除此…

电脑截图的快捷键

以下是几种电脑截图的快捷键&#xff1a; Windowsshifts&#xff1a;矩形截图、任意形状截图、全屏截图&#xff08;需要安装office2010以后的版本&#xff0c;有onenote这附件&#xff09;1CtrlAltR&#xff1a;页面区域截屏CtrlAltV&#xff1a;可视页面截屏CtrlAltH&#x…

C++中的进程和线程的通信交互

一.死锁的问题 原因&#xff1a;多个进程或线程共享资源造成的一种僵持状态&#xff1a;1.竞争系统资源&#xff1b;2.进程的推进顺序不当&#xff1b; 产生的必要条件&#xff1a;1.互斥条件&#xff1b;2.请求和保持条件&#xff1b;3.不可剥夺条件&#xff1b;4.环路等待条…

【音视频 | RTSP】RTSP协议详解 及 抓包例子解析(详细而不赘述)

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…

华为开发者大会2024纪要:鸿蒙OS的全新篇章与AI大模型的革命

华为开发者大会2024纪要:鸿蒙OS的全新篇章与AI大模型的革命 在科技的浪潮中,华为再次引领潮流,2024年的开发者大会带来了一系列令人瞩目的创新成果。从鸿蒙操作系统的全新Beta版到盘古大模型的震撼发布,华为正以前所未有的速度重塑智能生态。以下是本次大会的亮点,让我们…

中英双语介绍四大会计师事务所(Big Four accounting firms)

中文版 “四大会计师事务所”&#xff08;Big Four accounting firms&#xff09;是全球最具影响力和规模最大的四家专业服务公司&#xff0c;它们在审计、税务、咨询和财务咨询等领域占据着主导地位。这四家公司分别是普华永道&#xff08;PwC&#xff09;、德勤&#xff08;…

MUNIK解读ISO26262--系统架构

功能安全之系统阶段-系统架构 我们来浅析下功能安全系统阶段重要话题——“系统架构” 目录概览&#xff1a; 系统架构的作用系统架构类型系统架构层级的相关安全机制梳理 1.系统架构的作用 架构的思维包括抽象思维、分层思维、结构化思维和演化思维。通过将复杂系统分解…

哨兵1SAR空间数据包协议数据单元文档(七)

《哨兵1SAR空间数据包协议数据单元》文档对数据包的结构进行了详细描述&#xff0c;并提供了用户数据的格式和解码算法。 原文链接: 哨兵1SAR空间数据包协议数据单元文档英文版 同系列中的其他文章篇链接: 哨兵1SAR空间数据包协议数据单元文档&#xff08;一&#xff09; 哨兵…

【Spring Cloud】Spring Cloud Gateway 中配置跨域

Spring Cloud Gateway 中配置跨域 一、代码配置方式配置跨域二、配置文件方式配置跨域 开发高并发系统时有三把利器用来保护系统&#xff1a;缓存、降级和限流。API网关作为所有请求的入口&#xff0c;请求量大&#xff0c;我们可以通过对并发访问的请求进行限速来保护系统的可…

快速上手文心一言指令:从零开始的详细指南

快速上手文心一言指令&#xff1a;从零开始的详细指南 一、引言 随着人工智能技术的不断进步&#xff0c;自然语言处理&#xff08;NLP&#xff09;已成为现代计算机科学和人工智能领域中的一个重要研究方向。它不仅在学术界取得了显著成果&#xff0c;更在实际应用中展现出巨…

lodash-es 基本使用

中文文档&#xff1a;https://www.lodashjs.com/ cloneDeep方法文档&#xff1a;https://www.lodashjs.com/docs/lodash.cloneDeep#_clonedeepvalue 参考掘金文章&#xff1a;https://juejin.cn/post/7354940462061715497 安装&#xff1a; pnpm install lodash-esnpm地址&a…

Javase-异常

文章目录 1. 异常概述2. 异常的继承结构3. 自定义异常4. 异常的处理5. 异常的使用6. finally语句块7. 方法覆盖与异常 1. 异常概述 什么是异常 ①什么是异常?有什么用? 1.Java中的异常是指程序运行时出现了错误或异常情况&#xff0c;导致程序无法继续正常执行的现象。例如&…

谷粒商城 - 树形菜单递归流查询、三级分类数据查询性能优化、Jmter 性能压测

目录 树形分类菜单&#xff08;递归查询&#xff0c;强扩展&#xff09; 1&#xff09;需求 2&#xff09;数据库表设计 3&#xff09;实现 4&#xff09;关于 asSequence 优化 性能压测 1&#xff09;Jmeter 安装使用说明 2&#xff09;中间件对性能的影响 三级分类数…

【Kubernetes】Pod 资源调度之亲和性调度

Pod 资源调度之亲和性调度 1.Node 亲和性调度1.1 Node 硬亲和性1.2 Node 软亲和性 2.Pod 亲和性调度2.1 Pod 硬亲和2.2 Pod 软亲和2.3 Pod 反亲和 Kubernetes 的 默认调度器 以 预选、优选、选定机制 完成将每个新的 Pod 资源绑定至为其选出的目标节点上&#xff0c;不过&#…

吴恩达深度学习笔记:机器学习策略(2)(ML Strategy (2)) 2.7-2.8

目录 第三门课 结构化机器学习项目&#xff08;Structuring Machine Learning Projects&#xff09;第二周&#xff1a;机器学习策略&#xff08;2&#xff09;(ML Strategy (2))2.7 迁移学习&#xff08;Transfer learning&#xff09; 第三门课 结构化机器学习项目&#xff0…

学习笔记——动态路由——IS-IS中间系统到中间系统(区域划分)

三、IS-IS区域划分 根据IS-IS路由器邻居关系&#xff0c;可以将IS-IS划分为两个区域——骨干区域和非骨干区域。&#xff08;注意&#xff0c;这里的区域不是上文中提到的Area ID&#xff09;由L2的IS-IS邻居构成的区域为骨干区域&#xff0c;由L1的IS-IS邻居构成的区域为非骨…

智能运维场景探索 | 运营分析

【本场景来源于 擎创科技《一体化数智运维AIOps解决方案》白皮书&#xff0c;经过重新编写】 该场景主要围绕生产运行、运营决策两个维度进行展开&#xff0c;通过对配置、性能、业务等运行数据的加工计算&#xff0c;形成可量化运营效果、可衡量发展方向的运营数据。整体以低…