如何使用 ansible 执行 git pull/push

如何使用 ansible 执行 git pull/push

我正在尝试使用 ansible 执行 git pull/push。我在一台服务器上运行 ansible,并希望在远程主机上自动化或协调 git pull/push。

现在,由于我没有在 ansible doc 网站上找到执行此操作的 mmodule,因此我决定使用脚本模块进行脚本路由

问题是,当运行脚本中调用的 git pull 时,ansible 会出现问题

有人知道如何使用 ansible 运行 git pull/push 吗?

谢谢

答案1

Ansible 的 Git 模块就“拉”而言,它会为您完成这一操作,只需确保运行该命令的用户具有基于密钥的 git repo 访问权限。

您可以通过在任务中添加“sudo_user”参数来指定以哪个用户身份运行命令:

- name: Get stuff from git
  git:
    repo: [email protected]:you/your-git-repo.git
    dest: /opt/git-stuff
  sudo_user: <your user that has the ssh key>

https://docs.ansible.com/playbooks_intro.html有关使用 sudo_user 的更多信息。

答案2

它应该是这样的:-

tasks: - name: pull from git git: repo: [email protected]:xyz.git dest: /root/Development/abc update: yes version: master

注意:此处远程用户是root

答案3

你可以尝试这个

- git:
    repo: 'https://foosball.example.org/path/to/repo.git'
    dest: /srv/checkout
    version: release-0.22

完整文件https://docs.ansible.com/ansible/latest/modules/git_module.html

答案4

你可以直接拉取 repo:

- name: GIT pull
  become: true
  tags:
    - git_pull
  git:
    repo: "https://{{ gituser | urlencode }}:{{ gitpassword | urlencode }}@git.example.ir/scm/devops/repo.git"
    dest: "{{ repo_path }}"
    update: yes
    clone: no
    version: master

注意clone: no以上内容!

相关内容