Ansible:在标准输出中删除不需要的字符

时间:2019-04-07 09:57:01

标签: ansible

我正在播放一个想解析kubect cluser-info命令输出的剧集。

我期望得到的是:

    $ kubectl cluster-info
    Kubernetes master is running at https://192.168.60.11:6443
    KubeDNS is running at https://192.168.60.11:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

    To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

我实际上从以下任务中得到什么:

    - name: master_setup.yml --> Check if cluster is already running and exit if so
      shell: "kubectl cluster-info"
      failed_when: false
      register: rv_cluster_info
      environment:
        KUBECONFIG: "/etc/kubernetes/admin.conf"
      become: yes


    - name: master_setup.yml --> DEBUG
      debug:
        var: rv_cluster_info

是这个

ok: [kubernetes-master-1] => 
  rv_cluster_info:
    changed: true
    cmd: kubectl cluster-info
    delta: '0:00:00.174232'
    end: '2019-04-07 09:41:39.237907'
    failed: false
    failed_when_result: false
    rc: 0
    start: '2019-04-07 09:41:39.063675'
    stderr: ''
    stderr_lines: []
    stdout: |-
      [0;32mKubernetes master[0m is running at [0;33mhttps://192.168.60.11:6443[0m
      [0;32mKubeDNS[0m is running at [0;33mhttps://192.168.60.11:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy[0m

      To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
    stdout_lines:
    - "\e[0;32mKubernetes master\e[0m is running at \e[0;33mhttps://192.168.60.11:6443\e[0m"
    - "\e[0;32mKubeDNS\e[0m is running at \e[0;33mhttps://192.168.60.11:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy\e[0m"
    - ''
    - To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

如何摆脱这种令人讨厌的\e[0;33东西?

编辑:显然,这些是默认情况下由kubectl打印的颜色代码。

1 个答案:

答案 0 :(得分:0)

这成功了

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np

from mpl_toolkits.mplot3d import Axes3D


fig, ax = plt.subplots(subplot_kw=dict(projection='3d'))
ax.view_init(20, 30)

p = np.random.rand(24).reshape(8, 3)
ax.scatter(p[:, 0], p[:, 1], p[:, 2])

ax.set_xlim(0, 2)
ax.set_ylim(0, 2)
ax.set_zlim(0, 2)

ax.xaxis.set_major_locator(mpl.ticker.MultipleLocator(0.5))
ax.yaxis.set_major_locator(mpl.ticker.MultipleLocator(0.5))
ax.zaxis.set_major_locator(mpl.ticker.MultipleLocator(0.5))

plt.show()

正则表达式来自this这样的答案。