首页 > 其他分享 >Ansible - 清单定义

Ansible - 清单定义

时间:2022-11-02 11:55:59浏览次数:44  
标签:anliven 定义 主机 ansible 192.168 Ansible ssh 清单 Inventory


清单(Inventory)

主机清单(Inventory)

Ansible通过Inventory(可管理的主机集合)对远端服务器或者主机进行统一操作和管理,默认将主机列在一个文本文件中,这个文件称为Inventory文件。

  • 默认的路径和文件为:/etc/ansible/hosts
  • 可以通过ANSIBLE_HOSTS环境变量、ansible.cfg文件中inventory参数来指定,或者运行ansible和ansible-playbook时使用-i参数临时指定
  • 可以有多个 inventory 文件,也可以通过 Dynamic Inventory 动态生成
  • inventory文件为 INI文件格式,中括号中的字符为组名。可以将同一个主机同时归并到多个不同的组中
  • 组名建议使用"_"来连接字符,例如“aaa_bbb_ccc”

Inventory文件

192.168.56.1    # 未分组
test.example.com  
127.0.0.1 ansible_connection=local  # 直接访问本地主机,而不是通过SSH

[Test]  # 已分组名称
192.168.56.1
192.168.56.2
192.168.56.[3:4]  # 通过列表方式通配地址
192.168.56.[5:6]  # 多个通配地址
anliven-[a:d].example.com  # 通配主机域名

[Test:vars]  # 定义组变量
ansible_ssh_user="anliven"
ansible_ssh_pass="anliven"
ansible_ssh_port="22"

[Test2]  # 在分组中指定变量
192.168.56.[1:2] ansible_ssh_user=anliven ansible_ssh_pass=Anliven
192.168.56.[3:4] ansible_ssh_user=anliven ansible_ssh_pass=Anliven
192.168.56.[3:4]

[Test3]  # 在分组中切换root用户 
192.168.56.[1:2] ansible_ssh_port="22" ansible_ssh_user="anliven" ansible_ssh_pass="anliven"  ansible_become_pass="Anliven" 

[Temp]
192.168.56.1:2222  # 指定端口
192.168.56.2 http_port=8080 var1=test1 var2=test2   # 定义主机时为其添加主机变量以便于在playbook中使用

[Temp:vars]
ansible_ssh_user="anliven"
ansible_ssh_pass="anliven"

[TestGroup:children]  # 嵌套组,TestGroup为名称,其他为固定格式 
Test1
Test2
Test3

[TestGroup:vars]  # 嵌套组的变量只能在ansible-playbook中使用
var1="test1"
var2="123"

[all:vars]  # 类似全局变量,对inventory文件中所有节点都有效
ansible_ssh_port="22"

Inventory内置参数

Ansible Inventory文件中可使用的行为参数

可以在ansible.cfg中的[defaults]部分更改一些Inventory行为参数的默认值

Dynamic Inventory

  • 动态Inventory也就是Ansible所有的Inventory文件里面的主机列表和变量信息都支持从外部拉取,例如CMDB等。
  • 避免主机列表不准确和频繁大量的手动更新的问题
  • 也可以通过设置ansible.cfg文件中的inventory参数为一个可执行脚本,将CMDB等其他系统的主机信息同步至Ansible中。
  • 对动态Inventory脚本的参数和输出必须遵循格式规则

Inventory分割

通过Inventory分割满足如下需要

  • 按不同业务/系统分割成的多个Inventory文件
  • 同时使用常规Inventory文件和动态Inventory脚本

实现方式

  • 配置ansible.cfg文件的hostfile参数,指定放置inventory文件目录作为Inventory,Ansible将合并目录里所有文件为一个完整的Inventory
  • 也可以在命令行中使用-i命令来指定特定的Inventory文件
[defaults]

hostfile = /etc/ansible/inventory  # 指定目录作为Inventory

标签:anliven,定义,主机,ansible,192.168,Ansible,ssh,清单,Inventory
From: https://www.cnblogs.com/anliven/p/16850578.html

相关文章

  • Android开发之制作圆形头像自定义View,直接引用工具类,加快开发速度。带有源代码学习..
    作者:程序员小冰,Android开发之制作圆形头像自定义View,直接引用工具类,加快开发速度。带有源代码学习大家都知道。现在好多头像都是圆形的,不再是以前的正方形或者长方形。因......
  • SpringBoot+Vue+token实现(表单+图片)上传、图片地址保存到数据库。上传图片保存位置自
    1、大致思路以下是基于先处理图片、后端返回图片地址进行的==存数据==1、将图片信息提交到后端2、后端处理3、后端返回前端图片的访问地址4、前端将图片地址存入要提......
  • Ansible - 概念介绍
    说明本系列使用ansible2.9.27版本来说明和汇总相关信息。#cat/etc/system-releaseRedHatEnterpriseLinuxServerrelease7.8(Maipo)##uname-aLinuxte......
  • 控制器Deployment资源清单
    apiVersion:apps/v1kind:Deploymentmetadata:name:my-deploymentnamespace:testspec:replicas:1selector:matchLabels:environment:stgtem......
  • 错题笔记:int a=b=1这样定义为什么是错误的
    C语言中定义同一类型的多个变量必须以逗号分隔。如:inta,b,c;=在C语言中是赋值运算符,等号左边的变量,必须是已以定义好的变量才可以。inta=b=1;中,若b已经定义,则......
  • ansible推送ssh-key
    背景裸机安装完系统后使用手动方式发送ansible机器的ssh-key到其他主机总是不够方便想要找到一种更为简便的方式将key推送到其他主机方案:expect+shell/etc/ansible......
  • ansible练习七
    生成主机文件将一个初始模板文件从http://materials/hosts.j2下载到/home/greg/ansible完成该模板,以便用它生成以下文件:针对每个清单主机包含一行内容,其格式与/etc/......
  • PowerPlatform 通过命令栏添加自定义按钮
    在这之前,要添加自定义按钮都是通过RibbonWorkbench,现在可以直接在ModelDriven编辑界面通过命令栏编辑添加自定义按钮  在需要添加按钮的页面,选择编辑命令栏,并选择......
  • 05_greenplum定义数据库对象_分区
    一、分区概念(提高性能) 1、表分区 2、分区示意图  注:三个分区,九个子分区 3、数据分布&分区  4、全表扫描VS分区扫描 注:全表扫描:会对全部segmen......
  • Java生成Excel自定义导出合并(多级表头)
    一、糊涂工具包1.导入依赖(注:导入的依赖可能会和poi依赖包冲突,导致项目启动不了,我这里poi-ooxml依赖包用的4.1.2版本,可以解决冲突问题)<!--糊涂工具包--><dependency><g......