ansistrano(ansible)部署的默认分支名称

Default branch name for ansistrano (ansible) deployment

我是 ansible 和 ansistrano 的新手。

我已通过在 yml 文件中提供分支名称作为变量成功部署。

default_branch: "master"
ansistrano_git_branch: "{{default_branch}}"

还可以在 extra-vars 中提供分支名称。

ansistrano_git_branch: {{branch}}
ansible-playbook playbook-deploy.yml -i testing --extra-vars "branch=develop"

但是如果分支没有通过 extra-vars 传递,如何提供默认值?

您可以使用

将它们融合在一起
default_branch: "master"
ansistrano_git_branch: "{{ branch | default(default_branch) }}"

或者简单地省略 defaul_branch (额外变量)并写入

ansistrano_git_branch: "{{ branch | default('master') }}"

现在这两个命令都可以工作了:

ansible-playbook playbook-deploy.yml -i testing --extra-vars "branch=develop"

ansible-playbook playbook-deploy.yml -i testing

您可以提示输入值:

 vars_prompt:
    - name: branch
      prompt: 'Enter a branch to deploy'
      default: develop
      private: no

注意: 如果没有通过 extra-vars 提供值,ansible 只会提示分支。