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

Amr*_*tha 2 ansible ansible-2.x

我是 ansible 和 ansistrano 的新手。

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

default_branch: "master"
ansistrano_git_branch: "{{default_branch}}"
Run Code Online (Sandbox Code Playgroud)

还在额外变量中提供分支名称。

ansistrano_git_branch: {{branch}}
ansible-playbook playbook-deploy.yml -i testing --extra-vars "branch=develop"
Run Code Online (Sandbox Code Playgroud)

但是如果分支不通过额外变量传递,如何提供默认值?

Amr*_*tha 5

您可以使用以下方法将它们融合在一起

default_branch: "master"
ansistrano_git_branch: "{{ branch | default(default_branch) }}"
Run Code Online (Sandbox Code Playgroud)

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

ansistrano_git_branch: "{{ branch | default('master') }}"
Run Code Online (Sandbox Code Playgroud)

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

ansible-playbook playbook-deploy.yml -i testing --extra-vars "branch=develop"
Run Code Online (Sandbox Code Playgroud)

ansible-playbook playbook-deploy.yml -i testing
Run Code Online (Sandbox Code Playgroud)

您可以提示输入值:

 vars_prompt:
    - name: branch
      prompt: 'Enter a branch to deploy'
      default: develop
      private: no
Run Code Online (Sandbox Code Playgroud)

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