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

Ansible:从ansible playbook的stdout_lines获取特定行

Ansible是一种自动化工具,用于配置管理、应用部署和任务执行。它基于Python开发,通过SSH协议与远程主机进行通信,实现对远程主机的自动化管理。

Ansible Playbook是Ansible的核心组件之一,它是一个以YAML格式编写的文本文件,用于描述和定义一系列任务和配置。Playbook中的任务可以执行各种操作,包括执行命令、安装软件、配置文件、启动服务等。

在Ansible Playbook中,可以通过stdout_lines关键字来获取特定行的输出结果。stdout_lines是一个Ansible内置的变量,用于存储命令执行的标准输出结果。可以通过对stdout_lines变量进行过滤和处理,获取特定行的输出。

以下是一个示例的Ansible Playbook,演示如何从stdout_lines获取特定行:

代码语言:txt
复制
- name: Execute command and get specific lines
  hosts: target_hosts
  tasks:
    - name: Run command and store output
      command: your_command
      register: command_output

    - name: Get specific lines from output
      debug:
        msg: "{{ command_output.stdout_lines | select('regex', '^specific_pattern') | list }}"

在上述示例中,首先使用command模块执行一个命令,并将输出结果存储在command_output变量中。然后使用debug模块打印出通过过滤和处理stdout_lines变量获取的特定行。

需要注意的是,your_command需要替换为实际的命令,specific_pattern需要替换为要匹配的特定行的正则表达式模式。

推荐的腾讯云相关产品是腾讯云Ansible Tower,它是基于Ansible的企业级自动化平台,提供了更强大的功能和管理能力。您可以通过以下链接了解更多关于腾讯云Ansible Tower的信息:腾讯云Ansible Tower产品介绍

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

相关·内容

AnsiblePlaybook基操

playbook是由一个或多个"play"组成列表 play主要功能在于将预定义一组主机,装扮成事先通过ansibletask定义好角色。...Task实际是调用ansible一个module,将多个play组织在一个playbook中, 即可以让它们联合起来,按事先编排机制执行预定义动作 Playbook采用YAML语言编写 --- -...1.0 PlayBook核心元素 Hosts:playbook每一个play目的都是为了让特定主机以某个指定用户身份执行任务,hosts用于指定要执行指定任务主机,须事先定义在主机清单中....playbook中调用 Templates模板 : 可替换模板文件中变量并实现一些简单逻辑文件 Handlers和notify: 结合使用,由特定条件触发操作,满足条件方才执行,否则不执行 tags...: 指定某条任务执行,用于选择运行playbook部分代码. ansible-playbook -C hello.yaml - C 选项检查剧本是否成功,并不实际执行 1.0.1 忽略错误信息 tasks

85910

如何编写清晰Ansible Playbook(复杂Playbook如何构建)

时,基础playbook开始,并尽可能使用静态清单。...尽量使用Ansible中包含特殊用途模块,而不是command、shell、raw这样通用模块。使用为特定任务设计模块可以轻松地使 Playbook 具有幂等性,且易于维护。...,而较小playbook 可能会包含可以独立运行、适合特定用途 play。...当系统管理员离职时,因受管主机authorized_keys文件中删除其 SSH 密钥,同时撤销其 sudo 权限。也可以考虑使用红帽 Ansible Tower 作为中央控制节点。...针对每一个角色,ansible会到固定目录去调取特定数据,关于角色在剧本中使用,可以看看上面 deplay_*.yaml 角色内一般不指定hosts: 清单主机列表,而是交给调用此角色剧本来指定

2.8K10

python中Ansible模块Playbook具体使用

Ansible中,我们也可以获取任务执行结果,将任务执行结果保存在一个变最中,并在之后引用这个变量。这样变量在Ansible中使用register选项获取,也称为注册变量。...Facts变量是Ansible执行远程部署之前远程服务器中获取系统信息,包括服务器名称、IP地址、操作系统、分区信息、硬件信息等。Facts变量可以配合Playbook实现更加个性化功能需求。...再或者说,在循环时候想要跳过一些特定元素,在服务器部署时只对某些特定操作系统进行操作。所有这些行为都可以使用条件语句解决。...Ansible 2.0开始,Ansible支持名为free任务执行策略,允许执行较快远程服务器提前完成Play部署,不用等待其他远程服务器一起执行task。...这个变量是Facts变量,是Ansible在执行Playbook之前远程服务器获取信息。因此,我们不需要定义,直接使用即可。

4K10

Ansible自动化运维学习笔记4

