首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在ansible中注册基于另一个变量的变量?

在Ansible中,可以使用register关键字将一个任务的输出结果保存到一个变量中。如果想要注册一个基于另一个变量的变量,可以使用set_fact模块。

下面是一个示例的Ansible Playbook,演示如何在Ansible中注册基于另一个变量的变量:

代码语言:txt
复制
- name: Register variable based on another variable
  hosts: localhost
  gather_facts: false
  vars:
    my_variable: "hello"
  tasks:
    - name: Set another variable based on my_variable
      set_fact:
        another_variable: "world {{ my_variable }}"
    - name: Print the registered variables
      debug:
        var:
          my_variable
          another_variable

在上面的示例中,我们定义了一个变量my_variable,并将其值设置为hello。然后,使用set_fact模块注册了一个新的变量another_variable,其值是基于my_variable的值拼接而成的字符串。最后,使用debug模块打印了这两个已注册的变量。

执行以上Playbook后,输出结果如下:

代码语言:txt
复制
TASK [Print the registered variables] **************************************************************************************************************************************************************************************
ok: [localhost] => {
    "my_variable": "hello",
    "another_variable": "world hello"
}

可以看到,my_variable的值为hello,而another_variable的值为world hello,其中hello是基于my_variable的值拼接而成的。

这是在Ansible中注册基于另一个变量的变量的一种常见方法。通过使用set_fact模块,可以根据需要动态地创建和注册变量,以便在后续的任务中使用。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Ansible PlayBook变量优先级分析及清单变量解耦总结

写在前面 嗯,学习Ansible高级特性,整理这部分笔记 博文内容涉及 Ansible ploybook 变量定义基本原则 不同位置定义变量优先级 Demo 如何实现变量和清单解耦 食用方式:...ansilbe可以在许多不同位置设置变量: 在角色defaults和vars目录 在主机清单文件,作为主机变量或组变量 在Playbook或清单 group_vars 或host_vars子目录下变量文件...在可读小文件组织变量:如果有一个包含许多主机组和变量大型项目,请将变量拆分成多个文件。 变量优先级 当使用多种方式定义相同变量时,Ansible 将使用优先级规则为变量选取值。...-[~/ansible] └─$ 这里配置文件remote_user=root为连接受管机器远程用户名,对应保存到ansibleansible_user变量 ┌──[root@vms81...通过将变量分隔到按功能分组文件,可以使整个 playbook 项目更易于理解和维护。 在这里插入图片描述 特殊清单变量 可以使用多个变量来更改Ansible连接到清单列出主机方式。

4.8K10

何在 Ansible Playbook 中进行变量替换,解决环境之间差异问题?

,只有主机变量生效,主机组变量不生效; 下面验证group_vars/下nginx组主机组变量,如下: 通过ansible-playbook命令行传入 通过 ansible-playbook 命令行传参方式定义变量...直接运行,如下: 如上,playbook 文件定义变量对所有主机都有效,可理解为主机组变量。...从字典,取出想要值 修改 register.yaml 文件内容,info[‘stdout’]是一个标准 Python 语言在字典取值用法,执行 playbook,如下所示: 使用vars_prompt...传入 Ansible 支持在运行 playbook 时,通过交互式方式给定义好参数传入参数值,只需在playbook定义vars_prompt变量名和交互式提示内容即可。...这里总结了7常用定义变量方式,以及如何去引用。欢迎大家,实践指正,谢谢! 作者:zero_gg

2.3K20

何在 Ansible Playbook 中进行变量替换,解决环境之间差异问题?

通过/etc/ansible/下文件定义主机和主机组变量 使用yum安装Ansible默认配置文件是在/etc/ansible/目录下,可在该目录下,创建文件夹host_vars定义主机变量,创建group_vars...通过ansible-playbook命令行传入 通过 ansible-playbook 命令行传参方式定义变量,默认传进去都是全局变量,如下: ?...如上,playbook 文件定义变量对所有主机都有效,可理解为主机组变量。 在playbook文件内使用vars_files ?...使用vars_prompt传入 Ansible 支持在运行 playbook 时,通过交互式方式给定义好参数传入参数值,只需在playbook定义vars_prompt变量名和交互式提示内容即可...one 为非私有变量,two为私有变量,private作用是交互模式下是否显示输入变量值。 ? 这里总结了7常用定义变量方式,以及如何去引用。欢迎大家,实践指正,谢谢!

4.9K20

在JSP页面调用另一个JSP页面变量

https://blog.csdn.net/huyuyang6688/article/details/16896447          在jsp学习,经常需要在一个jsp页面调用另一个jsp...页面变量,下面就这几天学习,总结一下。         ...jsp页面之间变量调用有多种方法:         1、通过jsp内置对象—request对象获取参数:          (1)通过超链接传参:                  例:把a.jsp...i=1">传参     (说明:给i赋值时也可以用jsp表达式,例如i=)                       在b.jsp页面核心代码为:                          ...:                    例:把a.jsp定义变量传送到b.jsp;                         在a.jsp核心代码为:

7.4K52

何在Bash遍历由变量定义数字范围

问: 当范围由变量给出时,如何在Bash遍历这一范围内数字?...我知道我可以这样做(在 Bash 文档称为“序列表达式”): for i in {1..5}; do echo $i; done 它会输出: 1 2 3 4 5 然而,我该如何用变量替换范围任意一个端点呢...$END}; do echo $i; done 这会输出: {1..5} 答: 提问者代码不起作用原因是花括号扩展在任何其他扩展之前执行,且其他扩展具有特殊含义任何字符都会在结果中保留下来。...换句话说,花括号扩展只是简单地基于文本替换,它不会根据周围语法环境或者花括号内部文本进行复杂分析或解析。这种方式确保了扩展过程快速且不依赖于特定语境。...如何将一个大文本文件拆分为行数相等小文件 在bash:-(冒号破折号)用法 在Bash如何从字符串删除固定前缀/后缀

