我想創建一個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