ansible - Ansible:删除标准输出中不需要的字符
问题描述
我正在运行一个 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
默认打印的颜色代码。
解决方案
这成功了
- name: master_setup.yml --> DEBUG REGEX
debug:
var: rv_cluster_info.stdout | regex_replace('\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[mGK]', '')
从此SO答案中使用的正则表达式。
推荐阅读
- javascript - 类型错误:调用 Firebase 云函数时无法读取未定义的属性“匹配”
- c - 我修改后指针不会改变
- c++ - 为什么这个 C++ STL 代码编译失败
- pdf - 在 HTML 中显示大的 pdf 将导致不完整的分块编码错误
- jspdf - 使用 JsPDF 和模板添加页眉和页脚
- python - 从表中读取数据并使用 pandas 转换为 xml 时出错
- c# - 防止在 Linux 上删除文件
- android - 在 Android Studio 中使用 Volley 和一个 Json 文件,该文件具有指向另一个 Json 文件的链接,我想从中获取数据
- visual-studio-code - VSCode 远程服务器卡在初始化服务器上
- postgresql - Sequelize 错误 42804。将需要重写或转换表达式