検索

17.4. プロジェクトの署名

download PDF

プロジェクトの署名には、Ansible プロジェクトディレクトリーが関係します。プロジェクトのディレクトリー構造の詳細は、Ansible ドキュメントの Sample Ansible setup を参照してください。

次のサンプルプロジェクトは、Playbook ディレクトリーの下にインベントリーファイルと、小規模な playbook が 2 つ含まれる非常に単純な構造となっています。

$ cd sample-project/
$ tree -a .
.
├── inventory
└── playbooks
    └── get_uptime.yml
    └── hello.yml

    1 directory, 3 files
注記

使用されるコマンドは、作業ディレクトリーがプロジェクトのルートであることを前提としています。ansible-sign project コマンドは、プロジェクトのルートディレクトリーを最後の引数として受け取ります。

. を使用して現在の作業ディレクトリーを示します。

ansible-sign は、プロジェクトに含まれるセキュリティーで保護された全ファイルのチェックサム (SHA256) を取得して、チェックサムマニフェストファイルにコンパイルし、そのマニフェストファイルに署名することでコンテンツを改ざんから保護します。

コンテンツに署名するには、保護するファイルを ansible-sign に指示する MANIFEST.in ファイルをプロジェクトのルートディレクトリーに作成します。

内部的には、ansible-sign は、Python の distlib ライブラリーの distlib.manifest モジュールを使用するため、MANIFEST.in はこのライブラリーが指定する構文に従う必要があります。'MANIFEST.in` ファイルディレクティブの説明は、Python Packaging User Guide を参照してください。

サンプルプロジェクトには 2 つのディレクティブが含まれており、最終的に次の MANIFEST.in ファイルになります。

include inventory
recursive-include playbooks *.yml

このファイルを配置したら、チェックサムマニフェストファイルを生成し、署名します。これらの手順は両方とも、ansible-sign コマンドで 1 つで実行できます。

$ ansible-sign project gpg-sign .

実行が成功すると、次のような出力が表示されます。

[OK   ] GPG signing successful!
[NOTE ] Checksum manifest: ./.ansible-sign/sha256sum.txt
[NOTE ] GPG summary: signature created

これでプロジェクトは署名されました。

gpg-sign サブコマンドは project サブコマンドの下にあることに注意してください。

プロジェクトのコンテンツに署名する場合、すべてのコマンドは ansible-sign project で始まります。

すべての ansible-sign project コマンドは、プロジェクトのルートディレクトリー . を最後の引数として受け取ります。

ansible-sign は、デフォルトのキーリングを使用し、最初に検出された利用可能な秘密鍵を探して、プロジェクトに署名します。--fingerprint オプションを使用して特定の秘密鍵を指定したり、--gnupg-home オプションを使用して完全に独立した GPG ホームディレクトリーを指定したりすることもできます。

注記

デスクトップ環境を使用している場合、GnuPG は秘密鍵のパスフレーズの入力を自動的に要求します。

この機能が動作しない場合、またはデスクトップ環境なしで作業している場合 (SSH など)、gpg-sign の後に -p --prompt-passphrase フラグを使用できます。これにより、代わりに ansible-sign がパスワードの入力を求めるようになります。

.ansible-sign ディレクトリーがプロジェクトディレクトリーに作成されたことに注意してください。このディレクトリーには、チェックサムマニフェストとそのマニフェストの分離された GPG 署名が含まれています。

$ tree -a .
.
├── .ansible-sign
│   ├── sha256sum.txt
│   └── sha256sum.txt.sig
├── inventory
├── MANIFEST.in
└── playbooks
    ├── get_uptime.yml
    └── hello.yml
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.