我正在运行一个ansible play,我想解析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
默认打印的颜色代码。
这样做了
- name: master_setup.yml --> DEBUG REGEX
debug:
var: rv_cluster_info.stdout | regex_replace('\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[mGK]', '')
使用来自this的正则表达式回答。