Ansible OpenShift shell命令失败,但在Ansible外部工作

Ansible OpenShift shell命令失败,但在Ansible外部工作,ansible,openshift-3,Ansible,Openshift 3,我有一个Ansible playbook,其中包括OpenShift CLI登录: - name: "OpenShift CLI login" shell: oc login -u kubeadmin -p $(cat /root/auth/kubeadmin-password) https://{{ groups['boot'][0] }}:6443 失败原因为(主机名已替换如下): 致命:[]:失败!=>{“changed”:true,“cmd”:“oc login-u kubeadm

我有一个Ansible playbook,其中包括OpenShift CLI登录:

- name: "OpenShift CLI login"
  shell: oc login -u kubeadmin -p $(cat /root/auth/kubeadmin-password) https://{{ groups['boot'][0] }}:6443
失败原因为(主机名已替换如下):

致命:[]:失败!=>{“changed”:true,“cmd”:“oc login-u kubeadmin-p$(cat/root/auth/kubeadmin密码)https://:6443”,“delta:“0:00:00.228068”,“end:“2020-02-19 09:47:32.651617”,“msg:“非零返回码”,“rc:”1,“start:“2020-02-19 09:47:32.423549”,“stderr:”“错误:服务器使用的证书与其主机名不匹配:x509:证书对kubernetes、kubernetes.default、kubernetes.default.svc、kubernetes.default.svc.cluster.local、openshift、openshift.default、openshift.default.svc、openshift.default.svc.cluster.local、172.30.0.1有效,而不是”“标准行:”错误:服务器使用的证书与其主机名不匹配:x509:证书对kubernetes、kubernetes.default、kubernetes.default.svc、kubernetes.default.svc.cluster.local、openshift、openshift.default、openshift.default.svc、openshift.default.svc.cluster.local、172.30.0.1有效,而不是“],“stdout”:“,”stdout_行“:[]}
但如果我直接运行该命令,它会起作用:

oc login -u kubeadmin -p $(cat /root/auth/kubeadmin-password) https://<host>:6443
Login successful.
You have access to 55 projects, the list has been suppressed. You can list all projects with 'oc projects'
Using project "openshift-image-registry".
oc login-u kubeadmin-p$(cat/root/auth/kubeadmin密码)https://:6443
登录成功。
您有权访问55个项目,列表已被抑制。您可以使用“oc项目”列出所有项目
使用项目“openshift图像注册表”。

有没有想过为什么它在Ansible下会失败?Ansible版本是2.4.2.0。

shell模块运行一个/bin/sh shell

您可能正在运行/bin/bash,并且.bashrc中的config未被激活

试着这样做:

- name: "OpenShift CLI login"  
  shell: /bin/bash oc login -u kubeadmin -p $(cat /root/auth/kubeadmin-password) https://{{ groups['boot'][0] }}:6443  

这似乎是OCP中安装的证书的问题。我可以绕过
oc login
命令上的标志
--unsecure skip tls verify=true
的问题。与OCP管理员交谈…

奇数:``致命:[]:失败!=>{“更改”:true,“cmd”:/bin/bash oc login-u kubeadmin-p$(cat/root/auth/kubeadmin password)https://:6443,“delta”:“0:00:00.007296”,“end”:“2020-02-19 11:48:04.506336”,“msg”:“非零返回码”,“rc”:126,“start”:“2020-02-19 11:48:04.499040”,“stderr”:“oc:oc:无法执行二进制文件”,“stderr\u行”:[“oc:oc:无法执行二进制文件”],“stdout”:“stdout”;“stdout\u行”:[])要重试,请使用:--limit@/root/ansible/deploy.retry``开始认为oc命令本身有些奇怪。
- name: "OpenShift CLI login"  
  shell: /bin/bash oc login -u kubeadmin -p $(cat /root/auth/kubeadmin-password) https://{{ groups['boot'][0] }}:6443