我想创建一个Ansible操作手册,它将从我们的开发团队计算机和CI/CD服务器运行。Ansible任务 - 无需SSH转发克隆私人git
剧本中的任务之一是从私人仓库获取我们项目的源代码。由于剧本必须从CI/CD服务器运行,因此我们无法使用SSH转发。
我想到的是将必要的SSH私钥复制到远程主机,然后使用密钥从私有git存储库克隆代码。
但是,尝试此操作时,克隆任务将挂起。当试图手动启动命令时,它会要求输入SSH私钥的密码。 SSH密钥不使用密码(空白)。
任何人都可以分享他们的解决方案(可能很常见)的问题?
如果有人需要,这是我目前的剧本:
- name: Create SSH directory
file: path=/root/.ssh state=directory
- name: Copy SHH key for Git access
copy:
content: "{{ git_ssh_key }}"
dest: /root/.ssh/id_rsa
owner: root
group: root
mode: 0600
# Also tried this, but it also hangs
#- name: Start SSH agent and add SSH key
# shell: eval `ssh-agent -s` && ssh-add
- name: Get new source from GIT
git:
key_file: /root/.ssh/id_rsa
repo: "[email protected]:user/repo.git"
dest: "{{ staging_dir }}"
depth: 1
accept_hostkey: yes
clone: yes
我使用ansible 2.3.1.0, python version = 2.7.12
“*当试图手动启动命令时,它会要求输入SSH私钥的密码*” - 这是一个编程问题? – techraf
我需要一种方法来编写一个任务来输入密码(编程问题)或一个不同的方法,我根本不需要输入它(操作问题)。 –
使用没有密码的密钥。 – techraf