Mercurial > repos > other > Puppet
comparison modules/apt/readmes/README_ja_JP.md @ 386:3fce34f642f1
Add a PHP module to handle platform differences
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Mon, 03 Jan 2022 17:09:39 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
385:d9009f54eb23 | 386:3fce34f642f1 |
---|---|
1 # apt | |
2 | |
3 #### 目次 | |
4 | |
5 1. [説明 - モジュールの機能とその有益性](#module-description) | |
6 1. [セットアップ - apt導入の基本](#setup) | |
7 * [aptが影響を与えるもの](#what-apt-affects) | |
8 * [aptの使用を開始する](#beginning-with-apt) | |
9 1. [使用 - 設定オプションと追加機能](#usage) | |
10 * [GPGキーの追加](#add-gpg-keys) | |
11 * [バックポートの優先度を上げる](#prioritize-backports) | |
12 * [パッケージリストの更新](#update-the-list-of-packages) | |
13 * [特定のリリースのピン止め](#pin-a-specific-release) | |
14 * [PPA (Personal Package Archive)レポジトリの追加](#add-a-personal-package-archive-repository) | |
15 * [HieraからのAptの構成](#configure-apt-from-hiera) | |
16 * [デフォルトのsources.listファイルの置き換え](#replace-the-default-sourceslist-file) | |
17 1. [参考 - モジュールの機能と動作について](#reference) | |
18 1. [制約 - OS互換性など](#limitations) | |
19 1. [開発 - モジュール貢献についてのガイド](#development) | |
20 | |
21 ## モジュールの概要 | |
22 | |
23 aptモジュールを導入すると、Puppetを使用してAPT (Advanced Package Tool)のソース、キー、その他の構成オプションを管理できます。 | |
24 | |
25 APTとは、Debian、Ubuntu、およびその他いくつかのオペレーティングシステムで利用可能なパッケージマネージャです。aptモジュールは、APTのパッケージ管理を自動化するのに役立つ一連のクラス、定義型、およびfactsを提供します。 | |
26 | |
27 **注**:Puppet 7 より前は、このモジュールがどのバージョンのを正しく自動検出するか | |
28 実行している Debian / Ubuntu(または派生物)、 `lsb-release`パッケージが | |
29 インストールされています。 Puppet 7 では、 `lsb-release`パッケージは必要ありません。 | |
30 | |
31 ## セットアップ | |
32 | |
33 ### aptが影響を与えるもの | |
34 | |
35 * システムの`preferences`ファイルと`preferences.d`ディレクトリ | |
36 * システムの `sources.list`ファイルと`sources.list.d`ディレクトリ | |
37 * システムレポジトリ | |
38 * 認証キー | |
39 | |
40 **注意:** このモジュールには`purge`パラメータがあります。このパラメータを`true`に設定すると、 ノードの `sources.list(.d)`および`preferences(.d)`の構成のうち、Puppetを通して宣言されていないものがすべて**破棄**されます。このパラメータのデフォルトは`false`です。 | |
41 | |
42 ### aptの使用を開始する | |
43 | |
44 デフォルトのパラメータでaptモジュールを使用するには、`apt`クラスを宣言します。 | |
45 | |
46 ```puppet | |
47 include apt | |
48 ``` | |
49 | |
50 **注意:** メインの`apt`クラスは、このモジュールに含まれるその他すべてのクラス、型、定義型によって要求されます。このモジュールを使用する際は、このクラスを必ず宣言する必要があります。 | |
51 | |
52 ## 使用 | |
53 | |
54 ### GPGキーの追加 | |
55 | |
56 **警告:** 短いキーIDを使用すると、衝突攻撃が有効になる可能性があり、セキュリティに深刻な問題が生じます。常に、完全なフィンガープリントを使用してGPGキーを識別することを推奨します。このモジュールでは短いキーの使用が許可されていますが、それを使用した場合、セキュリティ警告が発行されます。 | |
57 | |
58 `apt::key`の定義型を宣言するには、次のように記述します。 | |
59 | |
60 ```puppet | |
61 apt::key { 'puppetlabs': | |
62 id => '6F6B15509CF8E59E6E469F327F438280EF8D349F', | |
63 server => 'pgp.mit.edu', | |
64 options => 'http-proxy="http://proxyuser:proxypass@example.org:3128"', | |
65 } | |
66 ``` | |
67 | |
68 ### バックポートの優先度を上げる | |
69 | |
70 ```puppet | |
71 class { 'apt::backports': | |
72 pin => 500, | |
73 } | |
74 ``` | |
75 | |
76 デフォルトでは、`apt::backports`クラスはバックポート用のピンファイルをドロップし、優先度200にピン止めします。これは、通常のデフォルト値である500よりも低いため、`ensure => latest`に設定されているパッケージは、明示的な許可がない限り、バックポートからアップグレードされることはありません。 | |
77 | |
78 `pin`パラメータを使用して優先度を500に上げると、通常のポリシーが有効になり、Aptは最新のバージョンをインストールするか、最新のバージョンにアップグレードします。これはつまり、`package`リソースの`ensure`属性を明示的に`installed`/`present`もしくは特定のバージョンに設定していない限り、あるパッケージがバックポートから利用できる場合は、そのパッケージと依存関係がバックポートから取得されるということです。 | |
79 | |
80 ### パッケージリストの更新 | |
81 | |
82 デフォルトでは、`apt`クラスをインクルードした後の最初のPuppet実行時と、`notify => Exec['apt_update']`が発生するたびに(別の言い方をすれば、構成ファイルが更新されるか、関連するその他の変更が行われるたびに)、Puppetは`apt-get update`を実行します。`update['frequency']`を'always'に設定すると、Puppet実行時に毎回更新が行われます。`update['frequency']`は'daily'や'weekly'に設定することも可能です。 | |
83 | |
84 ```puppet | |
85 class { 'apt': | |
86 update => { | |
87 frequency => 'daily', | |
88 }, | |
89 } | |
90 ``` | |
91 `Exec['apt_update']`がトリガされると、`Notice`メッセージが生成されます。デフォルトの[agentロギングレベル](https://docs.puppet.com/puppet/latest/configuration.html#loglevel)は`notice`であるため、このレポジトリの更新は、ログおよびagentレポートに記録されます。[Foreman](https://www.theforeman.org)など、一部のツールでは、このような更新通知が重要な変更としてレポートされます。これらの更新がレポートに記録されないようにするには、`Exec['apt_update']`の[loglevel](https://docs.puppet.com/puppet/latest/metaparameter.html#loglevel)メタパラメータをagentロギングレベルよりも高い値に設定します。 | |
92 | |
93 ```puppet | |
94 class { 'apt': | |
95 update => { | |
96 frequency => 'daily', | |
97 loglevel => 'debug', | |
98 }, | |
99 } | |
100 ``` | |
101 | |
102 ### 特定のリリースのピン止め | |
103 | |
104 ```puppet | |
105 apt::pin { 'karmic': priority => 700 } | |
106 apt::pin { 'karmic-updates': priority => 700 } | |
107 apt::pin { 'karmic-security': priority => 700 } | |
108 ``` | |
109 | |
110 ディストリビューションのプロパティを使用して、より複雑なピンを指定することもできます。 | |
111 | |
112 ```puppet | |
113 apt::pin { 'stable': | |
114 priority => -10, | |
115 originator => 'Debian', | |
116 release_version => '3.0', | |
117 component => 'main', | |
118 label => 'Debian' | |
119 } | |
120 ``` | |
121 | |
122 複数のパッケージをピン止めするには、配列またはスペース区切りの文字列としてその情報を`packages`パラメータに渡します。 | |
123 | |
124 ### PPA (Personal Package Archive)レポジトリの追加 | |
125 | |
126 ```puppet | |
127 apt::ppa { 'ppa:drizzle-developers/ppa': } | |
128 ``` | |
129 | |
130 ### `/etc/apt/sources.list.d/`へのAptソースの追加 | |
131 | |
132 ```puppet | |
133 apt::source { 'debian_unstable': | |
134 comment => 'This is the iWeb Debian unstable mirror', | |
135 location => 'http://debian.mirror.iweb.ca/debian/', | |
136 release => 'unstable', | |
137 repos => 'main contrib non-free', | |
138 pin => '-10', | |
139 key => { | |
140 'id' => 'A1BD8E9D78F7FE5C3E65D8AF8B48AD6246925553', | |
141 'server' => 'subkeys.pgp.net', | |
142 }, | |
143 include => { | |
144 'src' => true, | |
145 'deb' => true, | |
146 }, | |
147 } | |
148 ``` | |
149 | |
150 Puppet Aptレポジトリをソースとして使用するには、次のように記述します。 | |
151 | |
152 ```puppet | |
153 apt::source { 'puppetlabs': | |
154 location => 'http://apt.puppetlabs.com', | |
155 repos => 'main', | |
156 key => { | |
157 'id' => '6F6B15509CF8E59E6E469F327F438280EF8D349F', | |
158 'server' => 'pgp.mit.edu', | |
159 }, | |
160 } | |
161 ``` | |
162 | |
163 ### HieraからのAptの構成 | |
164 | |
165 ソースをリソースとして直接指定するかわりに、単純に`apt`クラスをインクルードして、値をHieraから自動的に取得するように構成できます。 | |
166 | |
167 ```yaml | |
168 apt::sources: | |
169 'debian_unstable': | |
170 comment: 'This is the iWeb Debian unstable mirror' | |
171 location: 'http://debian.mirror.iweb.ca/debian/' | |
172 release: 'unstable' | |
173 repos: 'main contrib non-free' | |
174 pin: '-10' | |
175 key: | |
176 id: 'A1BD8E9D78F7FE5C3E65D8AF8B48AD6246925553' | |
177 server: 'subkeys.pgp.net' | |
178 include: | |
179 src: true | |
180 deb: true | |
181 | |
182 'puppetlabs': | |
183 location: 'http://apt.puppetlabs.com' | |
184 repos: 'main' | |
185 key: | |
186 id: '6F6B15509CF8E59E6E469F327F438280EF8D349F' | |
187 server: 'pgp.mit.edu' | |
188 ``` | |
189 | |
190 ### デフォルトの`sources.list`ファイルの置き換え | |
191 | |
192 デフォルトの`/etc/apt/sources.list`を置き換える例を以下に示します。以下のコードと合わせて、`purge`パラメータを必ず使用してください。使用しない場合、Apt実行時にソース重複の警告が出ます。 | |
193 | |
194 ```puppet | |
195 apt::source { "archive.ubuntu.com-${facts['os']['distro']['codename']}": | |
196 location => 'http://archive.ubuntu.com/ubuntu', | |
197 key => '630239CC130E1A7FD81A27B140976EAF437D05B5', | |
198 repos => 'main universe multiverse restricted', | |
199 } | |
200 | |
201 apt::source { "archive.ubuntu.com-${facts['os']['distro']['codename']}-security": | |
202 location => 'http://archive.ubuntu.com/ubuntu', | |
203 key => '630239CC130E1A7FD81A27B140976EAF437D05B5', | |
204 repos => 'main universe multiverse restricted', | |
205 release => "${facts['os']['distro']['codename']}-security" | |
206 } | |
207 | |
208 apt::source { "archive.ubuntu.com-${facts['os']['distro']['codename']}-updates": | |
209 location => 'http://archive.ubuntu.com/ubuntu', | |
210 key => '630239CC130E1A7FD81A27B140976EAF437D05B5', | |
211 repos => 'main universe multiverse restricted', | |
212 release => "${facts['os']['distro']['codename']}-updates" | |
213 } | |
214 | |
215 apt::source { "archive.ubuntu.com-${facts['os']['distro']['codename']}-backports": | |
216 location => 'http://archive.ubuntu.com/ubuntu', | |
217 key => '630239CC130E1A7FD81A27B140976EAF437D05B5', | |
218 repos => 'main universe multiverse restricted', | |
219 release => "${facts['os']['distro']['codename']}-backports" | |
220 } | |
221 ``` | |
222 | |
223 ### APTソースやプロキシのログイン設定を`/etc/apt/auth.conf`で管理する | |
224 | |
225 APTバージョン1.5以降、認証が必要なAPTソースやプロキシについて、ユーザ名やパスワードなどのログイン設定を`/etc/apt/auth.conf`ファイルに定義できるようになりました。この方法は、`source.list`内にログイン情報を直接記述するよりも推奨されます。直接記述した場合、通常、あらゆるユーザから読み取り可能になるためです。 | |
226 | |
227 `/etc/apt/auth.confファイルのフォーマットは、(ftpやcurlによって使用される) netrcに従い、ファイルパーミッションが制限されています。詳しくは、[こちら](https://manpages.debian.org/testing/apt/apt_auth.conf.5.en.html)を参照してください。 | |
228 | |
229 オプションの`apt::auth_conf_entries`パラメータを使用して、ログイン設定を含むハッシュの配列を指定します。このハッシュに含めることができるのは、`machine`、`login`、および`password`キーのみです。 | |
230 | |
231 ```puppet | |
232 class { 'apt': | |
233 auth_conf_entries => [ | |
234 { | |
235 'machine' => 'apt-proxy.example.net', | |
236 'login' => 'proxylogin', | |
237 'password' => 'proxypassword', | |
238 }, | |
239 { | |
240 'machine' => 'apt.example.com/ubuntu', | |
241 'login' => 'reader', | |
242 'password' => 'supersecret', | |
243 }, | |
244 ], | |
245 } | |
246 ``` | |
247 | |
248 ## リファレンス | |
249 | |
250 ### Facts | |
251 | |
252 * `apt_updates`: `upgrade`で入手可能な更新がある、インストール済みパッケージの数。 | |
253 | |
254 * `apt_dist_updates`: `dist-upgrade`で入手可能な更新がある、インストール済みパッケージの数。 | |
255 | |
256 * `apt_security_updates`: `upgrade`で入手可能なセキュリティ更新がある、インストール済みパッケージの数。 | |
257 | |
258 * `apt_security_dist_updates`: `dist-upgrade`で入手可能なセキュリティ更新がある、インストール済みパッケージの数。 | |
259 | |
260 * `apt_package_updates`: `upgrade`で入手可能な更新がある、すべてのインストール済みパッケージの名前。Facter 2.0以降では、このデータのフォーマットは配列で、それ以前のバージョンでは、コンマ区切りの文字列です。 | |
261 | |
262 * `apt_package_dist_updates`: `dist-upgrade`で入手可能な更新がある、すべてのインストール済みパッケージの名前。Facter 2.0以降では、このデータのフォーマットは配列で、それ以前のバージョンでは、コンマ区切りの文字列です。 | |
263 | |
264 * `apt_update_last_success`: 直近で成功した`apt-get update`実行のエポックタイムによる日付(/var/lib/apt/periodic/update-success-stampのmtimeに基づく)。 | |
265 | |
266 * `apt_reboot_required`: 更新がインストールされた後に再起動が必要かどうかを決定します。 | |
267 | |
268 ### 詳細情報 | |
269 | |
270 その他すべてのリファレンスマニュアルについては、[REFERENCE.md](https://github.com/puppetlabs/puppetlabs-apt/blob/main/REFERENCE.md)を参照してください。 | |
271 | |
272 ## 制約 | |
273 | |
274 このモジュールは、[実行ステージ](https://docs.puppetlabs.com/puppet/latest/reference/lang_run_stages.html)に分割するようには設計されていません。 | |
275 | |
276 サポート対象のオペレーティングシステムの全リストについては、[metadata.json](https://github.com/puppetlabs/puppetlabs-apt/blob/main/metadata.json)を参照してください。 | |
277 | |
278 ### 新しいソースまたはPPAの追加 | |
279 | |
280 新しいソースまたはPPAを追加し、同一のPuppet実行において、その新しいソースまたはPPAからパッケージをインストールするには、`package`リソースが`Apt::Source`または`Apt::Ppa`に従属し、かつ`Class['apt::update']に従属する必要があります。[コレクタ](https://docs.puppetlabs.com/puppet/latest/reference/lang_collectors.html)を追加することによって、すべてのパッケージが`apt::update`の後に来るように制御することもできますが、その場合、循環依存が発生したり、[仮想リソース](https://docs.puppetlabs.com/puppet/latest/reference/lang_collectors.html#behavior)と関係したりすることがあります。以下のコマンドを実行する前に、すべてのパッケージのプロバイダがaptに設定されていることを確認してください。 | |
281 | |
282 ```puppet | |
283 Class['apt::update'] -> Package <| provider == 'apt' |> | |
284 ``` | |
285 | |
286 ## 開発 | |
287 | |
288 Puppet ForgeのPuppet Labsモジュールはオープンプロジェクトで、良い状態に保つためには、コミュニティの貢献が必要不可欠です。Puppetが役に立つはずでありながら、私たちがアクセスできないプラットフォームやハードウェア、ソフトウェア、デプロイ構成は無数にあります。私たちの目標は、できる限り簡単に変更に貢献し、みなさまの環境で私たちのモジュールが機能できるようにすることにあります。最高の状態を維持できるようにするために、コントリビュータが従う必要のあるいくつかのガイドラインが存在します。 | |
289 | |
290 詳細については、[モジュール貢献ガイド](https://docs.puppetlabs.com/forge/contributing.html)を参照してください。 | |
291 | |
292 すでにご協力いただいている方のリストについては、[コントリビュータのリスト](https://github.com/puppetlabs/puppetlabs-apt/graphs/contributors)をご覧ください。 |