rabbit-slide-znz-lilo-20170827 2017.08.27

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: d6fd45136cc069d95fa2889c23cf7a7d488ef041
4
+ data.tar.gz: e5e9183ba2955068f00153b9fcad608ac1588765
5
+ SHA512:
6
+ metadata.gz: 0a14d03f218070431f3ae39cd1f206b3c2515e3ba883373c01d7e0bd88544baf6b65c8a42a171a52a3823124e54ff00c831b006af489db1568a06c4ee9166fd4
7
+ data.tar.gz: 9700318e107bfcfbd5dd850a84ed6f2ee70a046476dc363ab7b87a8514a5deee26f36705af85497e6d2ed3193be642a5224b74ee84b1e902d7af81d1ccd8c464
data/.rabbit ADDED
@@ -0,0 +1 @@
1
+ lilo-20170827.md
@@ -0,0 +1,23 @@
1
+ # lilo.linux.or.jp の話 (2017年8月)
2
+
3
+ 前回の発表以降の lilo.linux.or.jp の管理の話をします。
4
+
5
+ ## 作者向け
6
+
7
+ ### 表示
8
+
9
+ rake
10
+
11
+ ### 公開
12
+
13
+ rake publish
14
+
15
+ ## 閲覧者向け
16
+
17
+ ### インストール
18
+
19
+ gem install rabbit-slide-znz-lilo-20170827
20
+
21
+ ### 表示
22
+
23
+ rabbit rabbit-slide-znz-lilo-20170827.gem
@@ -0,0 +1,17 @@
1
+ require "rabbit/task/slide"
2
+
3
+ # Edit ./config.yaml to customize meta data
4
+
5
+ spec = nil
6
+ Rabbit::Task::Slide.new do |task|
7
+ spec = task.spec
8
+ # spec.files += Dir.glob("doc/**/*.*")
9
+ # spec.files -= Dir.glob("private/**/*.*")
10
+ # spec.add_runtime_dependency("YOUR THEME")
11
+ end
12
+
13
+ desc "Tag #{spec.version}"
14
+ task :tag do
15
+ sh("git", "tag", "-a", spec.version.to_s, "-m", "Publish #{spec.version}")
16
+ sh("git", "push", "--tags")
17
+ end
@@ -0,0 +1,20 @@
1
+ ---
2
+ id: lilo-20170827
3
+ base_name: lilo-20170827
4
+ tags:
5
+ - debian
6
+ presentation_date: 2017/08/27
7
+ version: 2017.08.27
8
+ licenses: []
9
+ slideshare_id: lilolinuxorjp-20178
10
+ speaker_deck_id: lilo-dot-linux-dot-or-dot-jp-falsehua-2017nian-8yue
11
+ ustream_id:
12
+ vimeo_id:
13
+ youtube_id:
14
+ author:
15
+ markup_language: :markdown
16
+ name: Kazuhiro NISHIYAMA
17
+ email: zn@mbf.nifty.com
18
+ rubygems_user: znz
19
+ slideshare_user: znzjp
20
+ speaker_deck_user: znz
@@ -0,0 +1,360 @@
1
+ # lilo.linux.or.jp の話 (2017年8月)
2
+
3
+ author
4
+ : Kazuhiro NISHIYAMA
5
+
6
+ content-source
7
+ : LILO&東海道らぐオフラインミーティング
8
+
9
+ date
10
+ : 2017/08/27
11
+
12
+ allotted-time
13
+ : 15m
14
+
15
+ # lilo.linux.or.jp とは?
16
+
17
+ 主な用途:
18
+
19
+ * LILO の Web サーバー (apache)
20
+ * ML サーバー (mailman)
21
+
22
+ # 環境
23
+
24
+ * さくらの VPS
25
+ * Debian GNU/Linux
26
+
27
+ # 今回の話
28
+
29
+ 前回以降の話
30
+
31
+ * OGP 追加
32
+ * Debian GNU/Linux 9.1 (stretch) に更新
33
+ * 更新後のログで気づいた点に対応
34
+ * clamav のパターンファイルのミラーに障害発生
35
+
36
+ # OGP 追加
37
+
38
+ - `<meta property="og:image" content="https://lilo.linux.or.jp/mascot/lilopen02.jpg">` などを追加
39
+ - Togetter での表示に影響するとわかったため
40
+ - Facebook のチェッカーで自動検出される内容と同じ設定
41
+ - 反映されるかどうかは未確認
42
+
43
+ # stretch への更新
44
+
45
+ - [2017-06-17 Debian 9 "Stretch" released](https://www.debian.org/News/2017/20170617)
46
+ - [2017-07-22 Updated Debian 9: 9.1 released](https://www.debian.org/News/2017/20170722)
47
+ - リリースノート https://www.debian.org/releases/stable/amd64/release-notes/ を参考にして更新
48
+
49
+ # apt line 更新
50
+
51
+ - apt line 更新: jessie から stretch へ
52
+ - debian
53
+ - milter-manager
54
+ - apt-get update
55
+
56
+ # 更新
57
+
58
+ - apt-get upgrade
59
+ - apt-get dist-upgrade
60
+ - 設定ファイルは /etc/systemd/timesyncd.conf だけ置き換え
61
+ - その他は既存のファイルを使用
62
+
63
+ # 後処理
64
+
65
+ - `find /etc -name '*.dpkg*'`
66
+
67
+ # rkhunter.conf
68
+
69
+ 新しいファイルを元に再設定:
70
+
71
+ UPDATE_MIRRORS=1
72
+ MIRRORS_MODE=0
73
+ MAIL-ON-WARNING="管理者ML"
74
+ UPDATE_LANG="en"
75
+ SCRIPTWHITELIST=/usr/bin/lwp-request
76
+ SCRIPTWHITELIST=/usr/sbin/unhide.rb
77
+ ALLOWHIDDENDIR=/etc/.git
78
+ ALLOWHIDDENFILE=/etc/.gitignore
79
+ ALLOWHIDDENFILE=/etc/.etckeeper
80
+
81
+ # clamav-milter
82
+
83
+ - 不要になっていたので削除
84
+ - `sudo rm /etc/default/clamav-milter.dpkg-bak`
85
+ - systemd に対応していなくて init.d スクリプトのままなのが気になる
86
+
87
+ # timesyncd.conf
88
+
89
+ /etc/systemd/timesyncd.conf.dpkg-old:
90
+
91
+ #Servers=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org
92
+ Servers=ntp1.sakura.ad.jp
93
+
94
+ /etc/systemd/timesyncd.conf:
95
+
96
+ #NTP=
97
+ #FallbackNTP=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org
98
+
99
+ # timesyncd.conf の反映
100
+
101
+ - `NTP=ntp1.sakura.ad.jp` に変更
102
+ - `sudo systemctl restart systemd-timesyncd.service`
103
+
104
+ # timesyncd.conf の確認
105
+
106
+ `systemctl status systemd-timesyncd.service` で
107
+
108
+ ```
109
+ Status: "Synchronized to time server [2400:8500:1302:826:150:95:148:140]:123 (2.debian.pool.ntp.org)."
110
+ ```
111
+
112
+ から
113
+
114
+ ```
115
+ Status: "Synchronized to time server [2001:e42:0:1:210:188:224:14]:123 (ntp1.sakura.ad.jp)."
116
+ ```
117
+
118
+ に変わったのを確認
119
+
120
+ # etckeeper.conf
121
+
122
+ - コメントが変わっていただけ
123
+ - `GIT_COMMIT_OPTIONS="-v"` を再設定
124
+
125
+ # /etc/ca-certificates.conf.dpkg-old
126
+
127
+ 変更した覚えはないので削除
128
+
129
+ # 後処理2
130
+
131
+ - `find /etc -name '*.ucf*'`
132
+
133
+ # ufw/before.rules
134
+
135
+ - state から conntrack に変わっていた
136
+ - FORWARD の icmp の許可が加わっていた
137
+ - COMMIT の上に追加
138
+
139
+ ```
140
+ # ignore noisy igmp
141
+ -A ufw-before-input -p 2 -d 224.0.0.1 -j DROP
142
+ ```
143
+
144
+ # ufw/before6.rules.ucf-dist
145
+
146
+
147
+ ```
148
+ # ignore noisy icmpv6(130)
149
+ -A ufw6-before-input -p icmpv6 --icmpv6-type 130 -j DROP
150
+ ```
151
+
152
+ を入れていたが、
153
+
154
+ ```
155
+ # MLD query
156
+ -A ufw6-before-input -p icmpv6 --icmpv6-type 130 -s fe80::/10 -j ACCEPT
157
+ ```
158
+
159
+ などが加わって不要そうなので追加せずに様子見。
160
+
161
+ # 50unattended-upgrades
162
+
163
+ - /etc/apt/apt.conf.d/50unattended-upgrades
164
+ - ucf-dist を元に以下を再設定
165
+ - Unattended-Upgrade::Mail "root";
166
+ - Unattended-Upgrade::Automatic-Reboot "true";
167
+
168
+ # /etc/ssh/sshd_config
169
+
170
+ - ucf-dist を元に以下を再設定
171
+ - PermitRootLogin no
172
+ - ChallengeResponseAuthentication yes
173
+ - AuthenticationMethods publickey,keyboard-interactive
174
+ - AllowUsers 許可していたユーザー
175
+
176
+ # 掃除
177
+
178
+ - sudo aptitude purge '~i!~Odebian!~Omilter'
179
+
180
+ ```
181
+ $ sudo aptitude purge '~i!~Odebian!~Omilter'
182
+ 以下のパッケージが削除されます:
183
+ acl{u} cpp-4.9{pu} docutils-common{u} docutils-doc{u} dokuwiki{p} gamin{u} gcc-4.9{p} gcc-4.9-base{p}
184
+ imagemagick{u} imagemagick-6-common{u} imagemagick-6.q16{u} imagemagick-common{u} libalgorithm-c3-perl{u}
185
+ libapache2-mod-php5{pu} libapache2-mod-php7.0{u} libapt-inst1.5{p} libapt-pkg4.12{p} libarchive-extract-perl{u}
186
+ libasan1{pu} libasprintf0c2{pu} libb-hooks-endofscope-perl{u} libbind9-90{pu} libboost-iostreams1.55.0{pu}
187
+ libcgi-fast-perl{u} libcgi-pm-perl{u} libclass-c3-perl{u} libclass-c3-xs-perl{u}
188
+ libclass-method-modifiers-perl{u} libclass-xsaccessor-perl{u} libcloog-isl4{u} libcpan-changes-perl{u}
189
+ libcpan-meta-perl{u} libdata-optlist-perl{u} libdata-perl-perl{u} libdata-section-perl{u} libdevel-caller-perl{u}
190
+ libdevel-globaldestruction-perl{u} libdevel-lexalias-perl{u} libdjvulibre-text{u} libdjvulibre21{u}
191
+ libdns-export100{pu} libdns100{pu} libept1.4.12{p} libexiv2-13{pu} libexiv2-14{u} libexporter-tiny-perl{u}
192
+ libfcgi-perl{u} libfftw3-double3{u} libfile-slurp-perl{u} libgamin0{u} libgcc-4.9-dev{p} libgd3{u}
193
+ libgetopt-long-descriptive-perl{u} libgnutls-deb0-28{pu} libgnutls-openssl27{u} libhogweed2{pu} libicu52{pu}
194
+ libilmbase12{u} libilmbase6{pu} libimport-into-perl{u} libintl-perl{u} libintl-xs-perl{u} libio-stringy-perl{u}
195
+ libirs-export91{pu} libisc-export95{pu} libisc95{pu} libisccc90{pu} libisccfg-export90{pu} libisccfg90{pu}
196
+ libisl10{pu} libjasper1{pu} libjs-jquery-cookie{u} libjs-jquery-ui{u} libjson-c2{pu} libjxr-tools{u} libjxr0{u}
197
+ liblensfun-data{pu} liblensfun-data-v1{u} liblensfun0{pu} liblensfun1{u} liblist-moreutils-perl{u} libllvm3.5{pu}
198
+ liblog-message-perl{u} liblog-message-simple-perl{u} liblognorm1{pu} liblqr-1-0{u} liblua5.1-0{u} liblwres90{pu}
199
+ libmagickcore-6.q16-3{u} libmagickcore-6.q16-3-extra{u} libmagickwand-6.q16-3{u} libmodule-build-perl{u}
200
+ libmodule-implementation-perl{u} libmodule-load-conditional-perl{u} libmodule-pluggable-perl{u}
201
+ libmodule-runtime-perl{u} libmodule-signature-perl{u} libmoo-perl{u} libmoox-handlesvia-perl{u}
202
+ libmro-compat-perl{u} libnamespace-autoclean-perl{u} libnamespace-clean-perl{u} libnetpbm10{u} libnettle4{pu}
203
+ libonig2{pu} libopendkim9{pu} libopenexr22{u} libopenexr6{pu} libpackage-constants-perl{u}
204
+ libpackage-stash-perl{u} libpackage-stash-xs-perl{u} libpadwalker-perl{u} libparams-classify-perl{u}
205
+ libparams-util-perl{u} libparams-validate-perl{u} libpath-tiny-perl{u} libperl4-corelibs-perl{u}
206
+ libphp-simplepie{u} libpng12-0{pu} libpod-latex-perl{u} libpod-markdown-perl{u} libpod-readme-perl{u}
207
+ libprocps3{pu} libpsl0{pu} libpth20{u} libqdbm14{u} libreadline6{p} libregexp-common-perl{u} librole-tiny-perl{u}
208
+ libruby2.1{pu} libsoftware-license-perl{u} libssl1.0.0{p} libstrictures-perl{u} libsub-exporter-perl{u}
209
+ libsub-exporter-progressive-perl{u} libsub-identify-perl{u} libsub-install-perl{u} libsub-name-perl{u}
210
+ libterm-ui-perl{u} libtext-soundex-perl{u} libtext-template-perl{u} libtry-tiny-perl{u} libtype-tiny-perl{u}
211
+ libtype-tiny-xs-perl{u} libunicode-utf8-perl{u} libuuid-perl{u} libvariable-magic-perl{u} libvpx1{pu}
212
+ libwebp5{pu} libwebp6{u} libwebpdemux1{pu} libwebpdemux2{u} libwebpmux1{pu} libwebpmux2{u} libwmf0.2-7{u}
213
+ libxapian22{p} libxpm4{u} libxtables10{pu} linux-image-3.16.0-4-amd64{p} netpbm{u} php{u} php-common{u}
214
+ php-curl{u} php-geshi{u} php-intl{u} php-seclib{u} php5{pu} php5-cli{p} php5-common{p} php5-curl{pu} php5-gd{p}
215
+ php5-intl{pu} php5-json{pu} php5-ldap{pu} php5-readline{pu} php7.0{u} php7.0-cli{u} php7.0-common{u}
216
+ php7.0-curl{u} php7.0-intl{u} php7.0-json{u} php7.0-opcache{u} php7.0-readline{u} python-debian{u}
217
+ python-debianbts{u} python-defusedxml{u} python-docutils{u} python-gamin{u} python-httplib2{u}
218
+ python-ndg-httpsclient{u} python-pil{u} python-pycurl{u} python-pygments{u} python-pyinotify{u}
219
+ python-pysimplesoap{u} python-reportbug{p} python-roman{u} python-soappy{u} python-support{p} python-wstools{u}
220
+ ruby2.1{p} sysvinit{p} ufraw-batch{u} zlib1g-dev{u}
221
+ 以下の、インストールが完了していないパッケージが設定されます:
222
+ spamass-milter
223
+ 更新: 0 個、新規インストール: 0 個、削除: 204 個、保留: 0 個。
224
+ アーカイブの 0 B を取得する必要があります。展開後に 427 MB のディスク領域が解放されます。
225
+ 先に進みますか? [Y/n/?]
226
+ ```
227
+
228
+ # dokuwiki 復旧 (1)
229
+
230
+ - dokuwiki が消えてしまった。
231
+ - とりあえず https://packages.debian.org/dokuwiki から buster (testing) の 0.0.20160626.a-2: all をダウンロードしてきて入れた。
232
+
233
+ ```
234
+ $ wget -N http://ftp.jp.debian.org/debian/pool/main/d/dokuwiki/dokuwiki_0.0.20160626.a-2_all.deb
235
+ $ sudo dpkg -i dokuwiki_0.0.20160626.a-2_all.deb
236
+ $ sudo apt-get -f install
237
+ ```
238
+
239
+ # dokuwiki 復旧 (2)
240
+
241
+ - データは残ってそうだったのでこれ以上の被害が出る前にバックアップ
242
+ - `etckeeper vcs log -p --stat` から dokuwiki/apache.conf を復元
243
+
244
+ ```
245
+ diff --git a/dokuwiki/apache.conf b/dokuwiki/apache.conf
246
+ deleted file mode 100644
247
+ index b245406..0000000
248
+ --- a/dokuwiki/apache.conf
249
+ +++ /dev/null
250
+ @@ -1,36 +0,0 @@
251
+ -AliasMatch ^/wiki/sites/[^/]+$ /usr/share/dokuwiki/
252
+ -AliasMatch ^/wiki/sites/[^/]+/(.*)$ /usr/share/dokuwiki/$1
253
+ -Alias /wiki /usr/share/dokuwiki/
254
+ -
255
+ -<Directory /usr/share/dokuwiki/>
256
+ -Options +FollowSymLinks
257
+ -AllowOverride All
258
+ -#order allow,deny
259
+ -# Allow from localhost 127.0.0.1 ::1
260
+ - Require all granted
261
+ -
262
+ - <IfModule mod_rewrite.c>
263
+ -
264
+ - # Uncomment to implement server-side URL rewriting
265
+ - # (cf. <http://www.dokuwiki.org/config:userewrite>).
266
+ - # Do *not* mix that with multisite!
267
+ - RewriteEngine on
268
+ - RewriteBase /wiki
269
+ - RewriteRule ^lib - [L]
270
+ - RewriteRule ^doku.php - [L]
271
+ - RewriteRule ^feed.php - [L]
272
+ - RewriteRule ^_media/(.*) lib/exe/fetch.php?media=$1 [QSA,L]
273
+ - RewriteRule ^_detail/(.*) lib/exe/detail.php?media=$1 [QSA,L]
274
+ - RewriteRule ^_export/([^/]+)/(.*) doku.php?do=export_$1&id=$2 [QSA,L]
275
+ - RewriteRule ^$ doku.php [L]
276
+ - RewriteRule (.*) doku.php?id=$1 [QSA,L]
277
+ - </IfModule>
278
+ -</Directory>
279
+ -
280
+ -<Directory /usr/share/dokuwiki/bin>
281
+ - Require all denied
282
+ -</Directory>
283
+ -
284
+ -<Directory /var/lib/dokuwiki/data>
285
+ - Require all denied
286
+ -</Directory>
287
+ ```
288
+
289
+ # dokuwiki 復旧 (3)
290
+
291
+ まだ dokuwiki/apache.conf しかみていないので、他の設定ファイルも見直した方が良いかも
292
+
293
+ # DKIM
294
+
295
+ - `sudoedit /etc/mailman/mm_cfg.py`
296
+ - `REMOVE_DKIM_HEADERS = Yes`を `REMOVE_DKIM_HEADERS = 2` に変更
297
+ - `sudo systemctl restart mailman.service`
298
+
299
+ # /usr/lib/mailman/Mailman/Defaults.py
300
+
301
+ - jessie の時点で Yes の意味が変わっていたらしいが気づいていなかった
302
+
303
+ ```
304
+ # Some list posts and mail to the -owner address may contain DomainKey or
305
+ # DomainKeys Identified Mail (DKIM) signature headers <http://www.dkim.org/>.
306
+ # Various list transformations to the message such as adding a list header or
307
+ # footer or scrubbing attachments or even reply-to munging can break these
308
+ # signatures. It is generally felt that these signatures have value, even if
309
+ # broken and even if the outgoing message is resigned. However, some sites
310
+ # may wish to remove these headers. Possible values and meanings are:
311
+ # No, 0, False -> do not remove headers.
312
+ # Yes, 1, True -> remove headers only if we are munging the from header due
313
+ # to from_is_list or dmarc_moderation_action.
314
+ # 2 -> always remove headers.
315
+ # 3 -> always remove, rename and preserve original DKIM headers.
316
+ REMOVE_DKIM_HEADERS = No
317
+ ```
318
+
319
+ # ssh_host_ed25519_key
320
+
321
+ Logwatch のメールで
322
+
323
+ ```
324
+ error: Could not load host key: /etc/ssh/ssh_host_ed25519_key
325
+ ```
326
+
327
+ と出ていたので生成:
328
+
329
+ ```
330
+ $ sudo ssh-keygen -A
331
+ ssh-keygen: generating new host keys: ED25519
332
+ ```
333
+
334
+ `dpkg-reconfigure openssh-server` の方がよかったかも
335
+
336
+ # CVD Download issues for August 23, 2017
337
+
338
+ - [WARNING: getpatch: Can't download daily-23697.cdiff from database.clamav.net](http://blog.clamav.net/2017/08/cvd-download-issues-for-august-23-2017.html)
339
+ - 全ミラーが一時的におかしかったらしい
340
+ - [[clamav-jp 281] ウィルスDB更新の異常について(解決済)](https://ja.osdn.net/projects/clamav-jp/lists/archive/users/2017-August/000280.html)
341
+
342
+ # clamav 続き
343
+
344
+ - 2017-08-26 (土) の Logwatch では直っていなかったが 2017-08-27 (日) の Logwatch では直っていた
345
+
346
+ # postfix
347
+
348
+ Postfix is running with backwards-compatible default settings
349
+ http://www.postfix.org/COMPATIBILITY_README.html for details
350
+ To disable backwards compatibility use "postconf compatibility_level=2" and "postfix reload"
351
+
352
+ Qiita の [Postfix 2.12 の compatibility_level](http://qiita.com/ttdoda/items/f16422d709e264cbb8a1) という記事を参考にして問題がなさそうなのを確認して `compatibility_level=2` に設定
353
+
354
+ # まとめ
355
+
356
+ - OGP 追加しました
357
+ - Debian GNU/Linux 9.1 (stretch) への更新
358
+ - dokuwiki が消えたので設定確認が必要そう
359
+ - 他は大きな問題はなさそうだった
360
+ - clamav も特に対応は必要なかった
metadata ADDED
@@ -0,0 +1,63 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rabbit-slide-znz-lilo-20170827
3
+ version: !ruby/object:Gem::Version
4
+ version: 2017.08.27
5
+ platform: ruby
6
+ authors:
7
+ - Kazuhiro NISHIYAMA
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-08-27 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rabbit
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 2.0.2
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 2.0.2
27
+ description: 前回の発表以降の lilo.linux.or.jp の管理の話をします。
28
+ email:
29
+ - zn@mbf.nifty.com
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - ".rabbit"
35
+ - README.md
36
+ - Rakefile
37
+ - config.yaml
38
+ - lilo-20170827.md
39
+ - pdf/lilo-20170827-lilo-20170827.pdf
40
+ homepage: http://slide.rabbit-shocker.org/authors/znz/lilo-20170827/
41
+ licenses: []
42
+ metadata: {}
43
+ post_install_message:
44
+ rdoc_options: []
45
+ require_paths:
46
+ - lib
47
+ required_ruby_version: !ruby/object:Gem::Requirement
48
+ requirements:
49
+ - - ">="
50
+ - !ruby/object:Gem::Version
51
+ version: '0'
52
+ required_rubygems_version: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: '0'
57
+ requirements: []
58
+ rubyforge_project:
59
+ rubygems_version: 2.5.2
60
+ signing_key:
61
+ specification_version: 4
62
+ summary: lilo.linux.or.jp の話 (2017年8月)
63
+ test_files: []