Azure Cloud Foundry部署时出现Bosh错误-“;无法获取部署锁,可能正在进行部署。请稍后再试。”;

Azure Cloud Foundry部署时出现Bosh错误-“;无法获取部署锁,可能正在进行部署。请稍后再试。”;,azure,cloud-foundry,locks,cf-bosh,Azure,Cloud Foundry,Locks,Cf Bosh,我使用bosh在azure机器上部署了cloud foundry。 为了向集群添加另一个节点,我在cloud foundry部署清单文件中进行了更改,并使用bosh deploy重新部署了cloud foundry 其间部署失败,但bosh部署锁未释放。当我执行bosh locks时,我看到锁是通过部署获得的,过期时间比当前时间稍长,并且不断增加 bosh locks Acting as user 'admin' on 'bosh' +------------+----------------

我使用bosh在azure机器上部署了cloud foundry。 为了向集群添加另一个节点,我在cloud foundry部署清单文件中进行了更改,并使用
bosh deploy
重新部署了cloud foundry

其间部署失败,但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 cancel task#任务编号)。部署任务的状态更改为取消,但未取消

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
)失败,它是否会无限保留bosh锁?有没有办法优雅地处理任务失败? 3.如何在部署清单文件中更改
bosh部署
,以避免陷入无限部署锁定的情况?
提前感谢

我们可以ssh到BOSH director VM并手动删除锁

我们部署BOSH连接到BOSH控制器所需的密钥作为“BOSH”存储在主目录中

或者“ssh_tunnel”部分下的bosh.yml文件中存在相同的信息。在我的例子中,它看起来是这样的:

ssh_tunnel:
    host: 10.0.0.4
    port: 22
    user: vcap
    private_key: ~/bosh
连接的步骤:

  • ssh-i~/boshvcap@10.0.0.4
  • cd/var/vcap/packages/postgres/bin
  • /psql-U博士后-p 5524波什
  • 从“锁”表中删除锁项

  • 您有一个正在运行的任务,因此它正在维护锁。不幸的是,取消任务似乎不起作用。如果您运行
    bosh task 38
    查看任务输出,您会得到什么?@DanielMikusa当我们取消任务时,它会试图找到一个安全点。在我的情况下,我认为它没有找到任何安全点,因此要花很长时间才能取消。但是我登录到bosh director并删除了任务获取的锁。这解决了部署锁定问题。这可能不安全,我不知道这将如何解决您的任务卡住的问题。你能完成任务吗?最安全的做法是找出任务被卡住的原因,并采取措施解除它。另一种选择是重新启动控制器,但如果您不知道任务在哪里被卡住,您就不知道系统的状态,这也可能是不安全的。顺便说一句,您应该使用BOSH cli v2。可能此问题已在新CLI中修复。