Ansible Команда оболочки OpenShift не работает, но работает за пределами Ansible - PullRequest
0 голосов
/ 19 февраля 2020

У меня есть Ansible playbook, который включает в себя логин CLI OpenShift:

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

Сбой (имя хоста было заменено ниже):

fatal: [<host>]: FAILED! => {"changed": true, "cmd": "oc login -u kubeadmin -p $(cat /root/auth/kubeadmin-password) https://<host>:6443", "delta": "0:00:00.228068", "end": "2020-02-19 09:47:32.651617", "msg": "non-zero return code", "rc": 1, "start": "2020-02-19 09:47:32.423549", "stderr": "error: The server is using a certificate that does not match its hostname: x509: certificate is valid for 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, not <host>", "stderr_lines": ["error: The server is using a certificate that does not match its hostname: x509: certificate is valid for 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, not <host>"], "stdout": "", "stdout_lines": []}

Но если я запустлю команда напрямую, она работает:

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".

Есть мысли о том, почему она терпит неудачу при Ansible? Ansible версия 2.4.2.0.

Ответы [ 2 ]

0 голосов
/ 20 февраля 2020

Похоже, это проблема с сертификатом, установленным в OCP. Я могу обойти проблему с флагом --insecure-skip-tls-verify=true в команде oc login. Разговор с нашими администраторами OCP ...

0 голосов
/ 19 февраля 2020

Модуль оболочки запускает оболочку / bin / sh.

Возможно, вы используете / bin / bash и у вас есть конфигурация в .bashr c, которая не активируется.

Попробуйте что-то вроде этого:

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