[TOC] 条件判断 描述:在高级语言中条件判断是不可或缺,同样我们也可以在ansible中条件判断用户; 注意:绝大多数语言中都使用”if”作为条件判断关键字,而在ansible中条件判断关键字是...是另一个list父集时返回真 #注:2.5版本中上述两个testsissubset和issuperset更名为subset和superset 总结:ansible使用jinja2模板引擎,这些运算符其实都是...比如:ansible_distribution就是facts信息中一个key,通过ansible_distribution可以获取到目标主机系统发行版] ansible local -m setup...也会忽略这个错误继续执行playbook; 当我们调用shell模块运行命令时,通常需要获取到shell模块返回信息以便之后模块能够根据返回信息值判断之后进行怎样操作: 比如:下面shell模块在远程主机...test70中执行命令 “ls /testabc”,我们将shell模块返回值注册到了变量returnmsg,然后通过returnmsg获取到了命令执行返回码,如果返回码为0则证明命令完全正常执行,

2.5K10

Ansible自动化运维学习笔记4

[TOC] 条件判断 描述:在高级语言中条件判断是不可或缺,同样我们也可以在ansible中条件判断用户; 注意:绝大多数语言中都使用”if”作为条件判断关键字,而在ansible中条件判断关键字是...是另一个list父集时返回真 #注:2.5版本中上述两个testsissubset和issuperset更名为subset和superset 总结:ansible使用jinja2模板引擎,这些运算符其实都是...比如:ansible_distribution就是facts信息中一个key,通过ansible_distribution可以获取到目标主机系统发行版] ansible local -m setup...也会忽略这个错误继续执行playbook; 当我们调用shell模块运行命令时,通常需要获取到shell模块返回信息以便之后模块能够根据返回信息值判断之后进行怎样操作: 比如:下面shell模块在远程主机...test70中执行命令 “ls /testabc”,我们将shell模块返回值注册到了变量returnmsg,然后通过returnmsg获取到了命令执行返回码,如果返回码为0则证明命令完全正常执行,

1.5K20

Ansible自动化运维学习笔记2

其对应值与 “ansible_distribution” 值可以看出local主机系统版本为centos7.4 “ansible_ens35” 表示远程主机ens35网卡相关信息,细心如你一定也发现了...#获取本地自定义信息 (默认目录) ansible local -m setup -a "filter=ansible_local" #假设我把".fact"文件放在了目标主机"/tmp"目录下...在setup模块示例中我们可以通过"ansible_memory_mb"关键字获取远程主机内存信息,其实在playbook中也可以直接调用”ansible_memory_mb”变量名; --- -...内置变量一览表: 1.ansible_version : 获取ansible版本号 2.inventory_dir : 获取ansible主机中清单文件存放路径,ansible默认清单文件/etc...其实除了facts信息,我们还能够利用hostvars内置变量别的主机中获取到其他类型一些变量信息,比如其他主机注册变量、主机变量、组变量等信息,还有就是注册变量并不用像facts信息那样需要事先收集

3K51

Ansible自动化运维学习笔记2

其对应值与 “ansible_distribution” 值可以看出local主机系统版本为centos7.4 “ansible_ens35” 表示远程主机ens35网卡相关信息,细心如你一定也发现了...#获取本地自定义信息 (默认目录) ansible local -m setup -a "filter=ansible_local" #假设我把".fact"文件放在了目标主机"/tmp"目录下...在setup模块示例中我们可以通过"ansible_memory_mb"关键字获取远程主机内存信息,其实在playbook中也可以直接调用”ansible_memory_mb”变量名; --- -...内置变量一览表: 1.ansible_version : 获取ansible版本号 2.inventory_dir : 获取ansible主机中清单文件存放路径,ansible默认清单文件/etc...其实除了facts信息,我们还能够利用hostvars内置变量别的主机中获取到其他类型一些变量信息,比如其他主机注册变量、主机变量、组变量等信息,还有就是注册变量并不用像facts信息那样需要事先收集

2.3K10

Ansible自动化运维工具

代码部署到网络配置再到云管理,使用一种接近简单英语语言,使用 SSH 实现一切自动化,无需在远程系统上安装代理。...": [ "hello,world" ]}Stdout_lines参数就是实际机器返回值其他参数可以查看ansible-doc来详细学习user模块主要用于管理用户使用命令:ansible...name是描述Hosts是主机清单Tasks是配置任务子任务中name是描述User则就代表user模块模块子参数就不需要-了name则是user配置参数运行playbook命令是ansible-playbook...play中直接调用并执行他undefined第二排开始就是roles文件 文件中包含很多项目就是第三排内容 然后第四就是每个项目中子目录 这几个子目录都有自己作用Roles子目录Default...ansible时候难免会有一些比较敏感数据,比如密码,key等信息直接明文暴露显然不是很好,vault管理加密/解密yml(palybook)文件工具,有时编写playbook文件中会存在重要敏感信息

2.5K30

运维必备 | ansible 自动化运维工具之变量定义与调用

