You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在NodeJS项目的Bitbucket Pipeline中调用Ansible项目实现自动部署?

跨仓库调用Ansible项目完成Bitbucket Pipeline部署

这个需求完全可以实现,核心思路是在NodeJS项目的Pipeline构建环境中,主动拉取Ansible项目仓库,再执行对应的playbook。具体实现步骤如下:

1. 配置仓库访问权限

要让NodeJS项目的Pipeline能克隆Ansible仓库,需要配置访问凭证:

  • SSH密钥方式:生成一对SSH密钥,将公钥添加到Ansible项目仓库的「Access keys」设置中(仓库Settings > Repository settings > Access keys);将私钥作为保密变量添加到NodeJS项目的Pipeline变量中(项目Settings > Pipelines > Repository variables),命名为ANSIBLE_REPO_SSH_KEY。
  • App密码方式:在Bitbucket个人设置中生成App密码,赋予仓库读取权限;将用户名和App密码分别作为ANSIBLE_REPO_USERNAME、ANSIBLE_REPO_PASSWORD添加到NodeJS项目的Pipeline保密变量中。

2. 修改Pipeline脚本拉取Ansible仓库

更新你的Pipeline配置,先克隆Ansible仓库,再执行playbook:

pipelines:
  branches:
    develop:
      - step:
          name: Deploy using Ansible
          deployment: production
          script:
            # SSH密钥方式克隆Ansible仓库
            - echo "$ANSIBLE_REPO_SSH_KEY" > ~/.ssh/id_rsa
            - chmod 600 ~/.ssh/id_rsa
            - git clone git@bitbucket.org:your-team/ansible-project.git
            
            # 若用App密码方式,替换上方克隆命令为:
            # - git clone https://$ANSIBLE_REPO_USERNAME:$ANSIBLE_REPO_PASSWORD@bitbucket.org:your-team/ansible-project.git
            
            # 执行Ansible playbook
            - ansible-playbook -i ansible-project/inventory ansible-project/playbook.yml

3. (可选)指定Ansible仓库的分支/版本

如果需要拉取特定分支或标签的Ansible代码,在clone命令中添加对应参数:

# 拉取main分支
git clone -b main git@bitbucket.org:your-team/ansible-project.git

# 拉取指定标签版本
git clone --branch v1.0.0 git@bitbucket.org:your-team/ansible-project.git

4. 确保构建环境安装Ansible

Bitbucket默认的构建镜像可能没有预装Ansible,你可以选择:

  • 在步骤中手动安装:
    pipelines:
      branches:
        develop:
          - step:
              name: Deploy using Ansible
              deployment: production
              image: python:3.11
              script:
                - pip install ansible
                # 克隆仓库及执行playbook的命令...
    
  • 或者使用预先安装了Ansible的自定义Docker镜像。

内容的提问来源于stack exchange,提问作者user842225

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 04:37:26