首页 > 其他分享 >第十一章 Ansible-playbook变量注册和Facts缓存

第十一章 Ansible-playbook变量注册和Facts缓存

时间:2022-09-20 10:47:17浏览次数:76  
标签:缓存 name list facts Ansible nfs playbook Facts dir

一、变量注册概述

当absible的模块在运行之后,其实都会返回一些result结果,就像是执行脚本,我们有的时候需要脚本给我们一些return返回值,我们才知道,上一步是否可以执行成功,但是...默认情况下,ansible的result并不会显示出来,所以,我们可以把这些返回值'存储'到变量中,这样我们就能通过'调用'对应的变量名,从而获取到这些result,这种将模块的返回值,写入到变量中的方法被称为变量注册。

二、变量注册配置

1.配置

[root@m01 ~]# vim list.yml 
- hosts: web01
  tasks:
    - name: list dir
      shell: ls -l /root
      register: list_dir

2.输出调用的变量

[root@m01 ~]# vim list.yml 
- hosts: web01
  tasks:
    - name: list dir
      shell: ls -l /root
      register: list_dir
      
    - name: get list_dir
      debug:
        msg: "{{ list_dir }}"

3.输出我们想要的部分

[root@m01 ~]# vim list.yml 
- hosts: web01
  tasks:
    - name: list dir
      shell: ls -l /root
      register: list_dir
      
    - name: get list_dir
      debug:
        msg: "{{ list_dir.stdout_lines }}"

三、变量注册使用场景

#一般使用变量注册进行判断
[root@m01 ~]# cat install.yml 
- hosts: nfs
  tasks:
    - name: decide nfs status
      shell: systemctl is-active nfs
      ignore_errors: yes
      register: nfs_status

    - name: Start nfs
      systemd:
        name: nfs
        state: started
      when: nfs_status.rc != 0

    - name: Restart nfs
      systemd:
        name: nfs
        state: restarted 
      when: nfs_status.rc == 0

四、Facts缓存概述

Ansible facts是在被管理主机上通过Ansible自动采集发现的变量。facts包含每台特定的主机信息。比如:被控端的主机名、IP地址、系统版本、CPU数量、内存状态、磁盘状态等等。

setup模块实际上就是facts缓存得到的

五、Facts缓存使用场景

1.通过facts缓存检查CPU,来生成对应的nginx配置文件
2.通过facts缓存检查主机名,生成不同的zabbix配置文件
3.通过facts缓存检索物理机的内存大小来生成不通的mysql配置文件

综上所述的Ansible facts类似于saltstack中的grains对于做自动化的小伙伴是非常有用滴。

六、Facts缓存基本用法

#编辑
[root@m01 ~]# vim facts.yml
- hosts: web_group
  tasks:
    - name: Get Host Info
      debug:
        msg: Hostname "{{ ansible_fqdn }}" and IP "{{ ansible_default_ipv4.address }}"

七、关闭facts缓存

[root@m01 ~]# vim facts.yml
- hosts: web_group
  gather_facts: no #关闭信息采集
  tasks:

标签:缓存,name,list,facts,Ansible,nfs,playbook,Facts,dir
From: https://www.cnblogs.com/GAO321/p/16710192.html

相关文章

  • 第十章 Ansible-playbook变量基础
    一、ansible变量概述ansible变量提供了便捷的方式来管理Ansibleplaybook的每一个项目中的动态值,比如nginx-1.6.3这个软件包的版本,在其它地方或许会反复使用,那么如果讲此......
  • 第八章 Ansible-playbook基础介绍
    一、playbook简介PlayBook即"剧本","兵书"之意,PlayBook是由以下部分组成的:play(host):定义的是主机的角色。(主角还是配角)Book(task):定义的是具体执行的任务。(角色的......
  • 第三章 Ansible中ad-hoc入门
    一、概述Ansibleadhoc命令使用/usr/bin/ansible命令行工具在一个或多个受管节点上自动执行单个任务。临时命令既快速又简单,但它们不可重复使用,执行完即结束,并不会保存......
  • 第二章 Ansible服务搭建
    一、环境准备主机名IP身份m0110.0.0.61Ansible控制端web01172.16.1.7Ansible被控端web03172.16.1.9Ansible被控端二、安装Ansible[root@m0......
  • 第一章 Ansible入门
    一、Ansible概述、Ansible是一种IT自动化工具。它可以配置系统、部署软件并协调更高级的IT任务,例如持续部署或零停机滚动更新。Ansible的主要目标是简单易用。它......
  • 12.ansible lineinfile模块
    前言:lineinfile模块,功能有点类似sed常用功能:对文件的行替换、插入、删除PS:替换/插入:如果有重复的,都是匹配最后一个,如果不加backrefs项,替换/插入如无匹配者,则将line......
  • 本次介绍如何利用ansible一键初始化centos7
    本次介绍如何利用ansible一键初始化centos7。本文介绍的运行环境是CentOS7.6:[root@localhost~]#cat/etc/redhat-releaseCentOSLinuxrelease7.6.1810(Core)[r......
  • ansible 常用命令
    ansible使用笔记命令 列出可用模块# ansible-doc -l显示模块使用ansible-doc –s cron # 显示模块使用ansible-doc cron    # 详细显示ansible-......
  • ansible使用介绍
    ansible基础语法ansible通过ssh实现配置管理、应用部署、任务执行等功能,建议配置ansible端能基于密钥认证的方式联系各被管理节点ansible<host-pattern>[-mmodule_n......
  • rh358 005 dhcp dhcp6 打印机 ansible配置dhcp和打印机
    部署dhcp服务器主机发送Discover报文目标为广播地址同一网段的dhcp收到报文后,dhcp响应一个offer报文offer报文:dhcp自己的ip地址。和客户端ip以及使用周期,和客户端ip网......