ansible变量

embedded/2024/11/29 10:14:38/
一.ansible变量一.ansible变量1.Ansible中的facts变量2.Ansible中的自定义变量1.Ansible中的facts变量(1)Facts变量是什么:facts变量可以理解为Ansible中的预定义变量(自带变量{{ ansible_hostname }}等)用于采集的被控节点的设备信息主要包含IP地址、操作系统、以太网设备、mac 地址、时间/日期相关数据,硬件信息等(2)查看Facts变量使用setup模块,用于获取所有facts信息ansible web1 -m setup | less(3)剧本中使用facts变量剧本中调用变量格式:{{ 变量名 }}剧本中可以使用debug模块打印变量信息剧本中默认有Gathering Facts的任务,收集到Facts信息后可以使用该模块打印2.Ansible中的自定义变量(优先级从低到高)Ansible支持十几种变量定义方式Ansible变量定义的位置,下列变量优先级从低到高roles defaults目录下的变量-inventory文件中定义,主机的变量-inventory文件,组的变量inventory文件主机的变量-play剧本中组的变量play剧本中主机的变量-facts事实变量vars定义的变量vars_prompt定义的变量vars_files导入的变量注册变量roles中单独定义的及导入的变量block中定义的变量任务中定义的变量命令行指定的变量-常用变量:(优先级低到高)(1)inventory清单文件中单主机的变量(读取到该主机的时候读取变量)(2)inventory清单文件主机组的变量(读取到该组的时候读取)(3)play剧本中定义的变量      (4)".yml"变量文件定义的变量(其它剧本也可使用)vars_files: fvars.yml(5)facts事实变量(1)inventory清单文件中定义单主机的变量(读取到该主机的时候读取变量)[dbs]db1 username="liubei"   #定义属于db1主机的变量---- name: create user with host varshosts: db1tasks:- name: test host varsuser:name: "{{ username }}" 前面没东西必须加双引号state: present(2)inventory清单文件组的变量(读取到该组的时候读取)[webservers:vars]   #定义属于组的变量,:vars是固定格式username="guanyu"(3)play剧本中组的变量---- name: create user with play varshosts: webserversvars:                     #剧本中定义变量username: "zhangfei"    #定义变量password: "123456"      #定义变量,数字作为密码必须用引号,表示字符串tasks:- name: test play varsuser:name: "{{ username }}"password: "{{ password|password_hash('sha512')}}"state: present(4)".yml"变量文件定义变量(其它剧本也可使用)[root@pubserver ansible]# vim fvars.yml---username: "lvbu"password: "654321"---- name: create user with vars fileshosts: webserversvars_files: fvars.yml     #调用定义变量的文件tasks:- name: test vars fileuser:name: "{{ username }}"  password: "{{ password | password_hash('sha512')}}"(5)facts事实变量[root@pubserver ansible]# vim var5.yml---- name: copy file with factshosts: webserverstasks:- name: use factscopy:content: "hostname: {{ ansible_hostname }}"dest: /tmp/facts.txt


