AWX 呼叫的 Git 忽略手動安裝的根 CA
AWX安裝在 CentOS 機器上。一台單獨的機器 (
gitlab.techraf
) 通過 HTTPS 使用由私有 CA 簽名的證書為 GitLab 的 Web 界面提供服務。劇情:
- 在“新”系統上,我發出命令:
/usr/bin/git clone --origin origin https://gitlab.techraf/techraf/project.git /tmp/project
並獲得(預期):
致命:無法訪問“
https://gitlab.techraf/techraf/project.git/
”:無法辨識對等方的證書頒發者。
- 我在 AWX 機器上安裝了根 CA 證書:
update-ca-trust force-enable curl https://certificate.source/certificates/techrafCA.pem > /etc/pki/ca-trust/source/anchors/techrafCA.pem update-ca-trust extract
- 我重試上面的方法
git clone
,這次得到了正確的響應:複製到“/tmp/project”…
遠端:計數對象:3,完成。
遠端:總共 3 個(增量 0),重用 0 個(增量 0)
拆包對象:100% (3/3),完成。
作為健全性檢查,我
git clone
使用不同的使用者帳戶執行 - 在第 2 點安裝根 CA 證書後沒問題 - 根 CA 似乎是系統安裝的。curl
也接受gitlab.techraf
的證書。 4. **(問題)**我在 AWX 界面中定義了一個項目並嘗試從 GitLab 同步它,但是我得到:任務
$$ update project using git $$
致命:$$ localhost $$: 失敗的!=> {“changed”:false,“cmd”:“
/usr/bin/git clone --origin origin https://gitlab.techraf/techraf/project.git /var/lib/awx/projects/_6__project
”,“failed”:true,“msg”:“fatal:無法訪問’https://gitlab.techraf/techraf/project.git/
’:無法辨識對等的證書頒發者。”,“rc”:128, “stderr”: “fatal: 無法訪問 ’https://gitlab.techraf/techraf/project.git/
’: Peer 的證書頒發者無法辨識。\n”, “stderr_lines”: [“fatal: 無法訪問’https://gitlab.techraf/techraf/project.git/
’: Peer 的證書頒發者無法辨識。”], “stdout “: “複製到 ‘/var/lib/awx/projects/_6__project’…\n”, “stdout_lines”:$$ “Cloning into ‘/var/lib/awx/projects/_6__project’…” $$}作為一個健全的檢查,我嘗試了一個來自 GitHub 的項目,並且 AWX 正確地獲取了它。
作為另一個健全性檢查
ansible localhost -m command -a "/usr/bin/git clone --origin origin https://gitlab.techraf/techraf/project.git /tmp/project2
,我執行了另一台機器,以確保非互動式 shell 會話工作相同。在任何一種情況下,證書都被接受。
git
(由 AWX/Ansible 呼叫)不使用已安裝techrafCA.pem
證書的原因可能是什麼?下一步我可以採取什麼措施來解決問題?
如果您在 awx_task 容器中執行相同操作,那麼它可以工作!
通過我的 AWX 設置驗證。
update-ca-trust force-enable curl https://certificate.source/certificates/techrafCA.pem > /etc/pki/ca-trust/source/anchors/techrafCA.pem update-ca-trust extract
你需要兩個文件:
- gitconfig
[http] sslCAInfo = /etc/pki/ca-trust/source/anchors/yourca.pem
- 你的ca.pem
在任務中添加到 docker-compose.yml:
- "./gitconfig:/etc/gitconfig" - "./yourca.pem:/etc/pki/ca-trust/source/anchors/yourca.pem"
重新創建任務容器
docker-compose up -d