19410

非常好Ansible入门教程(超简单)

2.3.2 更多任务(More Tasks) Note: 您还可以注册模块操作结果,并使用定义变量根据注册(register)变量值有条件(when)地执行操作。...Note: 您还可以注册模块操作结果,并使用定义变量根据注册(register)变量值有条件(when)地执行操作。例如,注册通过shell模块运行命令结果可以让您访问该命令stdout。...该vars目录包含一个main.yml文件(handlers和meta目录一样),在main.yml我们可以列出将要使用所有变量。...Note:变量文件密码是散列,但我仍然喜欢加密包含散列密码yaml文件。这些文件通常包含未标记数据,API令牌或SSH私钥,使加密非常重要。...展示了如何注册任务“依赖”执行关系,当一个任务执行成功后再执行另一个任务 展示了如何在我们任务中使用更多模板,文件和变量 6.

3.5K20

ansible简易入门之playbook

role除了自己手写外,还可以通过ansible-galaxy安装得到,: 1 ansible-galaxy install --roles-path ....Modules Utilities Modules Windows Modules 如果要操作windows的话 Playbook变量 变量在Playbook算是比较复杂,可以在很多地方定义变量...通过register注册变量 # roles/httpd/tasks/main.yml - shell: /usr/bin/foo register: foo_result ignore_errors...: hosts:webservers roles: -{role:debian_stock_config,when:ansible_os_family=='Debian'} 基于变量选择文件和模版...后面发现ansible2.0后添加了一个Blocks功能,可以把多个指令当成一个块执行,这下一些简单多指令操作可以直接用Blocks搞定了 查看自动获取变量 有时需要使用到从目标主机自动获取变量

1.1K40

Ansible 批量部署 zabbix-agent

Ansible简介 ansible基于python开发,集合了众多优秀运维工具优点,实现了批量运行命令、部署程序、配置系统等功能。...可在主机名后面加上端口号, 192.168.159.131:9604,也可以修改配置文件remote_port变量值/etc/ansible/hosts也可以定义一个主机范围,192.168.99...使用yum安装zabbix-agent 3.修改agent配置文件一些变量,将模板文件覆盖到agent配置文件 4.重启zabbix-agent 定义agent模板 创建模板文件,里面包含agent可变变量.../etc/ansible/windows/zabbix_agentd.conf 创建一个模板文件,里面包含agent可变变量:主机名和server地址 LogFile=c:\zabbix_agentd.log...,主机自动注册内容请查阅前期文章!

1.1K30

