如何使用ansible git模块获取签出代码的SHA?

时间:2016-03-16 09:42:49

标签: git ansible ansible-playbook

我想将当前检出的提交SHA-1哈希存储为Ansible的代码版本。

我想将此版本set_fact用于其他角色。

1 个答案:

答案 0 :(得分:13)

Ansible中的git模块会为您返回此信息,您只需要在变量中注册(在下面的示例中变量为gitresult)。

- hosts: web
  tasks:
    - name: Checkout repo
      git:
        repo=https://github.com/michalgasek/www-discogs.git
        dest=/vagrant/checkout
        update=yes
        accept_hostkey=yes
      register: gitresult

    - debug: msg="SHA-1 before git update is {{ gitresult.before }}"
    - debug: msg="SHA-1 after git update is {{ gitresult.after }}"

跑步:

PLAY ***************************************************************************

TASK [setup] *******************************************************************
ok: [192.168.2.201]

TASK [Checkout repo] ***********************************************************
ok: [192.168.2.201]

TASK [debug] *******************************************************************
ok: [192.168.2.201] => {
    "msg": "SHA-1 before git update is 87544e2ea1c8dec30e5fc68302caa262b10affda"
}

TASK [debug] *******************************************************************
ok: [192.168.2.201] => {
    "msg": "SHA-1 after git update is 87544e2ea1c8dec30e5fc68302caa262b10affda"
}

我希望它能解决你的问题。