首页 > 解决方案 > Ansible - 读取文件,提取特定行,提取列并分配给变量

问题描述

我需要一些帮助来从文件中提取特定行,然后提取列,将其分配给变量,然后在下一个任务中使用该变量。

我在融合代理服务器上有这种格式的文件

Save the key. It cannot be retrieved later.
+------------+----------------------------------------------+
| Enc Key | omykeyvaluecontinuousstringgoeshereandmakelong= |
+------------+----------------------------------------------+

我正在尝试编写将读取第三行的 Ansible 任务,然后将密钥提取到一个变量中,我需要将该变量导出为任务中的环境变量。在下一个任务中,我将执行一个融合命令作为 shell 命令。

我尝试了类似下面的方法,但它不起作用 - 我收到错误

vars:
    ansible_ssh_extra_args: "-o StrictHostKeyChecking=no"
    ansible_host_key_checking: false
    contents: "{{ lookup('file', '/etc/kafka/info.txt') }}"
    contents2: "{{ lookup('file', '/etc/kafka/info.txt').splitlines() }}"

- name: set fact
  set_fact:
    extract_key: "{{ contents.split('\n')[2] }}"

- name: Display output
  debug: msg="{{ extract_key }}"

然后从 extract_key 变量中提取键值

我怎样才能做到这一点?

谢谢

标签: listansiblelookup

解决方案


下面的任务完成了这项工作

    - set_fact:
        extract_key: "{{ contents.split('\n').2.split('|').2|trim }}"

  extract_key: omykeyvaluecontinuousstringgoeshereandmakelong=

推荐阅读