AR ホームベーカリー

オイラのアウトプット用ホームベーカリー!

WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! が出た

何事!? と思って見てたんだけど、どうも Github くんの RSA 秘密鍵が公開状態になってたんすかね。

This week, we discovered that GitHub.com’s RSA SSH private key was briefly exposed in a public GitHub repository. We immediately acted to contain the exposure and began investigating to understand the root cause and impact. We have now completed the key replacement, and users will see the change propagate over the next thirty minutes. Some users may have noticed that the new key was briefly present beginning around 02:30 UTC during preparations for this change.

github.blog

とりあえず以下のコマンドで既存の known_hosts エントリを削除。

❯ ssh-keygen -R github.com

これで git pull などしなおすと、都度 fingerprint など登録のいつものやつが聞かれるので適時シュッと登録してやればよい。

ちょうど本番リリースがあったので色々見ていてよかった。

jMeter をやりたくなさすぎるおじさんの末路

ということで k6 を調べている。

k6.io

負荷テストのシナリオとしてすでに稼働実績のある jmx ファイルがあるんだけど、似たようなシナリオだけど全然違う実装をしないといけない、という負荷テストがあって、しかに jmx をシュッと確認したところ

「うおおー! 頃してくれー!」

と言いたくなる感じだった。

コンバータ

コンバータがあるやん! と思ってウッキウッキで確認したらアーカイブされているのでこれ動くのか……? みたいな疑惑あり辛い。 きっとこの涙は花粉のせいなんだ。

github.com

ということでしばらくして k6 の記事が増えたらそういう事です、対戦よろしくおねがいします。

GithubActions で Error message: Failed to get ID Token. が出たらリトライすれば大体イケる

タイトルがすべてシリーズ。

GithubActions でビルド

ビルドして OIDC 経由で ECR に送る、という Workflow でコケていた。 詳細は隠すけど以下のようなエラーが出力される。

Run aws-actions/configure-aws-credentials@v1
Error: Error message: Failed to get ID Token. 
 
        Error Code : 403
 
        Error Message: Can't issue ID_TOKEN for job in 'Pending' state.

Failed to get ID Token. て、という気持ち。 本番リリース用のビルド走らせたらこれだったのでオエーッ!となっていた。

bug

らしい、ラベルがついている。

github.com

原文投稿海外兄貴も

Retrying the request in 1 or 2 seconds would resolve this error until the error is fixed on GitHub site.

[意訳] だいたい 1 〜 2 秒待ってから再実行するとうまくいくゾ

と言っており、まあ動作としてはバグの部類だわな……という感じはある。 つらいなサム。

AmazonLinux2023 が生まれていた

docs.aws.amazon.com

AmazonLinux2 もちゃんとメンテされてたし、という感じなのでこれも AWS にお金をぶっこむ限りメンテされていくでしょう!

AmazonLinux2 と AmazonLinux2023 の比較は以下。

docs.aws.amazon.com

「Fedrora から fork したけど独自実装だよ!」など書いてあるけど、ほぼ RHEL9 互換シリーズと考えて良さそう。

SELinux がデフォルトで有効になっていて disable が扱えないあたりもそう! という感じ。 そろそろ SELinux と向き合う作業も必要だなー、実に10年越しの対決よ……。

S3 静的ウェブホスティングをやるときに 403 出しがちで気をつけること

バケットポリシーを書かないといけない、以上!

dev.classmethod.jp

いつもバケットポリシー書き忘れて「オアッ AccessDenied!」となってしまっている。

assets:precompile で No such middleware to insert before: ActionDispatch::Static

GithubActions でビルド回してたんだけど、 PR 積んだブランチをビルドしたら遭遇した。

結論から書くと、 RAILS_SERVE_STATIC_FILES=true を precompile 時に追加すれば回避できる。

RackBasicAuth の追加

リリース直前になって「フライング利用するユーザを抑制したい」と言われてしまい。

BFF 設計なので「雑にバックエンドに Basic 認証入れるか〜」という回避方法を採用し、用意されていた RackBasicAuth に production を有効にする設定を入れた。

ところ、 GithubActions でのビルドが assets:precompile 落ちるようになった。

ActionDispatch::Static

落ちた時のコマンドはこうだった (Rails 6.1 環境です)。

RUN RAILS_ENV=production DATABASE_ADAPTER=nulldb SECRET_KEY_BASE=dummy bundle exec rails assets:precompile

で、なんでか考えてたんだけど、 RackBasicAuth (/config/initializers/basic_auth.rb) にこういうヤツが書かれている。

  Rails.application.configure do
    config.middleware.insert_before ActionDispatch::Static, RackBasicAuth
  end

こいつじゃねえか? ということでググってみる。

github.com

おーっ、そのものズバリじゃん、という事で assets*precompile を以下のように変更。

RUN RAILS_SERVE_STATIC_FILES=true RAILS_ENV=production DATABASE_ADAPTER=nulldb SECRET_KEY_BASE=dummy bundle exec rails assets:precompile

