使用Bosh错误进行Cloud Foundry部署 - “无法获得部署锁定,可能正在进行部署。稍后再试。”

时间:2017-05-23 16:55:22

标签: azure cloudfoundry pivotal-cloud-foundry locks cf-bosh

我在使用波什的天蓝色机器上部署了云代工厂。 为了向群集添加另一个节点,我在云代工厂部署清单文件中进行了更改,并使用bosh deploy重新部署了云代工厂。

部署失败,但是bosh部署锁没有被释放。当我bosh locks时,我看到锁是通过部署获得的,到期时间略大于当前时间,并且它会不断增加。

bosh locks
Acting as user 'admin' on 'bosh'

+------------+-----------------------+-------------------------+
| Type       | Resource              | Expires at              |
+------------+-----------------------+-------------------------+
| deployment | single-vm-cf-on-azure | 2017-05-23 10:27:59 UTC |
+------------+-----------------------+-------------------------+

我尝试取消部署任务(bosh取消任务#task-number)。部署任务的状态已更改为cancelling,但未被取消。

bosh tasks
Acting as user 'admin' on 'bosh'

+----+------------+-------------------------+-------+-------------------+--------+
| #  | State      | Timestamp               | User  | Description       | Result |
+----+------------+-------------------------+-------+-------------------+--------+
| 38 | cancelling | 2017-05-23 08:40:12 UTC | admin | create deployment |        |
+----+------------+-------------------------+-------+-------------------+--------+

我面临的问题是bosh已获得部署锁定,每当我尝试再次开始部署或尝试删除部署时,我都会收到错误消息:

Error 100: Unable to get deployment lock, maybe a deployment is in progress. Try again later.

1。我可以删除获取的部署锁定信息以释放锁定吗?如果是,存储的信息在哪里以及如何删除它?

2。如果一个任务(例如,bosh deploy)失败了,它会对波什锁保持无限的控制吗?有没有一种方法可以优雅地处理任务失败?

3。如何使用部署清单文件中的更改来bosh deploy以避免进入无限部署锁获取状态?

提前致谢

1 个答案:

答案 0 :(得分:0)

我们可以ssh到BOSH导演VM并手动删除锁。

我们部署BOSH连接到BOSH导演所需的密钥存储在主目录中作为' bosh'。

或者在' ssh_tunnel'下的bosh.yml文件中显示的相同信息部分。就我而言,它看起来像这样:

ssh_tunnel:
    host: 10.0.0.4
    port: 22
    user: vcap
    private_key: ~/bosh

连接步骤:

  1. ssh -i~ / bosh vcap@10.0.0.4
  2. cd / var / vcap / packages / postgres / bin
  3. ./ psql -U postgres -p 5524 bosh
  4. 从'锁定'删除锁定条目表