何在Ubuntu 14.04上使用Ansible部署多个PHP应用程序

在本教程,我们将基于我们在前面的教程中学到内容,将我们单应用程序Ansible playbook转换为支持在一个或多个服务器上部署多个PHP应用程序playbook。...第4步 - 在模板应用循环变量 在本节,我们将介绍如何在模板中使用循环变量。 模板循环变量非常简单。它们使用方式与在任务中使用方式完全相同,就像所有其他变量一样。...现在是时候解决一个更复杂循环示例,特别是注册变量。...但是,我们现在有一个注册变量在循环中很好地工作。 第6步 - 复杂注册变量和循环 在本节,我们将了解更复杂注册变量和循环。 转换中最复杂部分是处理我们用于MySQL数据库密码生成注册变量。...主机变量可以在hosts文件内联定义,就像我们使用ansible_ssh_user变量一样,或者可以在目录每个主机专用host_vars文件中被定义。

8.6K00

玩转企业常见应用与服务系列(十五):Ansible palybook 原理与实践

Ansible Palybook编写是基于YAML语言。...register 和when register 用于注册一个变量,保存命令结果(shell或command模块),这个变量可以在后面的task、when语句或模板文件中使用。...简单来讲,roles就是通过分别将变量、文件、任务、模板及处理器放置于单独目录,并可以便捷include它们一种机制。角色一般用于基于主机构建服务场景,但也可以是用于构建守护进程等场景。...另一个如下图所示: 每次Ansible Playbook在执行时,都会收集下游设备信息,这个过程通常要耗费较长时间。...SSH pipelining链接加速 SSHpipelining是另一个加速Ansible执行速度方法。

24011

IT运维面试问题总结-运维工具、开源应用(Ansible、Ceph、Docker、Apache、Nginx等)

Ansible 利用变量存储整个 Ansible 项目文件可重复使用值,从而可以简化项目的创建和维护,并减少错误发生率。...在定义Ansible变量时,通常有如下三种范围变量: global范围:从命令行或Ansible配置设置变量; play范围:在 play 和相关结构设置变量; host范围:inventory...14、简述Ansible角色? 数据中心有各种不同类型主机。web服务器、数据库服务器,基于开发环境服务器。...日志判断:默认情况下,Ansible没有配置为将其输出,记录到任何日志文件。可通过ansible.cfg配置文件default部分log_path参数或$ANSIBLE_LOG环境变量进行配置。...通常基于安全考虑,Nginx启用了同源策略,即限制了从同一个源加载文档或脚本如何与来自另一个资源进行交互。这是一个用于隔离潜在恶意文件重要安全机制。

3.4K10

Ansible自动化运维学习笔记2

我们可以通过引用变量从而使用对应信息; 其实debug模块常常用来调试playbook,输出自定义异常以及setup信息收集变量输出; (4) register 注册变量 描述:ansible模块在运行之后其实都会返回一些...”返回值”,只是默认情况下这些”返回值”并不会显示而已,我们可以把这些返回值写入到某个变量,然后通过引用对应变量从而获取到这些返回值,这种将模块返回值写入到变量方法被称为"注册变量"; 这些返回值不仅仅能够用于输出通常我们会利用到这些返回值...,比如通过模块返回值决定之后一些动作,所以注册变量在playbook还是会被经常用到; 基础示例: #执行命令返回结果利用 debug 查看 --- - hosts: local remote_user...它更像shell变量赋值方式,可以将某个变量值赋值给另一个变量,也可以将字符串赋值给变量。...其实除了facts信息,我们还能够利用hostvars内置变量从别的主机获取到其他类型一些变量信息,比如其他主机注册变量、主机变量、组变量等信息,还有就是注册变量并不用像facts信息那样需要事先收集

2.3K10

Ansible自动化运维学习笔记2

