web-dev-qa-db-ja.com

AWXによって呼び出されたGitは手動でインストールされたルートCAを無視します

[〜#〜] awx [〜#〜] はCentOSマシンにインストールされます。別のマシン(gitlab.techraf)は、プライベートCAによって署名された証明書をHTTPS経由でGitLabのウェブインターフェースに提供します。

ストーリー:

  1. 「新しい」システムでは、次のコマンドを発行します。

    /usr/bin/git clone --Origin origin https://gitlab.techraf/techraf/project.git /tmp/project
    

    そして、(期待される):

    致命的:「https://gitlab.techraf/techraf/project.git/」にアクセスできません:ピアの証明書の発行者が認識されません。

  2. ルート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
    
  3. 上記のgit cloneを再試行します。今回は正しい応答が得られます。

    「/ tmp/project」に複製しています...
    リモート:オブジェクトのカウント:3、完了。
    リモート:合計3(デルタ0)、再利用0(デルタ0)
    オブジェクトの解凍:100%(3/3)、完了。

    健全性チェックとして、別のユーザーアカウントを使用してgit cloneを実行しました-ポイント2でのルートCA証明書のインストール後は問題ありません-ルートCAはシステムごとにインストールされているようです。 curlは、gitlab.techrafの証明書も受け入れます。

  4. (問題)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によって呼び出される)の原因は何ですか?

問題をトラブルシューティングするために実行できる次のステップは何ですか?

3
techraf

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
3

次の2つのファイルが必要です。

  1. gitconfig
    [http]
        sslCAInfo = /etc/pki/ca-trust/source/anchors/yourca.pem
  1. yourca.pem

タスクのdocker-compose.ymlに追加:

  - "./gitconfig:/etc/gitconfig"
  - "./yourca.pem:/etc/pki/ca-trust/source/anchors/yourca.pem"

タスクコンテナを再作成するdocker-compose up -d

1
VEs