gpt4 book ai didi

kubernetes - 如何从kubernetes集群的ansible(register stdout)初始化中获取最后两行

转载 作者:行者123 更新时间:2023-12-02 12:29:46 27 4
gpt4 key购买 nike

这是我的剧本文件的一部分:

  - name: Initialize the Kubernetes cluster using kubeadm
command: kubeadm init --config /etc/kubernetes/kubeadminit.yaml
register: init_output

- name: Copy join command to local file
local_action: copy content={{ init_output.stdout }} dest="./join-command"

当前,join命令包含整个标准输出(文本的30多个行)。我要捕获的只是init_output.stdout的最后两行,而不是整个输出。我已经研究过使用索引引用(即init_output.stdout [#]),但是我不知道输出将始终是相同的长度,并且我不知道如何使用索引来抓取多行,但我相当确定,最后两行将始终是join命令。有什么建议么?

最佳答案

从列表stdout_lines中选择最后2行

- local_action: copy content={{ init_output.stdout_lines[-2:] }} dest="./join-command"

可以将代码行格式化为一个块。例如
    - local_action:
module: copy
content: |
{{ init_output.stdout_lines[-2] }}
{{ init_output.stdout_lines[-1] }}
dest: "./join-command"

要将行附加到循环中,请尝试
    - local_action:
module: lineinfile
path: "./join-command"
line: "{{ item }}"
insertafter: EOF
create: true
loop: "{{ init_output.stdout_lines[-2:] }}"

关于kubernetes - 如何从kubernetes集群的ansible(register stdout)初始化中获取最后两行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59775792/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com