これで無事ビルドも通るようになった、めでたしめでたし。

自分の責務に関わるトコしか Rails のコアになるトコの実装読んだこと無いので、頑張って一通り読んだほうがよさそうだなあ、と今やられている案件に関わってから思っている。

責務の範囲外でも、ある時突然「案件内でけっこう技術が出来る人」になってしまうリスクがあるのだなあ、という学びがあった。 日々学べ……!

Rocky 9.1 で jemalloc

Rocky 9.1 というか RHEL 派生全般でイケるはず。

デフォルトリポジトリに jemalloc がない

ない。

[user@errbit ~]$ cat /etc/system-release
Rocky Linux release 9.1 (Blue Onyx)

[user@errbit ~]$ sudo dnf info *jemalloc*
Last metadata expiration check: 2:32:01 ago on Tue Mar 14 14:44:01 2023.
Error: No matching Packages to list

めちゃ許せねえよ。

epel を召喚すればオッケー

やっぱ困った時は EPEL さんだわ。

[user@errbit ~]$ sudo dnf install epel-release
Last metadata expiration check: 2:32:12 ago on Tue Mar 14 14:44:01 2023.
Dependencies resolved.
===============================================================================================================================================================
 Package                                   Architecture                        Version                               Repository                           Size
===============================================================================================================================================================
Installing:
 epel-release                              noarch                              9-4.el9                               extras                               19 k

Transaction Summary
===============================================================================================================================================================
Install  1 Package

Total download size: 19 k
Installed size: 25 k
Is this ok [y/N]: y
Downloading Packages:
epel-release-9-4.el9.noarch.rpm                                                                                                 78 kB/s |  19 kB     00:00
---------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                           25 kB/s |  19 kB     00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                       1/1
  Installing       : epel-release-9-4.el9.noarch                                                                                                           1/1
  Running scriptlet: epel-release-9-4.el9.noarch                                                                                                           1/1
Many EPEL packages require the CodeReady Builder (CRB) repository.
It is recommended that you run /usr/bin/crb enable to enable the CRB repository.

  Verifying        : epel-release-9-4.el9.noarch                                                                                                           1/1

Installed:
  epel-release-9-4.el9.noarch

Complete!
[user@errbit ~]$ sudo dnf info *jemalloc*
Extra Packages for Enterprise Linux 9 - x86_64                                                                                  14 MB/s |  15 MB     00:01
Last metadata expiration check: 0:00:04 ago on Tue Mar 14 17:16:20 2023.
Available Packages
Name         : jemalloc
Version      : 5.2.1
Release      : 2.el9
Architecture : x86_64
Size         : 203 k
Source       : jemalloc-5.2.1-2.el9.src.rpm
Repository   : epel
Summary      : General-purpose scalable concurrent malloc implementation
URL          : http://www.canonware.com/jemalloc/
License      : BSD
Description  : General-purpose scalable concurrent malloc(3) implementation.
             : This distribution is the stand-alone "portable" implementation of jemalloc.

Name         : jemalloc-devel
Version      : 5.2.1
Release      : 2.el9
Architecture : x86_64
Size         : 79 k
Source       : jemalloc-5.2.1-2.el9.src.rpm
Repository   : epel
Summary      : Development files for jemalloc
URL          : http://www.canonware.com/jemalloc/
License      : BSD
Description  : The jemalloc-devel package contains libraries and header files for
             : developing applications that use jemalloc.

インストールする

ご満悦よ。

[user@errbit ~]$ sudo dnf install *jemalloc*
Last metadata expiration check: 0:03:21 ago on Tue Mar 14 17:16:20 2023.
Dependencies resolved.
===============================================================================================================================================================
 Package                                       Architecture                  Version                                    Repository                        Size
===============================================================================================================================================================
Installing:
 jemalloc                                      x86_64                        5.2.1-2.el9                                epel                             203 k
 jemalloc-devel                                x86_64                        5.2.1-2.el9                                epel                              79 k