#获取本地自定义信息 (默认目录) ansible local -m setup -a "filter=ansible_local" #假设我把".fact"文件放在了目标主机"/tmp"目录下...「Q: 那么我们怎样在playbook获取到这些变量值呢?」...描述: 在setup模块示例中我们可以通过"ansible_memory_mb"关键字获取远程主机内存信息,其实在playbook中也可以直接调用"ansible_memory_mb"变量名; --...「内置变量一览表」: 1.ansible_version : 获取ansible版本号 2.inventory_dir : 获取ansible主机中清单文件存放路径,ansible默认清单文件...其实除了facts信息,我们还能够利用hostvars内置变量别的主机中获取到其他类型一些变量信息,比如其他主机注册变量、主机变量、组变量等信息,还有就是注册变量并不用像facts信息那样需要事先收集

79910

自动化运维| Ansible playbook逻辑控制语句

今天我们来讲讲Ansible playbook逻辑控制语句when 和loop。 Ansible条件判断语句-When when是Ansible条件判断语句, 类似于编程语言中if。...有时候用户很可能需要满足特定条件才执行某一个特定步骤,例如在一个特定版本系统上安装软件包,或者只在磁盘空间不足文件系统上执行清理操作一样。这些操作在playbook中用when语句实现。...when基本用法 tasks: - name: "Shutdown centos server" shell: shutdown -t now when: ansible_os_family...上面的playbook也可以这样写:(在"vars"区域定义了一组列表变量) --- - hosts: all remote_user: root vars: user_list:...参考资料: Ansible快速入门, 技术原理与实战。

1.2K20

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

Ansible完成任务两种方式,一种是Ad-Hoc,就是ansible命令,另一种就是Ansible-playbook,也就是ansible-playbook命令。...ansible命令 获取192.168.0.123主机信息 ansible 192.168.0.123 -m shell -a "uname -a" ansible常用模块 command、shell...、raw、script执行shell命令 copy:复制文件到远程主机,可以改权限等 file设置文件目录属性等 fetch 远程某主机获取文件到本地 service 服务程序管理,启动停止重启服务等操作...ansible-playbook执行logstash安装剧本 ansible-playbook /logstash/site.yml   这里不详细介绍playbook使用,只摘出几个重要使用场景方法...in ["CentOS","RedHat","Amazon","Aliyun"]' 内置变量inventory_hostname   inventory_hostname变量可以获取到被操作的当前主机主机名称

2K30

如何控制Ansible Playbook执行顺序、运行选定剧本资源

写在前面 分享一些AnsiblePlaybook执行顺序控制手段以及运行选定任务笔记 不知道小伙伴们有么有遇到这样情况 一些运维场景,Github中找了很棒剧本或者角色,但是只需要其中一部分...,涉及内容: 通过标记tags仅运行标有特定标签任务,或者特定任务开始执行Playbook 通过include_role && import_role 作为任,控制角色执行顺序 通过pre_task...——王小波」 ---- 对 Ansible 剧本资源打标签 在处理大型或复杂剧本时,如果只希望运行部分剧本或部分任务。可以将标签应用于可能要跳过或运行特定资源。...,给对应资源标记打标签,然后使用ansible-playbook运行playbook时,添加--tags选项来筛选 playbook 仅运行带有特定标签play 或任务。...由于Ansible通常在多个主机上并行运行每个任务,因此 ansible-playbook 命令输出可能无法反映预期顺序:输出显示是任务完成顺序,而不是执行顺序。

2.4K10

Ansible Playbook实战

组成如下 play: 定义是主机角色 task: 定义是具体执行任务 playbook: 由一个或多个play组成,一个play可以包含多个task任务 简单理解为: 使用不同模块完成一件事情...2.playbook优势 1.功能比ad-hoc更全 2.能很好控制先后执行顺序, 以及依赖关系 3.语法展现更加直观 4.ad-hoc无法持久使用,playbook可以持久使用 3.playbook...playbookyaml文件中定义变量赋值 2) --extra-vars执行参数赋给变量 3) 在文件中定义变量 1、playbookyaml文件中定义变量赋值 #playbook中定义 [root...执行时传入file_name变量参数,在/tmp目录创建bgx_extra-vars文件 [root@manager ~]# ansible-playbook f2.yml --extra-vars...(ansible_hostname == "nfs") or (ansible_hostname == "backup") #系统为centos主机才会执行 - name: Centos

2.7K10

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

组件 AnsiblePlaybook有以下组件: Target 定义playbook远程主机组,即控制下游设备信息 Variable 定义Playbook所使用变量。...yum: pkg=httpd state=latest #yum说明要是用模板名称,后面指定对应参数,这两结合起来就相当于一个shell命令。...这里要重点说下,因为 register 获取输出内容都是字符串,而 ansible 又是 python 写,你可以使用 python 字符串方法对其做处理,比如本文中使用 split,还可以使用...loop等价于with_list,名字上可以知道它是遍历数组(列表),所以在loop指令中,每个元素都以列表方式去定义。...要删除这一步骤,我们可以在palybook文件中添加一: gather_facts: no 添加后Playbook文件如下所示: 这样,我们在执行该Playbook时,就不会再次进行gather_facts

19610
领券