码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 初识ansible变量及实例配置


    目录

    1、为什么要使用变量

    2、变量分类

    3、 变量详解

    3.1  vars,vars_files , group_vars

    3.1 .1  vars   剧本中定义变量

    3.1.2  vars_file  将变量存放到一个文件中,并在剧本中引用

    3.1.3   group_vars 创建一个变量文件给某个组使用

    实例1-根据不同的主机组创建对应的目录

    实例2-使⽤group_vars的all组定义变量

    3.1.4 变量基础vars,vars_files , group_vars总结

    3.2 ansible-facts变量

    3.2.1 常用fact变量

    3.2.2实例-系统巡检-获取所有受管主机的基本信息保存到/tmp/主机名命名文件中

    3.3 ansible-register变量

    4、 变量总结


    1、为什么要使用变量

    Ansible变量就是一种存储数据的机制,可以在Ansible剧本文件中使用。使用变量可以将一些常量或重复的值提取出来,集中管理,提高代码的可读性和可维护性。同时,变量还可以用于动态生成剧本,根据不同的环境和需求,生成不同的剧本文件。简单来说,使用变量可以让Ansible更加灵活、可维护和可重用。

    2、变量分类

    变量
    命令行临时使用,
    变量⽂件vars_files某⼀个主机使⽤,较少⽤.
    主机组共⽤的变量⽂件 group_vars应⽤范围⼴泛.
    ansible内置变量(facts变量)收集主机的基本信息,ip地址,主机名,系统及版本....
    register变量实现命令⾏ $() 或``功能

    3、 变量详解

    3.1  vars,vars_files , group_vars
    3.1 .1  vars   剧本中定义变量

    通过剧本paly部分中vars定义变量

    3.1.2  vars_file  将变量存放到一个文件中,并在剧本中引用

    剧本中play部分vars file指定变量文件

    3.1.3   group_vars 创建一个变量文件给某个组使用

    通过group vars指定主机组共享变量文件

    ⽤法:需要创建⼀个group_vars⽬录.  

    ⽬录下⾯创建以主机组命名的⽬录.  

    存放变量⽂件vars.yml

    实例1-根据不同的主机组创建对应的目录

    使用ansible临时命令测试

    实例2-使⽤group_vars的all组定义变量

    ansible临时测试!!!

    3.1.4 变量基础vars,vars_files , group_vars总结
    使用方法具体含义应用场景
    变量写在剧本开头:vars简单的较少的可以
    变量写在独⽴⽂件中:vars_file:指定变量文件位置了解即可.
    变量写在独⽴⽂件中,按照组进⾏ 分类:group_vars/all/vars.yml掌握在all中创建所有主机/分组⽤的变量即可.



    3.2 ansible-facts变量

    ansible-facts变量说明:ansible-facts是ansible服务内置变量,执行剧本,有个默认的任务(task),搜集每个主机的基本信息。

    3.2.1 常用fact变量
    1. ansible_hostname               #主机名
    2. ansible_memtotal_mb            #内存⼤⼩(总计) 单位mb
    3. ansible_processor_vcpus        #cpu数量
    4. ansible_default_ipv4.address   #默认的⽹卡ip eth0
    5. ansible_distribution           #系统发⾏版本名字 CentOS Ubuntu Debian ansible_processor_cores        #核⼼总数
    6. ansible_date_time.date         #当前时间 年-⽉-⽇

    3.2.2实例-系统巡检-获取所有受管主机的基本信息保存到/tmp/主机名命名文件中

    步骤1:

    01.创建文件

    02.写入内容

    遍历所有受控主机,获取每个主机的基础信息,并将其保存到一主机名命名的文件中。其中,inventory_hostname表示当前主机的名称。copy模块用于将主机基础信息保存到文件中。

    使用ansible临时命令测试

    补充:

    如果没有需求的话,可以关闭facts功能,让剧本执行加速,使用gather_facts:no 

    3.3 ansible-register变量

    Ansible中的register模块用于将任务执行的结果存储到一个变量中,以便在后续的任务中使用。register模块可以将任务执行的结果存储为一个变量,然后可以在后续的任务中使用该变量。以下是register模块的使用方法:

    1. - name: 执行任务并将结果存储到变量中
    2. command: ls -l
    3. register: result
    4. - name: 使用存储的变量
    5. debug:
    6. var: result.stdout

    在上面的例子中,command模块用于执行ls -l命令,并将结果存储到result变量中。然后,debug模块使用result.stdout变量输出任务执行的结果。在register模块中,你可以使用任何变量名来存储结果,例如output、result、response等。你可以在后续的任务中使用存储的变量来执行其他操作,例如过滤、比较、格式化等。

    4、 变量总结

    变量含义和特点应用场景
    命令行临时使用
    剧本⽂件中vars定义当前这个剧本⽣效,涉及多个剧本不⽅便.
    变量⽂件vars_files

    所有变量写⼊到⽂件中: key:

    value 变量: 值,

    在剧本中通过vars_files: 变量⽂件路径./vars.yml

    每次使⽤需要⼿动在剧本中加载vars_files: ./vars.yml

    主机组共⽤的变量⽂件

    group_vars

    应⽤范围⼴泛. 根据主机清单⾥⾯的分组创建⽬录,存放vars.yml根据主机所属的主机组,⾃动读取group_vars/组名/vars.yml⽂件. group_vars/all/vars.yml
    ansible内置变量(facts变量)收集主机的基本信息,ip地址,主机名,系统及版本....如果想提升ans执⾏速度可以关闭gather_facts: no
    register变量(注册变量)实现命令⾏ $() 或``功能

    寄存器变量(注册,临时变量): 把命令,模块结果,存放在reg格式变量中,通过变量.stdout 取出对应值.

  • 相关阅读:
    Thread的使用、线程的几个重要操作和状态【JavaEE初阶】
    前端高频vue面试题合集
    C#中实现单元测试的示例流程_MSTest测试项目
    拿到直播平台的rtmp地址和推流码之后,用 nodejs写一个循环读取视频文件内容,这个地址推流
    PIM其它特性——IPv6、Anycast RP
    用Python写个工具,同时应付10个客服MM!
    MySQL 基本语句
    在项目中,关于前端实现数据可视化的技术选择
    使用 PhpMyAdmin 安装 LAMP 服务器
    基于java(springboot)零食商店管理系统源码(java毕业设计)
  • 原文地址:https://blog.csdn.net/qq_56104175/article/details/137854708
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号