【问题标题】:Ansible having problem authenticating with Google Cloud PlatformAnsible 在使用 Google Cloud Platform 进行身份验证时遇到问题
【发布时间】:2021-03-03 21:50:19
【问题描述】:

我们正在使用 Ansible 将映像部署到 Google Kubernetes Cluster (GKE)。

我们已经安装了 Ubuntu 20.04 和 Python 3.8.5。

playbook.main.yml:

---
- hosts: localhost
  vars:
    k8s_file_path: /home/pesinn/Documents/...
  become: yes
  become_method: sudo
  roles:
    - k8s

main.yml:

- name: First Deployment
  k8s:
    kubeconfig: /home/pesinn/.kube/config
    src: "{{k8s_file_path}}/deployment.yml"

当尝试部署在 deployment.yml 文件中定义的映像时,通过运行 playbook,我们收到此错误:

kubernetes.config.config_exception.ConfigException: cmd-path: 进程返回 1 Cmd:/home/pesinn/y/google-cloud-sdk/bin/gcloud config config-helper --format=json 标准错误:警告:无法打开配置文件:[/root/.config/gcloud/configurations/config_default]。 错误:(gcloud.config.config-helper)您当前没有选择活动帐户。 请运行: $ gcloud auth 登录

我们已经做了什么

  • 初始化云:gcloud init
  • 登录并选择了一个项目gcloud auth login
  • 运行export GOOGLE_APPLICATION_CREDENTIALS="path_to_service_account_key.json"
  • 运行gcloud container clusters get-credentials {gke_project} --region {region}
  • 运行剧本sudo ansible-playbook playbook.main.yml -vvv
  • 在本地机器上运行gcloud config config-helper --format=json没有任何问题

这里很奇怪的是,我们肯定已经登录了。我们可以在本地机器上通过 kubectl 命令访问 GKE 集群。但是,Ansible 抱怨我们没有登录。此外,在错误日志中,我们看到它正在尝试打开 /root/.config/gcloud/configurations/config_default。另一方面,我们的默认配置文件位于主文件夹中。

此错误随机发生。有时 Ansible 可以检测到我们的登录并部署镜像,但有时它会给我们这个错误。这两种情况都可以在不进行任何代码更改的情况下发生。

【问题讨论】:

  • 如果您的默认配置文件位于“主文件夹”中,我猜您以普通用户的身份播放了所有手动示例命令集。在这种情况下,你为什么在你的剧本中使用 become: true 成为 root ?更糟糕的是:你为什么要使用 sudo 来发布你的剧本?
  • 感谢您的帮助!它在删除become: true 然后从运行命令中删除sudo 时起作用。

标签: ansible google-kubernetes-engine


【解决方案1】:

由于某种原因,ansible 不使用 GCP 的默认环境变量进行身份验证。 你可以设置

GCP_AUTH_KIND
GCP_SERVICE_ACCOUNT_EMAIL
GCP_SERVICE_ACCOUNT_FILE
GCP_SCOPES

GCP_SERVICE_ACCOUNT_FILE 相当于GOOGLE_APPLICATION_CREDENTIALS

参考:https://docs.ansible.com/ansible/latest/scenario_guides/guide_gce.html#providing-credentials-as-environment-variables

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-29
    • 2019-11-06
    • 2017-09-23
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-25
    相关资源
    最近更新 更多