- name: get ocp version
shell: "oc get clusterversion | awk '{print $2}'| tail -1"
register: ver
我已经使用上面的任务在Ansible任务中注册了输出,但ver
也会有次要版本——4.8.1
,我只需要主要版本,即4.8
。
Q:"我只需要主要版本
A: 给定注册变量
ver.stdout: 4.8.1
最简单的选项是使用过滤器splitext。例如,
ver_major: "{{ ver.stdout|splitext|first }}"
给出
ver_major: '4.8'
这里,请注意该命令没有用双引号括起来。
- name: get ocp version
shell: oc get clusterversion | awk 'END{split($2,a,".");print a[1] "." a[2]}'
register: ver
带有grep
的选项
oc get clusterversion --no-headers | grep -o '[4].[0-9]' | head -1
直接,仅针对版本,带有cut
的选项
oc get clusterversion -o jsonpath='{.items[].spec.desiredUpdate.version}{"n"}' | cut -d '.' -f -2
这两者都将导致
4.8
如果您对OpenShift集群分发的规格或升级渠道和版本感兴趣
- name: OC get upgrade channel
shell:
cmd: oc get clusterversion -o jsonpath='{.items[].spec.channel}{"n"}'
# Since this is a reporting task ...
changed_when: false
check_mode: false
register: ver
这将导致
stable-4.8
更多有趣的信息。。。
oc get clusterversion -o jsonpath='{.items[]}{"n"}' | jq .
进一步文档
- 正在收集有关集群的数据
jsonpath
的OpenShift管理员指南