イメージポリシーを実装するには、イメージのプロパティーを設定します。このセクションでは、イメージとパブリッシャーのプロパティーと、これらのプロパティーの設定方法について説明します。イメージプロパティーの説明については、pkg(1) のマニュアルページのイメージプロパティーに関するセクションも参照してください。
イメージは、IPS パッケージをインストールでき、その他の IPS 操作を実行できる場所です。ブート環境 (BE) は、イメージのブート可能なインスタンスです。システム上に複数の BE を維持することができ、各 BE にそれぞれ異なるソフトウェアバージョンをインストールすることもできます。システムをブートするとき、システム上の任意の BE にブートすることを選択できます。
パッケージ操作の結果として、新しい BE が自動的に作成されることがあります。明示的に新しい BE を作成することもできます。新しい BE が作成されるかどうかは、このセクションで説明するようにイメージポリシーに依存します。
デフォルトで、次のいずれかの操作を実行すると、新しい BE が自動的に作成されます。
一部のドライバやその他のカーネルコンポーネントなど、特定のキーシステムパッケージをインストールまたは更新する。重要なシステムコンポーネントは、バリアントやファセットを変更したり、パッケージをインストール、アンインストール、および更新するときに更新できます。
--be-name、--require-new-be、--backup-be-name、--require-backup-be のいずれかのオプションを指定する。
be-policy イメージポリシーを always-new に設定する。このポリシーでは、次のブート時にアクティブに設定されている新しい BE で、すべてのパッケージ操作が実行されます。
新しい BE が作成される場合、システムは次の処理を実行します。
現在の BE のクローンを作成します。
クローンの BE には、元の BE のメインのルートデータセットより下の階層にあるすべての要素が格納されます。共有ファイルシステムは、ルートデータセットの下にはなく、複製されません。代わりに、新しい BE は元の共有ファイルシステムにアクセスします。
クローン BE 内でパッケージを更新します。現在の BE 内でパッケージを更新しないでください。
現在の BE で非大域ゾーンが構成されている場合、これらの既存のゾーンが新しい BE で構成されます。
--no-be-activate が指定されていないかぎり、システムの次回ブート時に、新しい BE をデフォルトのブート選択肢に設定します。現在の BE は代替のブート選択肢として残ります。
バックアップ BE が作成される場合、システムは次の処理を実行します。
現在の BE のクローンを作成します。
現在の BE 内でパッケージを更新します。クローン BE 内でパッケージを更新しないでください。
新しい BE が必要でも、それを作成するための十分な空き領域がない場合、既存の不要な BE を削除できる場合があります。BE の詳細は、Creating and Administering Oracle Solaris 11.3 Boot Environmentsを参照してください。
次のイメージプロパティーの設定方法については、Setting Image Propertiesを参照してください。
パッケージ操作中にいつ BE が作成されるかを指定します。次の値が許可されます。
デフォルトの BE 作成ポリシー create-backup を適用します。
次のブート時にアクティブに設定されている新しい BE でパッケージ操作を実行するため、すべてのパッケージ操作に対してリブートを必要とします。明示的に要求されないかぎり、バックアップ BE は作成されません。
このポリシーはもっとも安全ですが、リブートしないとパッケージを追加できないため、ほとんどのサイトの要求よりも厳格です。
リブートを必要とするパッケージ操作の場合、このポリシーにより、次のブート時にアクティブに設定される新しい BE が作成されます。パッケージが変更されるか、カーネルに影響する可能性のあるコンテンツがインストールされて操作がライブ BE に影響する場合、バックアップ BE は作成されますがアクティブには設定されません。バックアップ BE を明示的に要求することもできます。
このポリシーは、新しくインストールされたソフトウェアによりシステムが不安定になっている場合にのみ潜在的に危険です。この可能性はありますが、比較的まれです。
リブートを必要とするパッケージ操作の場合、このポリシーにより、次のブート時にアクティブに設定される新しい BE が作成されます。明示的に要求されないかぎり、バックアップ BE は作成されません。
ライブ BE へのパッケージングの変更によって、それ以上の変更が不可能になる場合、最新の代替 BE が存在しない可能性があるため、このポリシーには最大のリスクがあります。
署名付きパッケージをインストールする場合は、このセクションで説明するイメージプロパティーとパブリッシャープロパティーを、パッケージの署名を検証するように設定します。
次のイメージプロパティーを、署名付きパッケージを使用するように構成します。
このプロパティーの値により、イメージ内のパッケージのインストール、更新、変更、または検証時に、マニフェストに実行されるチェックが決まります。パッケージに適用される最終的なポリシーは、イメージポリシーとパブリッシャーポリシーの組み合わせに依存します。この組み合わせの厳格さは、少なくとも、この 2 つのポリシーが個別に適用された場合の厳格な方と同じです。デフォルトでは、パッケージクライアントは証明書が失効済みかどうかをチェックしません。そのようなチェック (パッケージクライアントから外部 Web サイトへのアクセスが必要な場合がある) を有効にするには、check-certificate-revocation イメージプロパティーを true に設定します。次の値が許可されます。
すべてのマニフェストの署名を無視します。
署名が含まれているすべてのマニフェストが有効に署名されていることを確認しますが、インストール済みパッケージがすべて署名されている必要はありません。
これがデフォルト値です。
新しくインストールされたすべてのパッケージに、有効な署名が少なくとも 1 つ含まれている必要があります。インストール済みパッケージに有効な署名が含まれていない場合は、pkg fix および pkg verify コマンドでも警告が表示されます。
require-signatures と同じ要件に従いますが、signature-required-names イメージプロパティーで一覧表示される文字列が、署名の信頼のチェーンを検証するために使用される証明書の共通名としても表示される必要があります。
このプロパティーの値は、パッケージの署名の検証中に、証明書の共通名として表示される必要のある名前の一覧です。
次のパブリッシャープロパティーを、特定のパブリッシャーからの署名付きパッケージを使用するように構成します。
このプロパティーの機能は、このプロパティーが指定したパブリッシャーからのパッケージにのみ適用される点を除き、signature-policy イメージプロパティーの機能と同じです。
このプロパティーの機能は、このプロパティーが指定したパブリッシャーからのパッケージにのみ適用される点を除き、signature-required-names イメージプロパティーの機能と同じです。
パッケージの署名プロパティーを構成するには、set-property、add-property-value、remove-property-value、および unset-property サブコマンドを使用します。
特定のパブリッシャーの署名ポリシーと必要な名前を指定するには、set-publisher サブコマンドの --set-property、--add-property-value、--remove-property-value、および --unset-property オプションを使用します。
次の例は、このイメージで、すべてのパッケージが署名されることを必須にするように構成します。また、この例では、信頼のチェーン内のいずれかの証明書の共通名として文字列「oracle.com」が表示されることも必須にします。
$ pkg set-property signature-policy require-names oracle.com
次の例は、このイメージで、署名されたすべてのパッケージが検証されることを必須にするように構成します。
$ pkg set-property signature-policy verify
次の例は、このイメージで、パブリッシャー example.com からインストールされたすべてのパッケージが署名されることを必須にするように構成します。
$ pkg set-publisher --set-property signature-policy=require-signatures example.com
次の例は、必要な署名を追加します。この例では、有効と見なされるには、署名の信頼のチェーンに表示される必要のあるイメージの共通名の一覧に文字列 trustedname を追加します。
$ pkg add-property-value signature-required-names trustedname
次の例は、必要な署名を削除します。この例では、有効と見なされるには、署名の信頼のチェーンに表示される必要のあるイメージの共通名の一覧から文字列 trustedname を削除します。
$ pkg remove-property-value signature-required-names trustedname
次の例は、指定したパブリッシャーの必要な署名を追加します。この例では、有効と見なされるには、署名の信頼のチェーンに表示される必要のあるパブリッシャー example.com の共通名の一覧に文字列 trustedname を追加します。
$ pkg set-publisher --add-property-value \ signature-required-names=trustedname example.com
SSL 操作用の CA 証明書が格納されたディレクトリを指すパス名を指定します。このディレクトリの形式は、ベースとなる SSL 実装に固有です。信頼できる CA 証明書のために別の場所を使用するには、別のディレクトリを指すようにこの値を変更します。CA ディレクトリの要件については、SSL_CTX_load_verify_locations(3openssl) の CApath に関する項目を参照してください。
デフォルト値は /etc/openssl/certs です。
true に設定すると、パッケージクライアントは、署名検証のために使用される証明書の CRL 配布ポイントへのアクセスを試み、発行時よりもあとに証明書が失効していないかどうかを調べます。
デフォルト値は False です。
パッケージシステムがパッケージ操作中に編集不能なファイルを更新する時期を指定します。次の値が許可されます。
デフォルトのコンテンツ更新ポリシーを常に適用します。
変更された編集不能なファイルを常にダウンロードおよび更新します。
更新が必要だということがパッケージシステムで決定された場合に限り、変更された編集不能なファイルをダウンロードして更新します。
デフォルト値は always です。
これが true に設定されている場合、パッケージクライアントはイメージ変更操作が正常に完了したときに内容キャッシュ内のファイルを削除します。BE を作成する操作の場合は、ソースと出力先の両方の BE から内容が削除されます。
このプロパティーを使用して、ディスク容量の限られたシステムで内容キャッシュを小さく保つことができます。このプロパティーを使用すると、操作が完了するまでの時間が長くなる可能性があります。
デフォルト値は True です。
このプロパティーは、mDNS および DNS-SD を使用してリンクローカル内容ミラーを検出するようにパッケージクライアントに命令します。このプロパティーを true に設定すると、パッケージクライアントはミラーを動的に検出し、そのミラーからパッケージ内容のダウンロードを試みます。mDNS を介してその内容を通知するミラーを実行するには、pkg.depotd(1M) を参照してください。
デフォルト値は False です。
ネットワーク操作の実行時にこのイメージの汎用一意識別子 (UUID) を送信します。ユーザーはこのオプションを無効にできますが、一部のネットワークリポジトリは UUID を供給しないイメージとのやり取りを拒否する場合があります。
デフォルト値は True です。
このプロパティーの値は、イメージのトラストアンカーを含むディレクトリのパス名です。このパスはイメージのルートに相対的です。
デフォルト値は etc/certs/CA です。
このプロパティーではシステムリポジトリを、イメージおよびパブリッシャーの構成のソースとして、および提供されたパブリッシャーと通信するためのプロキシとしてイメージで使用するべきかどうかを指定します。システムリポジトリについては、pkg.sysrepo(1M)を参照してください。
デフォルト値は ignore です。
イメージプロパティー設定を表示するには pkg property コマンドを使用します。イメージプロパティーを構成するには、set-property、add-property-value、remove-property-value、および unset-property サブコマンドを使用します。
イメージのプロパティーを表示するには、pkg property コマンドを使用します。
$ pkg property PROPERTY VALUE be-policy default ca-path /etc/openssl/certs check-certificate-revocation False flush-content-cache-on-success False mirror-discovery False preferred-authority solaris publisher-search-order ['solaris', 'isvpub'] send-uuid True signature-policy verify signature-required-names [] trust-anchor-directory etc/certs/CA use-system-repo False
publisher-search-order プロパティーを設定するために、pkg set-publisher コマンドの検索順序オプションを使用する場合もあります。Setting Publisher Search Order and Stickinessを参照してください。
イメージプロパティーの値を設定したり、プロパティーを追加して設定したりするには、pkg set-property コマンドを使用します。
次の例では、mirror-discovery プロパティーの値を設定します。
$ pkg set-property mirror-discovery true $ pkg property -H mirror-discovery mirror-discovery True
指定したプロパティーの値をそのデフォルト値にリセットするには、pkg unset-property コマンドを使用します。
$ pkg unset-property mirror-discovery $ pkg property -H mirror-discovery mirror-discovery False