一.ansible变量
     1.Ansible中的facts变量
    2.Ansible中的自定义变量

  1.Ansible中的facts变量

    (1)Facts变量是什么:

    facts变量可以理解为Ansible中的预定义变量(自带变量{{ ansible_hostname }}等)
    用于采集的被控节点的设备信息
    主要包含IP地址、操作系统、以太网设备、mac 地址、时间/日期相关数据,硬件信息等

    (2)查看Facts变量

    使用setup模块,用于获取所有facts信息
    ansible web1 -m setup | less


   (3)剧本中使用facts变量
    剧本中调用变量格式:{{ 变量名 }}
    剧本中可以使用debug模块打印变量信息
    剧本中默认有Gathering Facts的任务,收集到Facts信息后可以使用该模块打印
    

  2.Ansible中的自定义变量(优先级从低到高)
    Ansible支持十几种变量定义方式
    Ansible变量定义的位置,下列变量优先级从低到高

    roles defaults目录下的变量

    -inventory文件中定义,主机的变量
    -inventory文件,组的变量

    inventory文件主机的变量

    -play剧本中组的变量
        
    play剧本中主机的变量

    -facts事实变量
    vars定义的变量
    vars_prompt定义的变量
    vars_files导入的变量
    注册变量
    roles中单独定义的及导入的变量
    block中定义的变量
    任务中定义的变量
    命令行指定的变量
    

    -常用变量:(优先级低到高)
    (1)inventory清单文件中单主机的变量(读取到该主机的时候读取变量)
    (2)inventory清单文件主机组的变量(读取到该组的时候读取)
    (3)play剧本中定义的变量      
    (4)".yml"变量文件定义的变量(其它剧本也可使用)vars_files: fvars.yml
    (5)facts事实变量


    (1)inventory清单文件中定义单主机的变量(读取到该主机的时候读取变量)
        [dbs]
        db1 username="liubei"   #定义属于db1主机的变量

        ---
        - name: create user with host vars
          hosts: db1
          tasks:
            - name: test host vars
              user:
                name: "{{ username }}" 前面没东西必须加双引号
                state: present

    (2)inventory清单文件组的变量(读取到该组的时候读取)
        [webservers:vars]   #定义属于组的变量,:vars是固定格式
        username="guanyu"
    
    (3)play剧本中组的变量
        ---
        - name: create user with play vars
          hosts: webservers
          vars:                     #剧本中定义变量
            username: "zhangfei"    #定义变量
            password: "123456"      #定义变量,数字作为密码必须用引号,表示字符串
          tasks:
            - name: test play vars
              user:
                name: "{{ username }}"
                password: "{{ password|password_hash('sha512')}}"
                state: present

    (4)".yml"变量文件定义变量(其它剧本也可使用)
        [root@pubserver ansible]# vim fvars.yml
        ---
        username: "lvbu"
        password: "654321"
        ---
        - name: create user with vars files
          hosts: webservers
          vars_files: fvars.yml     #调用定义变量的文件
          tasks:
            - name: test vars file
              user:
                name: "{{ username }}"  
                password: "{{ password | password_hash('sha512')}}"
         
    (5)facts事实变量
        [root@pubserver ansible]# vim var5.yml
        ---
        - name: copy file with facts
          hosts: webservers
          tasks:
            - name: use facts
              copy:
                content: "hostname: {{ ansible_hostname }}"
                dest: /tmp/facts.txt
        


    


 


http://www.ppmy.cn/embedded/141434.html

相关文章

C#-winform:项目打包

一、安装扩展包 1、打开扩展界面,增加可以打包为exe文件的工具 扩展->管理扩展 2、搜索并下载扩展 Microsoft Visual Studio Install Projects 注:安装的时候会推出visual studio的,重启一下就会生效,搜到Setup Project 二、…

残差神经网络

目录 1. 梯度消失问题 2. 残差学习的引入 3. 跳跃连接(Shortcut Connections) 4. 恒等映射与维度匹配 5. 反向传播与梯度流 6. 网络深度与性能 总结 残差神经网络的原理是基于“残差学习”的概念,它旨在解决深度神经网络训练中的梯度消…

python学习笔记(15)算法(8)双向队列

在队列中,我们仅能删除头部元素或在尾部添加元素。双向队列(double‑ended queue)提供了更高的灵活性,允许在头部和尾部执行元素的添加或删除操作。 一、双向队列常用操作 队首入队(push_front)&#xff…

flink学习(6)——自定义source和kafka

概述 SourceFunction:非并行数据源(并行度只能1) --接口 RichSourceFunction:多功能非并行数据源(并行度只能1) --类 ParallelSourceFunction:并行数据源(并行度能够>1) --接口 RichParallelSourceFunction:多功能并行数据源(并行度能够>1) --类 【建议使用的】 ——…

数据结构 ——— 快速排序算法的实现(挖坑法版本)

目录 前言 快速排序算法(挖坑版本)的思想 单躺排序逻辑的实现 快速排序算法的实现(挖坑法) 前言 在上一章学习了 hoaer 版本的快速排序算法的实现数据结构 ——— 快速排序算法的实现(hoare版本)-CSDN…

SQL面试题——in和not in 不支持怎么办

in和not in 不支持怎么办 这是来自读者群的一位同学的问题,说是别人问他in和not in 不支持怎么办,现在我们来看一下这个问题 in 不支持 其实很多朋友都能写出这样的SQL,其实这个SQL 在没有底层优化的时候还是很可怕的 SELECT a.key, a.value FROM a WHERE a.key in (SEL…

LeetCode题练习与总结:替换后的最长重复字符--424

一、题目描述 给你一个字符串 s 和一个整数 k 。你可以选择字符串中的任一字符,并将其更改为任何其他大写英文字符。该操作最多可执行 k 次。 在执行上述操作后,返回 包含相同字母的最长子字符串的长度。 示例 1: 输入:s &quo…

什么是 Token 和 MD5 ?

目录 一:Token和MD5分别是什么 1:Token 2:MD5 二:简易Token的实现 1:Base64。 2:验证Token 三:MD5的使用 一:Token和MD5分别是什么 1:Token Token 的中文有人翻译成…