Ansible在Jenkins上启动,我想连接到OpenShift并获取当前实体(例如,路由)。
目标:获得一个文件,其中所有实体由---
分隔。
我尝试使用to_yaml
、from_yaml
等与oc --server
shell命令,但到目前为止没有任何效果。
获取嵌套部分的最简单方法是什么?从stdout
中提取items
的最佳方法是什么?还是干脆走别的路更好?例如,不使用shell
模块?
现在我试着这样做:
- name: Get K8s items
register: getItems
shell: oc --server {{ os_project.host }} --namespace {{ os_project.project }} --token {{ os_token }} get -o yaml route.route.openshift.io
- name: Write united config to file
copy:
content: "{{ getItems.stdout }}"
dest: processed_templates/os_backup/os_dump_{{ version }}.yml
我得到以下输出:
apiVersion: v1
items:
- apiVersion: route.openshift.io/v1
kind: Route
metadata:
annotations:
haproxy.router.openshift.io/balance: roundrobin
<...>
kind: Service
name: ingressgateway-ift-shared-https-svc
weight: 100
kind: List
metadata:
resourceVersion: ""
selfLink: ""
我如何得到这样的输出:
apiVersion: route.openshift.io/v1
kind: Route
metadata:
annotations:
haproxy.router.openshift.io/balance: roundrobin
<...>
kind: Service
name: ingressgateway-ift-shared-https-svc
weight: 100
1条答案
按热度按时间9rbhqvlz1#
stdout
中取出items
的最佳方法是什么?*根据所提供的信息,最小示例剧本
结果转换为请求的输出
getItems.stdout['items']
获得键的值。first
元素。