Google cloud platform GCP部署实例从ansible脚本失败

Google cloud platform GCP部署实例从ansible脚本失败,google-cloud-platform,ansible,google-compute-engine,quota,Google Cloud Platform,Ansible,Google Compute Engine,Quota,我已经通过ansible脚本在GCP中部署集群一年多了,但突然我的一个脚本不断给我这个错误: libcloud.common.google.GoogleBaseError:u \“区域”projects/[project]/zones/europe-west1-d'没有足够的可用资源来满足请求。请尝试其他区域,或稍后再试 显而易见的原因是我没有足够的资源,但没有太多的变化,配额看起来也不错: ansible脚本本身要求不多。 我正在使用100GB SSD创建3个n1-standard-4实例。

我已经通过ansible脚本在GCP中部署集群一年多了,但突然我的一个脚本不断给我这个错误:

libcloud.common.google.GoogleBaseError:u \“区域”projects/[project]/zones/europe-west1-d'没有足够的可用资源来满足请求。请尝试其他区域,或稍后再试

显而易见的原因是我没有足够的资源,但没有太多的变化,配额看起来也不错:

ansible脚本本身要求不多。 我正在使用100GB SSD创建3个n1-standard-4实例。 请参见下面的脚本片段:

tasks:
    - name: create boot disks
      gce_pd:
          disk_type: pd-ssd
          image: "debian-9-stretch-v20171025"
          name: "{{ item.node }}-disk"
          size_gb: 100
          state: present
          zone: "europe-west1-d"
          service_account_email: "{{ service_account_email }}"          
          credentials_file: "{{ credentials_file }}"
          project_id: "{{ project_id }}"          
      with_items: "{{nodes}}"
      async: 3600
      poll: 2

    - name: create instances
      gce:        
        instance_names: "{{item.node}}"
        zone: "europe-west1-d"
        machine_type: "n1-standard-4"        
        preemptible: "{{ false if item.num == '0' else true }}"        
        disk_auto_delete: true
        disks:
          - name: "{{ item.node }}-disk"
            mode: READ_WRITE
        state: present
        service_account_email: "{{ service_account_email }}"
        service_account_permissions: "compute-rw"
        credentials_file: "{{ credentials_file }}"
        project_id: "{{ project_id }}"
        tags: "elasticsearch"        
      register: gce_raw_results
      with_items: "{{nodes}}"
      async: 3600
      poll: 2
更新1:

  • 服务帐户是整个项目的编辑。所以正确的问题似乎不太可能
  • 这件事从2018年3月24日开始。从那时起每晚都会发生。所以,如果这是一件“缺货”的事情,那将是非常巧合的,对吗? 此外,到目前为止,我已经运行了一整天这个脚本,大部分时间它都失败了(请参见下面的成功部分)
  • 我已经测试了几次,它可能与实例上的'preemptible'标志有关。(我启动了3个节点,但至少第一个节点必须保持工作状态)=>
    preemptible:{{false if item.num='0'else true}}
    如果我关闭preemptible(false),那么它将顺利运行。 “解决方法”似乎只是不使用可抢占实例,但这一方法过去可以工作一年,一次也不失败。有什么变化吗? GCP的API有变化吗?ansible gce没有实施这些变化吗

完全错误是:

任务[收集事实] ******************************************************************************************************************************************************************************************************************************************************************************************************确定:[本地主机]

任务[创建启动磁盘] ****************************************************************************************************************************************************************************************************************************************************************************************************已更改:[localhost]=>(项目={u'node':u'elasticsearch-link-0', u'ip_字段:u'private_ip',u'zone':u'europe-west1-d', u'cluster\u name':u'elasticsearch-link',u'num':u'0',u'machine\u type': u'n1-standard-4',u'project_id':u'[projectid]})已更改:[localhost] =>(项目={u'节点:u'elasticsearch-link-1',u'ip_字段:u'private_-ip',u'zone':u'european-west1-d',u'cluster_name': u'elasticsearch-link',u'num':u'1',u'machine\u type': u'n1-standard-4',u'project_id':u'[projectid]})确定:[localhost]=> (项={u'node':u'elasticsearch-link-2',u'ip_字段:u'private_ip', u'zone':u'europe-west1-d',u'cluster_name':u'elasticsearch-link', u'num':u'2',u'machine\u type':u'n1-standard-4',u'project\u id': u'[projectid]'})

任务[创建实例] *****************************************************************************************************************************************************************************************************************************************************************************************************已更改:[localhost]=>(项目={u'node':u'elasticsearch-link-0', u'ip_字段:u'private_ip',u'zone':u'europe-west1-d', u'cluster\u name':u'elasticsearch-link',u'num':u'0',u'machine\u type': u'n1-standard-4',u'project_id':u'[projectid]})已更改:[localhost] =>(项目={u'节点:u'elasticsearch-link-1',u'ip_字段:u'private_-ip',u'zone':u'european-west1-d',u'cluster_name': u'elasticsearch-link',u'num':u'1',u'machine\u type': u'n1-standard-4',u'project_id':u'[projectid]})失败:[localhost] (项={u'node':u'elasticsearch-link-2',u'ip_字段:u'private_ip', u'zone':u'europe-west1-d',u'cluster_name':u'elasticsearch-link', u'num':u'2',u'machine\u type':u'n1-standard-4',u'project\u id': u'[projectid]'})=>{“ansible_job_id”:“371957735383.2688”, “更改”:false,“cmd”: “/tmp/.ansible气流/ansible-tmp-1522742180.0-71790706749341/gce.py”, “数据”:“”“失败”:1,“完成”:1,“项”:{“群集名称”: “elasticsearch链接”、“ip\u字段”:“专用ip”、“机器类型”: “n1-标准-4”,“节点”:“elasticsearch-link-2”,“数值”:“2”, “项目id”:“[projectid]”,“zone”:“europe-west1-d”},“msg”: “回溯(最近一次调用):\n文件” \“/tmp/.ansible气流/ansible-tmp-1522742180.0-71790706749341/async_wrapper.py\”, 第158行,输入运行模块(过滤输出数据、json警告)= _过滤非json行(输出数据)\n文件\“/tmp/.ansible气流/ansible-tmp-1522742180.0-71790706749341/async_wrapper.py\”, 第99行,在_filter_non_json_行中\n raise ValueError('No start of of 找到json char')\n值错误:找不到json char的开头\n“, “stderr”:“回溯(最近一次调用):\n文件” \“/tmp/ansible\u OnIK1e/ansible\u module\u gce.py\”,第750行,in\n main()\n文件\“/tmp/ansible\u OnIK1e/ansible\u module\u gce.py\”,第行 712,在主模块\n、gce、inames、编号\n文件中 \“/tmp/ansible_OnIK1e/ansible_module_gce.py\”,第524行,在 创建\u实例\n实例,lc\u机器类型,lc\u映像(), **gce_args\n文件\“/usr/local/lib/python2.7/dist packages/libcloud/compute/drivers/gce.py\”, 第3874行,在create\u node\n self.connection.async\u请求(请求, 方法='POST',数据=节点\u数据\n文件 \“/usr/local/lib/python2.7/dist-packages/libcloud/common/base.py\”, 第784行,在异步\u请求\n响应=请求(**kwargs)\n文件中 \“/usr/local/lib/python2.7/dist packages/libcloud/compute/drivers/gce.py\”, 第121行,在请求\n响应中=超级(GCEConnection, self).请求(*args,**kwargs)\n文件 \“/usr/local/lib/python2.7/dist packages/libcloud/common/google.py\”, 第806行,请求中