首页 > 其他分享 >ansible 开启facts_cache缓存

ansible 开启facts_cache缓存

时间:2024-08-17 23:38:20浏览次数:9  
标签:存储 缓存 变量 cache 插件 caching ansible facts

目录
通过 facts_cache 缓存的变量通常存储在由 Ansible 配置文件中指定的位置,具体位置取决于你使用的缓存插件。下面是几个常见的缓存插件和它们的存储方式,以及如何查询这些缓存变量。

1. 常见的缓存插件及其存储位置

  • jsonfile 插件

    • 存储位置:缓存变量会被存储为 JSON 文件,通常存放在你指定的文件路径中。你可以在 ansible.cfg 文件中配置 fact_caching_connection 来指定缓存文件的目录。
    • 配置示例
      [defaults]
      fact_caching = jsonfile
      fact_caching_connection = /path/to/cache/dir
      fact_caching_timeout = 86400  # 缓存过期时间(秒)
      
    • 存储方式:在指定的目录下,每个主机的 facts 会以 JSON 文件形式存储,每个文件名通常对应于主机名。
  • redis 插件

    • 存储位置:缓存变量存储在 Redis 数据库中。
    • 配置示例
      [defaults]
      fact_caching = redis
      fact_caching_connection = localhost:6379
      fact_caching_timeout = 86400
      
    • 存储方式:Redis 数据库中,每个主机的 facts 会存储为键值对,键名通常是主机名,值是对应的 facts 数据。
  • memcached 插件

    • 存储位置:缓存变量存储在 Memcached 中。
    • 配置示例
      [defaults]
      fact_caching = memcached
      fact_caching_connection = 127.0.0.1:11211
      fact_caching_timeout = 86400
      
    • 存储方式:类似于 Redis,Memcached 中每个主机的 facts 存储为键值对。

2. 如何查询缓存的变量

  • 查看缓存文件(适用于 jsonfile 插件):

    • 如果使用的是 jsonfile 插件,你可以直接在指定的缓存目录下找到主机名对应的 JSON 文件,打开它查看缓存的变量。
    • 示例
      cat /path/to/cache/dir/hostname.json
      
    • 这个 JSON 文件将包含主机的所有 cached facts,包括你使用 set_facts 设置的变量。
  • 通过命令查询 Redis 或 Memcached 中的缓存

    • Redis:你可以使用 redis-cli 连接到 Redis 数据库,然后使用命令查看缓存内容。
      redis-cli
      KEYS *
      GET hostname
      
    • Memcached:你可以使用 memcached-tool 或其他 Memcached 客户端工具查询缓存。
      echo "get hostname" | nc localhost 11211
      
  • 通过 Playbook 查询缓存的变量

    • 你可以编写一个简单的 Playbook 来加载并查看缓存的变量。
    • 示例
      ---
      - name: 加载并查看缓存的 facts
        hosts: all
        tasks:
          - name: 显示缓存的变量
            debug:
              var: ansible_facts
      

总结

  • 存储位置:缓存的变量存储位置取决于你使用的缓存插件,如 jsonfile 插件会将变量存储在指定目录下的 JSON 文件中,而 redismemcached 则将变量存储在各自的数据库中。
  • 查询方式:可以直接访问存储目录或数据库来查询缓存的变量,也可以通过 Ansible Playbook 来加载和查看这些缓存的变量。

标签:存储,缓存,变量,cache,插件,caching,ansible,facts
From: https://www.cnblogs.com/anyux/p/18365168

相关文章

  • ansible 变量优先级示例
    目录ansible变量优先级示例1.不是变量的变量2.角色默认值3.主机配置清单或动态脚本生成的groupvars4.主机配置清单group_vars/all5.剧本group_vars/all6主机配置清单group_vars/*7剧本group_vars/*8.主机清单文件or动态生成主机清单文件的主机变量9.主机清单文件h......
  • ansible自动化部署zookeeper
    一、准备环境1、准备机器本次以192.168.190.155,192.168.190.156,192.168.190.157,192.168.190.158四台虚机为例,本文操作全在管理机中。机器IP节点CPU&内存系统盘存储192.168.190.155Ansible管理机2C4G50GB50GB192.168.190.158Master/Worker(被管理机)2......
  • 2024.8.16(ansible)
    一、回顾1、mysql和python    1.mysql5.7        1.1不需要执行mysql_ssl_rsa_setup        1.2Change_master_to.不需要getpublickey    2.可以使用pymysql非交互的管理mysql        2.1 conn......
  • ansible【自动化配置】(thirty day)
    回顾1、mysql和python(1)不需要执行mysql_ssl_rsa_setup(2)Change_master_to.不需要getpublickey2、可以使用pymysql非交互的管理mysql(1)conn=pymysql.connect(host,user,password,database,prot)(2)cursor=conn.cursor();(3)Cursor.execute("createuser....")(4)cursor.ex......
  • ansible 变量
    打印playbook变量var01.yaml----hosts:ubuntuvars:foo:bartasks:#Prints"Variable'foo'issettobar".-debug:msg="Variable'foo'issetto{{foo}}"打印文件中的变量var02.yaml......
  • ansible设置环境变量
    通过~/.profile文件设置env01.yaml----hosts:ubuntutasks:#设置环境变量-name:设置环境变量lineinfile:dest:~/.profileregexp:^exportENV_KEY=line:exportENV_KEY=env_value-name:获取环境变量值......
  • 突破计算机性能瓶颈的利器CPU Cache
    大家好,我是呼噜噜,今天我们来介绍计算机的储存器之一,CPU高速缓冲存储器也叫高速缓存,CPUCache缓存这个专业术语,在计算机世界中是经常使用到的。它并不是CPU所独有的,比如cdn缓存网站信息,浏览器缓存网页的图像视频等,但本文讲述的是狭义Cache,主要指的是CPUCache,本文将其简称为......
  • 基于ansible playbook 自动化巡检生成xlsx报告
    IAAS自动化巡检生成xlsx报告项目结构:├──README.md├──filter_plugins生成json数据├──generate_xlsx.yml生成xlsx文件├──group_vars全局变量├──library数据处理及生成xlsx模块├──report最终xlsx报告保存├──roles巡检代码├──......
  • ansible 设置环境变量
    这里有个小知识点在Linux系统中,用户环境变量文件是用来设置用户级别的环境变量和shell配置的文件。这些文件可以控制用户的环境,包括路径、命令别名、shell提示符、自定义函数等。不同的文件在不同的情况下会被加载,并对用户的shell会话产生影响。常见的用户环境变量文件及......
  • ansible handlers
    handlers01.yaml----hosts:ubuntuhandlers:-name:restartapacheservice:name=apache2state=restartedtasks:-name:确保APT包列表是最新的apt:update_cache=yes-name:部署apache2apt:name=apache2state=present-name:......