我正在使用 Ansible 2.5。我需要将代码从本地(控制器)git 存储库部署到远程服务器。
我正在尝试使用带有 git 模块的 Ansible-playbook,它只能将代码从本地存储库部署到另一个本地路径或将远程存储库部署到另一个远程路径。它基于主机配置。
- git:
repo: /home/pi/Desktop/kk/Vue-Example/
dest: /home/pi/Desktop/bb
Run Code Online (Sandbox Code Playgroud)
这里repo
将是本地(控制器-机器)git 存储库路径,dest
并将是远程机器位置。
这也正是我想要的工作流程 - 从我知道我可以依赖的本地 git 存储库中提取文件。就我而言,我使用特定的提交 ID(经过充分测试的版本)而不是分支名称。如果你想要这个,只需用提交 ID 替换下面的“master”。
- tasks:
- name: Make temp directory
tempfile:
state: directory
register: temp_git_archive
delegate_to: localhost
become: no
changed_when: False
- name: Extract latest git commit on branch master
shell: git archive master |tar --extract --directory={{ temp_git_archive.path }}
args:
chdir: /home/pi/Desktop/kk/Vue-Example/ # YOUR LOCAL GIT REPO
delegate_to: localhost
become: no
changed_when: False
- name: Copy to remote
copy:
src: "{{ temp_git_archive.path }}"
dest: /home/pi/Desktop/bb # YOUR DESTINATION DIRECTORY
- name: Delete temp directory
file:
path: "{{ temp_git_archive.path }}"
state: absent
when: temp_git_archive.path is defined
delegate_to: localhost
become: no
changed_when: False
Run Code Online (Sandbox Code Playgroud)
可以使用 Ansible 'git' 和 'unarchive' 模块代替上面的 'shell' 模块,但我更喜欢一步完成。
归档时间: |
|
查看次数: |
2592 次 |
最近记录: |