[〜#〜] awx [〜#〜] はCentOSマシンにインストールされます。別のマシン(gitlab.techraf
)は、プライベートCAによって署名された証明書をHTTPS経由でGitLabのウェブインターフェースに提供します。
ストーリー:
「新しい」システムでは、次のコマンドを発行します。
/usr/bin/git clone --Origin origin https://gitlab.techraf/techraf/project.git /tmp/project
そして、(期待される):
致命的:「
https://gitlab.techraf/techraf/project.git/
」にアクセスできません:ピアの証明書の発行者が認識されません。
ルートCA証明書を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
上記のgit clone
を再試行します。今回は正しい応答が得られます。
「/ tmp/project」に複製しています...
リモート:オブジェクトのカウント:3、完了。
リモート:合計3(デルタ0)、再利用0(デルタ0)
オブジェクトの解凍:100%(3/3)、完了。
健全性チェックとして、別のユーザーアカウントを使用してgit clone
を実行しました-ポイント2でのルートCA証明書のインストール後は問題ありません-ルートCAはシステムごとにインストールされているようです。 curl
は、gitlab.techraf
の証明書も受け入れます。
(問題)AWXインターフェースでプロジェクトを定義し、GitLabから同期しようとしていますが、次のようになります。
TASK [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:ca n't access to 'https://gitlab.techraf/techraf/project.git/
':Peer's Certificate issuer is not認識されました。 "、" rc ":128、" stderr ":"致命的: 'https://gitlab.techraf/techraf/project.git/
'にアクセスできません:ピアの証明書発行者が認識されません。\ n "、" stderr_lines ":["致命的:アクセスできません'https://gitlab.techraf/techraf/project.git/
':ピアの証明書発行者が認識されません。 "]、" stdout ":" '/var/lib/awx/projects/_6__project'...\n "、" stdout_lines ":[" '/ 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セッションが同じように機能することを確認しました。どちらの場合でも、証明書は受け入れられました。
インストールされているtechrafCA.pem
証明書を使用しないgit
(AWX/Ansibleによって呼び出される)の原因は何ですか?
問題をトラブルシューティングするために実行できる次のステップは何ですか?
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
次の2つのファイルが必要です。
[http]
sslCAInfo = /etc/pki/ca-trust/source/anchors/yourca.pem
タスクのdocker-compose.ymlに追加:
- "./gitconfig:/etc/gitconfig"
- "./yourca.pem:/etc/pki/ca-trust/source/anchors/yourca.pem"
タスクコンテナを再作成するdocker-compose up -d