Installing dependencies:
 libpkgconf                                    x86_64                        1.7.3-9.el9                                baseos                            35 k
 perl-AutoLoader                               noarch                        5.74-479.el9                               appstream                         30 k
 perl-B                                        x86_64                        1.80-479.el9                               appstream                        188 k
 perl-Carp                                     noarch                        1.50-460.el9                               appstream                         29 k
 perl-Class-Struct                             noarch                        0.66-479.el9                               appstream                         31 k
 perl-Data-Dumper                              x86_64                        2.174-462.el9                              appstream                         55 k
 perl-Digest                                   noarch                        1.19-4.el9                                 appstream                         25 k
 perl-Digest-MD5                               x86_64                        2.58-4.el9                                 appstream                         36 k
 perl-Encode                                   x86_64                        4:3.08-462.el9                             appstream                        1.7 M
 perl-Errno                                    x86_64                        1.30-479.el9                               appstream                         24 k
 perl-Exporter                                 noarch                        5.74-461.el9                               appstream                         31 k
 perl-Fcntl                                    x86_64                        1.13-479.el9                               appstream                         29 k
 perl-File-Basename                            noarch                        2.85-479.el9                               appstream                         26 k
 perl-File-Path                                noarch                        2.18-4.el9                                 appstream                         35 k
 perl-File-Temp                                noarch                        1:0.231.100-4.el9                          appstream                         59 k
 perl-File-stat                                noarch                        1.09-479.el9                               appstream                         26 k
 perl-FileHandle                               noarch                        2.03-479.el9                               appstream                         24 k
 perl-Getopt-Long                              noarch                        1:2.52-4.el9                               appstream                         60 k
 perl-Getopt-Std                               noarch                        1.12-479.el9                               appstream                         24 k
 perl-HTTP-Tiny                                noarch                        0.076-460.el9                              appstream                         54 k
 perl-IO                                       x86_64                        1.43-479.el9                               appstream                         95 k
 perl-IO-Socket-IP                             noarch                        0.41-5.el9                                 appstream                         42 k
 perl-IPC-Open3                                noarch                        1.21-479.el9                               appstream                         31 k
 perl-MIME-Base64                              x86_64                        3.16-4.el9                                 appstream                         30 k
 perl-Net-SSLeay                               x86_64                        1.92-2.el9                                 appstream                        365 k
 perl-POSIX                                    x86_64                        1.94-479.el9                               appstream                        105 k
 perl-PathTools                                x86_64                        3.78-461.el9                               appstream                         85 k
 perl-Pod-Escapes                              noarch                        1:1.07-460.el9                             appstream                         20 k
 perl-Pod-Perldoc                              noarch                        3.28.01-461.el9                            appstream                         83 k
 perl-Pod-Simple                               noarch                        1:3.42-4.el9                               appstream                        215 k
 perl-Pod-Usage                                noarch                        4:2.01-4.el9                               appstream                         40 k
 perl-Scalar-List-Utils                        x86_64                        4:1.56-461.el9                             appstream                         71 k
 perl-SelectSaver                              noarch                        1.02-479.el9                               appstream                         20 k
 perl-Socket                                   x86_64                        4:2.031-4.el9                              appstream                         54 k
 perl-Storable                                 x86_64                        1:3.21-460.el9                             appstream                         95 k
 perl-Symbol                                   noarch                        1.08-479.el9                               appstream                         23 k
 perl-Term-ANSIColor                           noarch                        5.01-461.el9                               appstream                         48 k
 perl-Term-Cap                                 noarch                        1.17-460.el9                               appstream                         22 k
 perl-Text-ParseWords                          noarch                        3.30-460.el9                               appstream                         16 k
 perl-Text-Tabs+Wrap                           noarch                        2013.0523-460.el9                          appstream                         23 k
 perl-Time-Local                               noarch                        2:1.300-7.el9                              appstream                         33 k
 perl-URI                                      noarch                        5.09-3.el9                                 appstream                        108 k
 perl-base                                     noarch                        2.27-479.el9                               appstream                         25 k
 perl-constant                                 noarch                        1.33-461.el9                               appstream                         23 k
 perl-if                                       noarch                        0.60.800-479.el9                           appstream                         23 k
 perl-interpreter                              x86_64                        4:5.32.1-479.el9                           appstream                         80 k
 perl-libnet                                   noarch                        3.13-4.el9                                 appstream                        125 k
 perl-libs                                     x86_64                        4:5.32.1-479.el9                           appstream                        2.0 M
 perl-mro                                      x86_64                        1.23-479.el9                               appstream                         37 k
 perl-overload                                 noarch                        1.31-479.el9                               appstream                         54 k
 perl-overloading                              noarch                        0.02-479.el9                               appstream                         21 k
 perl-parent                                   noarch                        1:0.238-460.el9                            appstream                         14 k
 perl-podlators                                noarch                        1:4.14-460.el9                             appstream                        112 k
 perl-subs                                     noarch                        1.03-479.el9                               appstream                         20 k
 perl-vars                                     noarch                        1.05-479.el9                               appstream                         22 k
 pkgconf                                       x86_64                        1.7.3-9.el9                                baseos                            40 k
 pkgconf-m4                                    noarch                        1.7.3-9.el9                                baseos                            14 k
 pkgconf-pkg-config                            x86_64                        1.7.3-9.el9                                baseos                           9.9 k
Installing weak dependencies:
 perl-IO-Socket-SSL                            noarch                        2.073-1.el9                                appstream                        217 k
 perl-Mozilla-CA                               noarch                        20200520-6.el9                             appstream                         12 k
 perl-NDBM_File                                x86_64                        1.15-479.el9                               appstream                         31 k

Transaction Summary
===============================================================================================================================================================
Install  63 Packages

以下略

と思ったらわりといっぺえ入りますね……。 なにはともあれインストールでけたのでヨシとする。