rabbit-slide-znz-lilo-20240128 2024.1.28.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: b7c79bf494b7dc34e8ca22b977afa324ee400638ae8eabdf5f4aa8ae1d6d3836
4
+ data.tar.gz: ddb7060a9869aaaf9cdc8b91301ee1d6d57bde243715620e6278bd58360a3448
5
+ SHA512:
6
+ metadata.gz: 70bc82c60f8e4572c0100c601b12f220a167cf85810d6342fcaf33c84c864087ebf4173334b4b53bbbf2e4794926ac6191eeb451c5038dba1744e5a5d06900a9
7
+ data.tar.gz: 2ac6487e38727a20338257fb0dbc09e415b33d2dd28839550dcb49bf15588b99c381ecf6831908e12075af888ae0e0991740effec340c1f5f3695c0012e36d57
data/.rabbit ADDED
@@ -0,0 +1,2 @@
1
+ --size 1920,1080
2
+ upgrade-debian.md
data/README.md ADDED
@@ -0,0 +1,23 @@
1
+ # lilo.linux.or.jpをbusterからbullseyeに上げた
2
+
3
+ [LILO&東海道らぐオフラインミーティング 2024-01-28](https://lilo.connpass.com/event/306590/)の発表資料です。
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-20240128
20
+
21
+ ### 表示
22
+
23
+ rabbit rabbit-slide-znz-lilo-20240128.gem
data/Rakefile ADDED
@@ -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("rabbit-theme-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
data/config.yaml ADDED
@@ -0,0 +1,24 @@
1
+ ---
2
+ id: lilo-20240128
3
+ base_name: upgrade-debian
4
+ tags:
5
+ - debian
6
+ presentation_date: '2024-01-28'
7
+ presentation_start_time:
8
+ presentation_end_time:
9
+ version: 2024.1.28.0
10
+ licenses: []
11
+ slideshare_id: lilolinuxorjp-buster-bullseye
12
+ speaker_deck_id: lilo-dot-linux-dot-or-dot-jpwobusterkarabullseyenishang-geta
13
+ vimeo_id:
14
+ youtube_id:
15
+ width: 1920
16
+ height: 1080
17
+ source_code_uri:
18
+ author:
19
+ markup_language: :markdown
20
+ name: Kazuhiro NISHIYAMA
21
+ email: zn@mbf.nifty.com
22
+ rubygems_user: znz
23
+ slideshare_user: znzjp
24
+ speaker_deck_user: znz
Binary file
data/upgrade-debian.md ADDED
@@ -0,0 +1,265 @@
1
+ # lilo.linux.or.jpをbusterからbullseyeに上げた
2
+
3
+ author
4
+ : Kazuhiro NISHIYAMA
5
+
6
+ content-source
7
+ : LILO&東海道らぐオフラインミーティング
8
+
9
+ date
10
+ : 2024-01-28
11
+
12
+ allotted-time
13
+ : 15m
14
+
15
+ theme
16
+ : lightning-simple
17
+
18
+ # 自己紹介
19
+
20
+ - 西山 和広
21
+ - Ruby のコミッター
22
+ - twitter, github など: @znz
23
+ - 株式会社Ruby開発 www.ruby-dev.jp
24
+ - lilo.linux.or.jp のサーバー管理者の1人
25
+
26
+ # lilo.linux.or.jp とは
27
+
28
+ - LILO の Web やメーリングリスト
29
+ - さくらの VPS
30
+ - Debian GNU/Linux
31
+
32
+ # 更新対象
33
+
34
+ - Debian GNU/Linux 10 (buster) = oldoldstable
35
+ - Current LTS: August 1st, 2022 to June 30th, 2024
36
+ - Debian GNU/Linux 11 (bullseye) = oldstable
37
+ - Future LTS: August 15th, 2024 to June 30th, 2026
38
+ - https://wiki.debian.org/LTS
39
+
40
+ # 事前チェックしたもの
41
+
42
+ - https://packages.debian.org/libpam-google-authenticator
43
+ - 20170702-2 → 20191231-2
44
+ - メンテナンスされてるし、非互換もなさそう
45
+ - https://packages.debian.org/dokuwiki
46
+ - 0.0.20180422.a-2 → 0.0.20180422.a-2.1
47
+ - もっと新しいバージョンに上げるときは何か対応が必要かも
48
+
49
+ # 事前チェックしたもの
50
+
51
+ - milter-manager
52
+ - Debian 公式以外から入れているので
53
+ - https://packagecloud.io/milter-manager/repos に bullseye と el/7,8,9 しかなさそう
54
+ - https://packages.debian.org/milter-manager もまだない
55
+
56
+ # 更新
57
+
58
+ - 事前に想定していたものは問題なく上がった
59
+ - `dpkg -l | awk '/^rc/ { print $2 }'` で mailman が消えていることに気付く
60
+
61
+ # mailman → mailman3
62
+
63
+ - 検索して出てきたブログ記事を参考にして作業
64
+ - https://blog.daionet.gr.jp/knok/2021/10/13/mailman2-3-migration-on-debian/ など
65
+ - 消えてしまったので mailman 2.1 のコマンドを使った調査は不可能
66
+
67
+ # パッケージインストール
68
+
69
+ - `mailman3` `mailman3-web` `mailman3-full` と別々に入れてしまった
70
+ - 最初から `mailman3-full` を入れた方が良かったと後でわかった
71
+ - データベースを dbconfig-common で設定しますか? は「はい」にした
72
+
73
+ # コマンド
74
+
75
+ - `mailman3` の操作は `sudo mailman-wrapper` を使う
76
+ - `mailman3-web` の操作は `sudo /usr/share/mailman3-web/manage.py` を使う
77
+
78
+ # リスト作成
79
+
80
+ ```
81
+ nishiyama@chiyoko:~$ sudo mailman-wrapper lists
82
+ No matching mailing lists found
83
+ nishiyama@chiyoko:~$ sudo mailman-wrapper create lilo-XXX@lilo.linux.or.jp
84
+ Created mailing list: lilo-XXX@lilo.linux.or.jp
85
+ nishiyama@chiyoko:~$ sudo mailman-wrapper lists
86
+ 1 matching mailing lists found:
87
+ lilo-XXX@lilo.linux.or.jp
88
+ ```
89
+
90
+ # 設定移行
91
+
92
+ - `sudo mailman-wrapper import21 lilo-XXX@lilo.linux.or.jp /var/lib/mailman/lists/lilo-XXX/config.pck`
93
+ - どこまで移行できているかは未確認
94
+
95
+ # アーカイブ移行
96
+
97
+ - `sudo /usr/share/mailman3-web/manage.py hyperkitty_import -l lilo-XXX@lilo.linux.or.jp /var/lib/mailman/archives/private/lilo-XXX.mbox/lilo-XXX.mbox`
98
+ - `1%Failed adding message <mailman.18.1404008960.2993.webmasters@lilo.linux.or.jp>: 'iso2022_jp' codec can't encode character '\uff7b' in position 62: illegal multibyte sequence` のようにエンコーディングの問題のあるメールがたくさんあった
99
+ - たぶん spam とかだけなので無視
100
+
101
+ # postfix 設定
102
+
103
+ - `alias_maps` から `hash:/var/lib/mailman/data/aliases` を削除
104
+ - `/usr/share/doc/mailman3/README.Debian` にあった設定を追加
105
+
106
+ ```
107
+ owner_request_special = no
108
+ transport_maps = hash:/var/lib/mailman3/data/postfix_lmtp
109
+ local_recipient_maps = proxy:unix:passwd.byname $alias_maps hash:/var/lib/mailman3/data/postfix_lmtp
110
+ relay_domains = ${{$compatibility_level} < {2} ? {$mydestination} : {}} hash:/var/lib/mailman3/data/postfix_domains
111
+ ```
112
+
113
+ # apache2 設定
114
+
115
+ - `Include /etc/mailman3/apache.conf` 追加
116
+ - `sudo a2enmod proxy_uwsgi`
117
+ - `sudo systemctl restart apache2`
118
+ - 後で `RedirectMatch ^/cgi-bin/mailman https://lilo.linux.or.jp/mailman3/` も追加した
119
+
120
+ # 管理画面
121
+
122
+ - `/mailman3/admin` にある
123
+ - `sudo /usr/share/mailman3-web/manage.py createsuperuser` で管理者追加
124
+ - とりあえず `nishiyama` だけ追加
125
+
126
+ # 管理画面で変更
127
+
128
+ - Mail domain に lilo.linux.or.jp を追加 (サイトは example.com だった)
129
+ - サイトで example.com を lilo.linux.or.jp に変更 (ドメイン名と表示名の両方)
130
+
131
+ # lilo ML も移行
132
+
133
+ - `sudo mailman-wrapper create lilo@lilo.linux.or.jp`
134
+ - `sudo mailman-wrapper import21 lilo@lilo.linux.or.jp /var/lib/mailman/lists/lilo/config.pck`
135
+ - `sudo /usr/share/mailman3-web/manage.py hyperkitty_import -l lilo@lilo.linux.or.jp /var/lib/mailman/archives/private/lilo.mbox/lilo.mbox`
136
+
137
+ # 文字化け対応
138
+
139
+ - 説明が文字化けしていた
140
+
141
+ ![](lilo-ml-mojibake.png){:relative_height='50'}
142
+
143
+ # 復元
144
+
145
+ 旧データからバイナリで抽出
146
+
147
+ ```
148
+ nishiyama@chiyoko:~$ sudo hexdump -C /var/lib/mailman/lists/lilo/config.pck | less
149
+
150
+ 00004750 49 4c 4f 20 28 20 a4 ea a4 ed 20 3a 20 4c 69 6e |ILO ( .... : Lin|
151
+ 00004760 75 78 20 49 6e 73 74 61 6c 6c 20 4c 65 61 72 6e |ux Install Learn|
152
+ 00004770 69 6e 67 20 4f 73 61 6b 61 20 29 20 a4 cf b4 d8 |ing Osaka ) ....|
153
+ 00004780 c0 be a4 ce 20 4c 69 6e 75 78 20 a5 e6 a1 bc a5 |.... Linux .....|
154
+ 00004790 b6 b2 f1 a4 c7 a4 b9 a1 a3 20 bc e7 a4 cb b4 d8 |......... ......|
155
+ 000047a0 c0 be a4 ce 20 4c 69 6e 75 78 20 a5 e6 a1 bc a5 |.... Linux .....|
156
+ 000047b0 b6 a4 ce b8 f2 ce ae a1 a2 be f0 ca f3 b8 f2 b4 |................|
157
+ 000047c0 b9 20 a4 ce be ec a4 f2 c4 f3 b6 a1 a4 b9 a4 eb |. ..............|
158
+ 000047d0 a4 bf a4 e1 a4 cb b3 e8 c6 b0 a4 b7 a4 c6 a4 a4 |................|
159
+ 000047e0 a4 de a4 b9 a1 a3 71 7a 55 20 62 6f 75 6e 63 65 |......qzU bounce|
160
+ ```
161
+
162
+ # 復元
163
+
164
+ NKF で文字コードの確認と変換
165
+
166
+ ```
167
+ #!/usr/bin/env ruby
168
+
169
+ data = <<EOD
170
+ 49 4c 4f 20 28 20 a4 ea a4 ed 20 3a 20 4c 69 6e
171
+ 75 78 20 49 6e 73 74 61 6c 6c 20 4c 65 61 72 6e
172
+ 69 6e 67 20 4f 73 61 6b 61 20 29 20 a4 cf b4 d8
173
+ c0 be a4 ce 20 4c 69 6e 75 78 20 a5 e6 a1 bc a5
174
+ b6 b2 f1 a4 c7 a4 b9 a1 a3 20 bc e7 a4 cb b4 d8
175
+ c0 be a4 ce 20 4c 69 6e 75 78 20 a5 e6 a1 bc a5
176
+ b6 a4 ce b8 f2 ce ae a1 a2 be f0 ca f3 b8 f2 b4
177
+ b9 20 a4 ce be ec a4 f2 c4 f3 b6 a1 a4 b9 a4 eb
178
+ a4 bf a4 e1 a4 cb b3 e8 c6 b0 a4 b7 a4 c6 a4 a4
179
+ a4 de a4 b9 a1 a3 71 7a 55 20 62 6f 75 6e 63 65
180
+ EOD
181
+ s = [data.delete(" \n")].pack('H*')
182
+
183
+ require 'nkf'
184
+ p NKF.guess(s)
185
+ p NKF.nkf('-w', s)
186
+ ```
187
+
188
+ # 復元
189
+
190
+ 実行して結果を使って再設定
191
+
192
+ ```
193
+ ruby -v /tmp/s.rb
194
+ ruby 3.2.3 (2024-01-18 revision 52bb2ac0a6) [arm64-darwin23]
195
+ #<Encoding:EUC-JP>
196
+ "ILO ( りろ : Linux Install Learning Osaka ) は関西の Linux ユーザ
197
+ 会です。 主に関西の Linux ユーザの交流、情報交換 の場を提供するために
198
+ 活動しています。qzU bounce"
199
+ ```
200
+
201
+ # ML でアナウンス
202
+
203
+ - 移行しましたアナウンスメールを送信
204
+ - テストメールを兼ねている
205
+ - アーカイブに反映されなかった
206
+
207
+ # アーカイバー設定
208
+
209
+ - `mailman3-full` で入る `python3-mailman-hyperkitty` を使う
210
+ - `/etc/mailman3/mailman-hyperkitty.cfg` の `base_url` 変更
211
+ - `/etc/mailman3/mailman.cfg` に設定追加
212
+
213
+ ```
214
+ [archiver.hyperkitty]
215
+ class: mailman_hyperkitty.Archiver
216
+ enable: yes
217
+ configuration: /etc/mailman3/mailman-hyperkitty.cfg
218
+ ```
219
+
220
+ # エラー確認
221
+
222
+ ```
223
+ Jan 27 15:36:05 2024 (150036) HyperKitty failure on
224
+ https://lilo.linux.or.jp/mailman3/hyperkitty/api/mailman/urls:
225
+ <html><title>Forbidden</title><body>
226
+ <h1>Access is forbidden</h1><p>Please check the IP addresses
227
+ assigned to MAILMAN_ARCHIVER_FROM in the settings file.
228
+ </p></body></html> (403)
229
+ ```
230
+
231
+ # 設定
232
+
233
+ - apache2 のアクセスログで接続元 IP アドレスを確認
234
+ - 自分の IPv6 アドレスだった
235
+ - `/etc/mailman3/mailman-web.py` に自身のグローバル IP アドレス追加
236
+ - ねんのため IPv4 も足した
237
+
238
+ ```
239
+ MAILMAN_ARCHIVER_FROM = ('127.0.0.1', '::1',
240
+ '2401:2500:102:2213:133:242:207:124',
241
+ '133.242.207.124')
242
+ ```
243
+
244
+ # さらに確認
245
+
246
+ - またメールを送って登録されるのを確認した
247
+
248
+ # milter-manager + milter-greylist
249
+
250
+ - 途中 `mail.log` を確認したときにエラーがでていた
251
+
252
+ ```
253
+ milter-manager[133047]: [13] [children][error][connection] [14] Failed to connect to unix:/var/run/milter-greylist/milter-greylist.sock: 許可がありません: milter-greylist
254
+ milter-manager[133047]: [13] [leader][error] Failed to connect to unix:/var/run/milter-greylist/milter-greylist.sock: 許可がありません
255
+ ```
256
+
257
+ - 試行錯誤中でまだ未解決
258
+ - <https://github.com/milter-manager/milter-manager/issues/205> で質問中
259
+
260
+ # まとめ
261
+
262
+ - buster (oldoldstable) から bullseye (oldstable) に更新できた
263
+ - リリースノートの確認不足で mailman でひっかかった
264
+ - milter-manager はどうなる?
265
+ - ドメイン管理の関係で SPF,DKIM,DMARC などもやりにくいので、メールサーバーをやめてしまのもありかも?
metadata ADDED
@@ -0,0 +1,63 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rabbit-slide-znz-lilo-20240128
3
+ version: !ruby/object:Gem::Version
4
+ version: 2024.1.28.0
5
+ platform: ruby
6
+ authors:
7
+ - Kazuhiro NISHIYAMA
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2024-01-28 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&東海道らぐオフラインミーティング 2024-01-28](https://lilo.connpass.com/event/306590/)の発表資料です。"
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-ml-mojibake.png
39
+ - pdf/lilo-20240128-upgrade-debian.pdf
40
+ - upgrade-debian.md
41
+ homepage: https://slide.rabbit-shocker.org/authors/znz/lilo-20240128/
42
+ licenses: []
43
+ metadata: {}
44
+ post_install_message:
45
+ rdoc_options: []
46
+ require_paths:
47
+ - lib
48
+ required_ruby_version: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: '0'
53
+ required_rubygems_version: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ version: '0'
58
+ requirements: []
59
+ rubygems_version: 3.4.19
60
+ signing_key:
61
+ specification_version: 4
62
+ summary: lilo.linux.or.jpをbusterからbullseyeに上げた
63
+ test_files: []