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,一经查实,立即删除!

相关文章

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

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

web服务之Nginx

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

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

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

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

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…

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

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

MUNIK解读ISO26262--系统架构

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

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

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

lodash-es 基本使用

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

Javase-异常

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

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

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

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

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

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

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

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

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

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

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

基于Qt实现的PDF阅读、编辑工具

记录一下实现pdf工具功能 语言:c、qt IDE:vs2017 环境:win10 一、功能演示: 二、功能介绍: 1.基于saribbon主体界面框架,该框架主要是为了实现类似word导航项 2.加载PDF放大缩小以及预览功能 3.pdf页面跳转…

Python基础小知识问答系列-高效遍历多个不同类型元素的迭代器

1. 问题: 当需要对多个迭代器进行相同遍历操作时,如何避免因为迭代器之间的类型或者迭代器元素 数量过大引发的问题? 2. 解决方法: 使用itertools模块中的chain函数。 示例: from itertools import chainlist_a [2,…

matlab 抛物线图像绘制

抛物线图像绘制 x^2y4绘制结果 x^2y4 clc,clear,close all; length10; % 创建一个范围内的 x 和 y 值 x linspace(-length, length, 1000); y linspace(-length, length, 1000);% 创建一个网格来表示 x 和 y 值的组合 [X, Y] meshgrid(x, y);% 计算方程的左边和右边的值 LH…

QWidget成员函数功能和使用详细说明(四)(文字+用例+代码+效果图)

文章目录 1.测试工程配置2.成员函数2.1 void setParent(QWidget *parent)2.2 void setMouseTracking(bool enable)2.3 bool hasMouseTracking() const2.4 void setPalette(const QPalette &)2.5 const QPalette &palette() const2.6 int QWidget::grabShortcut(const Q…

实战干货,企业在数字化转型中如何通过最佳实践落地BI报表?

引言:上一篇文章我们提到:通过9大步骤,帮助企业在数字化转型中搭建数据分析的报表体系!在实际中的落地过程,通过实施服务的哪些最佳实践可以确保落地效果,达到项目预期目标,给客户带来实质价值&…

香蕉云编+uniapp打包ios的开发包和生产包

登录香蕉云编,找到 云编-ios证书生成,新建CSR文件,并下载csr文件。 登录苹果开发者中心,进入证书页面。 1.创建一个证书,选择ios Distribution类型即可,这是个通用的证书,既能用来打正式包又能…