Ansible在使用Google云平台进行身份验证时遇到问题
我们正在使用部署映像到(GKE) 我们已经安装了Ubuntu 20.04和Python 3.8.5 playbook.main.yml:Ansible在使用Google云平台进行身份验证时遇到问题,ansible,google-kubernetes-engine,Ansible,Google Kubernetes Engine,我们正在使用部署映像到(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: k
---
- 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路径:进程返回1
Cmd:/home/pesinn/y/googlecloudsdk/bin/gcloud config-config-helper--format=json
Stderr:警告:无法打开配置文件:[/root/.config/gcloud/configurations/config\u default]。
错误:(gcloud.config.config helper)您当前没有选择活动帐户。
请运行:
$gcloud auth登录
我们已经做了什么
- 初始化云:
gcloud init
- 登录并选择一个项目
gcloud auth login
- 运行
export GOOGLE\u APPLICATION\u CREDENTIALS=“path\u to\u service\u account\u key.json”
- 运行
gcloud容器集群获取凭证{gke_project}--region{region}
- 运行playbook
sudo ansible playbook playbook.main.yml-vvv
- 在本地计算机上运行
,没有任何问题gcloud config help--format=json
此错误随机发生。有时Ansible可以检测我们的登录并部署映像,但有时它会给我们这个错误。这两种情况都可以在不进行任何代码更改的情况下发生。出于某种原因,ansible不使用GCP的默认环境变量进行身份验证。 你可以设置
GCP_AUTH_KIND
GCP_SERVICE_ACCOUNT_EMAIL
GCP_SERVICE_ACCOUNT_FILE
GCP_SCOPES
GCP\u服务\u帐户\u文件
相当于GOOGLE\u应用程序\u凭证
参考资料:如果您的默认配置文件位于“主文件夹”中,我猜您是以普通用户的身份播放了所有手动示例命令集。在这种情况下,为什么要在剧本中使用
been:true
来成为root用户?更糟糕的是:你为什么要用sudo
发布你的剧本?谢谢你的帮助!当删除been:true
并从正在运行的命令中删除sudo
时,它会起作用。