在ansible中部署时如何拉动

Aje*_*han 10 git github ansible ansible-playbook

我正在使用Ansible进行配置管理,并使用以下任务来克隆Git 仓库:

# Example git checkout from Ansible Playbooks
- git: repo=git://foosball.example.org/path/to/repo.git
       dest=/srv/checkout
       version=release-0.22
Run Code Online (Sandbox Code Playgroud)

这将使用特定版本克隆repo.

git pull如果回购已经存在,它会在再次运行时执行吗?或者它只是一直克隆回购?git pull如果repo已经存在,如何在Ansible中执行a ,如果repo存在,我们如何运行特定命令,如果第一次克隆repo,我们如何运行?

yda*_*coR 13

Ansible是一个声明性工具,您可以在其中描述您希望服务器/环境的外观以及Ansible尝试实现这一目标.它也被设计为幂等的,这意味着重新运行你的游戏应该每次重现相同的最终结果,只要下面没有任何变化.

git的模块也归咎于此,只是试图确保远程主机上有和你可选择要求的版本(或分支/标签)的回购协议.

因此,当您在新环境中运行问题中的git任务时,它会将repo克隆到目标文件夹.在未来的运行中,回购已经存在,所以它只是做一个git pull.

如果你为该update属性指定了一个标记/分支/提交引用,那么它只会检查该版本并将其拉出来.

  • `git revert`是一个影响你的回购的正向变化,而不是你通常想要使用Ansible的东西(或者除了可能的构建工具之外的任何自动化工具).使用Ansible来说明您希望在主机上使用的代码版本(即分支/标记/提交引用),并将其保留在该主机上. (2认同)