我们可以通过引用变量从而使用对应信息; 其实debug模块常常用来调试playbook,输出自定义异常以及setup信息收集变量输出; (4) register 注册变量 描述:ansible模块在运行之后其实都会返回一些...”返回值”,只是默认情况下这些”返回值”并不会显示而已,我们可以把这些返回值写入到某个变量,然后通过引用对应变量从而获取到这些返回值,这种将模块返回值写入到变量方法被称为"注册变量"; 这些返回值不仅仅能够用于输出通常我们会利用到这些返回值...,比如通过模块返回值决定之后一些动作,所以注册变量在playbook还是会被经常用到; 基础示例: #执行命令返回结果利用 debug 查看 --- - hosts: local remote_user...它更像shell变量赋值方式,可以将某个变量值赋值给另一个变量,也可以将字符串赋值给变量。...其实除了facts信息,我们还能够利用hostvars内置变量从别的主机获取到其他类型一些变量信息,比如其他主机注册变量、主机变量、组变量等信息,还有就是注册变量并不用像facts信息那样需要事先收集

3K51

自动化运维实践 | Ansible变量

Ansible使用变量几个场景 在playbook, 常用几种变量包括以下几种情况: 1)在playbook中用户自定义变量 2)用户无须自定义。...3)在文件模板,可以直接使用上述两种变量 4)把任务运行结果作为一个变量来使用,这个变量叫做注册变量 5)为了使playbook更灵活、通用性更强,允许用户在执行playbook时传入变量值,这个时候就需要用到...把运行结果当做变量使用-注册变量 把任务执行结果当做一个变量值也是可以。这个时候就需要用到"注册变量",即把执行结果注册到一个变量,待后面的任务使用。...- Ansible配置文件定义变量 --- 环境变量 --- ansible/ansible-playbook命令行传进来变量 Play, 作用域为play(一个playbook由多个play组成...,作用域为某个主机 --- 定义在主机清单变量 --- 主机系统变量 --- 注册变量 Ansible变量优先级 Ansible变量优先级(由低到高) role defaults dynamic

1.9K30

Ansible剧本(playbook)编写

也可以这么理解,playbook 字面意思,即剧本,现实由演员按照剧本表演,在Ansible,这次由计算机进行表演,由计算机安装,部署应用,提供对外服务,以及组织计算机处理各种各样事情。...name: - "{{ web_packages }}" - "{{ ftp_packages }}" state: present 注册变量...(register) 使用情景:将配置文件状态注册成一个变量,方便其他任务引用 具体实现: 1.将配置文件状态注册成一个服务变量并打印出来 - hosts: 10.1.1.20 tasks:...事实是单个主机属性,包括 IP 地址、操作系统、文件系统状态等等。基于事实条件: 只有在操作系统是特定版本时,才能安装特定包。 您可以跳过在具有内部 IP 地址主机上配置防火墙。...“Hello World” 双引号或单引号中间一切都是字符串。

2K40

自动化运维利器Ansible要点汇总

Ansible是一款基于Python开发自动化运维工具,实现了批量系统配置、批量程序部署、批量运行命令等功能,主要特点: 部署简单,只需在主控端部署Ansible环境,被控端无需做任何操作,默认使用SSH...控制节点交互一般采用公钥认证,这需要将主机节点公钥发放到所有被管节点,也可采用密码形式通讯,但由于需要在hosts文件明文标出不安全 不推荐,配置密码: /etc/ansible/hosts 192.168.0.200...ansible_ssh_user=root ansible_ssh_pass=123@abc   主机清单(host inventory)定义了管理主机策略,需要在host文件写入主机IP地址即可...3、加载自己对应模块文件,command 4、通过ansible将模块或命令生成对应临时py文件,并将该文件传输至远程服务器 5、对应执行用户家目录.ansible/tmp/XXX/XXX.PY...- name: 'Delete logs' shell: rm -f /var/log/nginx/errors.log ignore_errors: true register 注册变量

2K30

Ansible 常用

1、我/etc/ansible/hosts配置是这样 image.png 2.由于ansible基于ssh管理被管控主机,所以需要配置ssh基于秘钥认证进行连接,否则每次发送一个管控命令都会提示输入...=started ' 这个主机启动失败原因是80端口被占用了,我在上面跑着haproxy 另一个示例 ansible all -m service -a 'name=httpd runlevel...主机变量:定义在host inventory(就是/etc/ansible/hosts) 主机之后变量, 组变量:定义在host inventory(就是/etc/ansible/hosts)...组后面的变量 启动参数:也是定义在定义在host inventory(就是/etc/ansible/hosts) 主机之后,但是并不是自定义变量,更像一些参数。...如何在playbook定义并使用变量

1.5K20
领券