码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • ansible中定义和使用变量的几种技巧


    ansible中定义和使用变量的几种技巧

    • Case 1:使用Inventory中自定义的全局变量
    • Case 2:使用ansible内置的主机变量
    • Case 3:使用Inventory中自定义的主机变量
    • Case 4:在jinja2文件中引用Inventory变量
    • Case 5:通过set_fact模块自定义变量
    • Case 6:使用register保存shell命令的输出到变量中
    • Case 7:限制task仅在个别分组的主机上执行
    • Case 8:在lineinfile正则匹配中使用分组

    Case 1:使用Inventory中自定义的全局变量

    Inventory清单文件中[all:vars]部分定义的变量为全局变量,可以在同一级目录下的roles中的所有playbook中直接使用。使用的格式为{ {全局变量名}}。

    在Inventory中定义全局变量:

    [all:vars]
    # variables related to versions
    version_major_tencentKona=8.0.8
    version_minor_tencentKona=312
    arch_tencentKona=x86_64 
    #arch_tencentKona=aarch64
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在playbook中使用自定义的全局变量:

    - name: unarchive TencentKona JDK
      unarchive:
        remote_src: no
        src: "/root/TencentKona{
       {version_major_tencentKona}}.b1_jdk_linux-{
       {arch_tencentKona}}_8u{
       {version_minor_tencentKona}}.tar.gz"
        dest: /usr/local
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    Case 2:使用ansible内置的主机变量

    Ansible内置了许多系统变量,可以直接在ad-hoc命令或者playbook中使用。这些内置变量包括但不限于:

    • ansible_architecture:操作系统架构,arm或者x86;
    • ansible_distribution:操作系统发行版本;
    • ansible_distribution_major_version:操作系统大版本号;
    • ansible_processor_vcpus:CPU核数;
    • ansible_memtotal_mb:内存总量;
    • ansible_hostname:主机名;
    • ansible_devices.vdb.size:vdb盘的容量(如果磁盘vdb存在);
    • ansible_devices.sdb.size:sdb盘的容量(如果磁盘sdb存在);
    • ansible_devices.nvme0n1.size:nvme0n1盘的容量(如果磁盘nvme0n1存在)。

    在playbook中使用内置变量:

    - name: check arm OR x86
      debug: 
        msg: "{
       {ansible_architecture}}"
    
    - name: check OS version
      debug:
        msg: "{
       {ansible_distribution}}: {
       {ansible_distribution_major_version}}"
    
    - name: 
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
  • 相关阅读:
    【Harmony OS】【ARK UI】ETS 上下文基本操作
    多条件组合查询SQL语句
    为什么我写的z-index不生效?
    larvel 中的api.php_Laravel 开发 API
    003_IO 扩展(串转并)-74HC595
    Kubernetes(k8s)服务账号Service Accounts
    GEE:根据影像最小值和最大值自适应可视化参数设置
    SQL Server创建数据库
    一种亮红色染料AF 594 NHS Ester|295348-87-7|AF 594 Succinimidyl Ester
    Qt|QLabel显示刷新图像数据
  • 原文地址:https://blog.csdn.net/Sebastien23/article/details/127705894
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | 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号