「コンピュータ」カテゴリーアーカイブ

UBUNTU 22.04 redmine 5.0移行

前回、サクッとubuntu 20.04 to 22.04にdo-release-upgradeしたらredmineが無くなっていてがっかりして20.04に戻したのですが。。。コロナにかかって自宅待機になったことを機に(笑)、移行実施しました。

前提: gcp上で動いてるubuntu 20.04マシンをライブで22.04に上げます。

まずはsnapshotを取って、サクッと do-release-upgrade。基本元のコンフィグ残す方向で Nを選択。

終わったら不具合ないか確認。私の場合は何点かあった。

1.apache2が上がらない。/etc/apache2/mod-enabled/php7*が残ってたのが原因。

$ cd /etc/apache2/mod-enabled; sudo rm php7*
$ sudo a2enmod php8.1
$ sudo systemctl start apache2 で復旧

2.TeraTERMから繋がらなくなった。sshでssh-rsaが禁止されたのが原因。

https://blog.hitsujin.jp/entry/2022/04/24/010000

という訳で、putty-keygenでssh-ed25519でキーを作りなおした。

3.muninで一部値が取れなくなってる。。。これは急がないのでそのうち直す。

4.redmineが無くなった。これが今日の主題!

Redmine 5.0インストール

ないものは持ってきて入れるしかないので以下のBLOGを参考にRedmineをインストール。せっかくなので5.0で。

https://blog.redmine.jp/articles/5_0/install/ubuntu/

方針: データは20.04のパッケージredmineのデータを引き継ぐ。パッケージでもいいものはパッケージを利用する。

1.何はともあれバックアップ

$ mysqldump -u root -p redmine_default >redmine_default.sql
$ sudo tar cvfz /work/ubuntu2004redminebakup.tar.gz usr/share/redmine var/lib/redmine etc/redmine var/log/redmine var/cache/redmine

2.必要なパッケージインストール

DBは元々MySQLを使っていたので引き続きMySQLを使う(インストール済みの想定)。Rubyはパッケージの3.0.2を使う。Passengerもパッケージを利用。

$ sudo locale-gen ja_JP.UTF-8
$ sudo apt install -y build-essential zlib1g-dev libssl-dev libreadline-dev libyaml-dev libcurl4-openssl-dev libffi-dev
$ sudo apt install -y apache2 apache2-dev
$ sudo apt install -y imagemagick fonts-takao-pgothic
$ sudo apt install -y subversion git
$ sudo apt install -y passenger libapache2-mod-passenger

3.DB移行

ubuntu 20.04のパッケージredmineはredmine_defaultという名前のdatabeseになっているので、今回は、redmineという名前で作り直してデータをストアすることにした。

$ mysql -u root -p
mysql> CREATE DATABASE redmine CHARACTER SET utf8mb4;
mysql> CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'ぱすわーど';
mysql> GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';

$ mysql -u redmine -p redmine < redmine_default.sql

4.Redmineインストール

ubuntu20.04パッケージ版のredmineは /var/lib/redmine/defaultを使っているので、/var/lib/redmineをそのまま使う。

$ cd /var/lib/redmine
$ sudo -u www-data svn co https://svn.redmine.org/redmine/branches/5.0-stable /var/lib/redmine

パッケージの添付ファイルフォルダとpluginsフォルダをコピーしておく
$ sudo cp -rp default/files .
$ sudo cp -rp /usr/share/redmine/plugins .

コンフィグも流用して一部修正
$ cd config
$ sudo cp -p /etc/redmine/default/database.yml .
usernameがredmine/instanceになってるのでredmineに変更
databaseがredmine_defaultになってるのでredmineに変更
$ sudo cp -p  /etc/redmine/default/configuration.yml .
これは特に直すとこなし

$ cd /var/lib/redmine
rootでbundle実行していいのか?とも思うが。。。
$ sudo bundle install --without development test
$ sudo -u www-data bin/rake generate_secret_token
$ sudo -u www-data RAILS_ENV=production bin/rake db:migrate
$ sudo -u www-data RAILS_ENV=production bin/rake redmine:plugins:migrate
$ sudo -u www-data RAILS_ENV=production bin/rake tmp:cache:clear

5.apche2設定変更

/etc/apache2/conf-enabled/redmine.conf修正
Alias "/redmine" /var/lib/redmine/public
<Location /redmine>
        PassengerBaseURI /redmine
        PassengerAppRoot /var/lib/redmine
</Location>
<Directory "/var/lib/redmine/public">
        Allow from all
        Options -MultiViews
        Require all granted
</Directory>

apache再読み込み
$ sudo apachectl configtest
$ sudo systemctl reload apache2

これで、redmineが見られるようになったはず。

6.その他微調整

i. logrotate設定

/etc/logrotate.d/redmine
# Redmine logs:
/var/lib/redmine/log/*.log {  # ←ここ直す
  daily
  missingok
  rotate 14
  compress
  delaycompress
  notifempty
  copytruncate
}

ii. cron.d修正

/etc/cron.d/redmine修正 (redmineのパス修正)
30 6 * * * root cd /var/lib/redmine; bundle exec rake redmine:send_reminders days=3 RAILS_ENV=production > /dev/null 2>&1

iii. checklists pluginを入れていたのだが、うまく引き継がれなかったので、再度、インストールした。

7.ubuntu 20.04のパッケージredmineさようなら

動作確認が終わったら、古いredmineを消す。

$ sudo apt remove redmine redmine-sqlite
$ sudo rm -r /etc/redmine/default
$ sudo rm -r  /var/cache/redmine
$ sudo rm -r /var/log/redmine
$ sudo rm -r /usr/share/redmine
$ mysql -u root -p
mysql> drop database redmine_default;
mysql> drop user 'redmine/instance'@'localhost';

以上

p.s.

やらなくてもいいと言えばいいのですが。。。redmineパッケージを削除すると、apt upgradeするたびに、redmineパッケージインストール時に依存関係で一緒にインストールされたであろうrubyのサブモジュールパッケージが大量にもう使ってないよ。apt autoremoveで削除できるよと言ってくるんですよね。うざいのでautoremoveを実行したら見事に、redmine動かなくなりました(笑)

まぁ、再度

$ sudo bundle install –without development test

してやれば問題なく動きました。gemはパッケージでもbundleで入れても問題ないようですね。

楽天ひかりを別ルータでIPoEとPPPoE両方使う

はい。という訳で。スイッチ買いました(笑) 安くて、安心の金属筐体でいい感じです。

TP-Link 5ポートスイッチ TL-SG105

構成図

特段、特別なことはしてないのですが、ONUとRTX810の間にこのスイッチを挟んで、Archer C4000をルータモードに変更。Internet側をこのスイッチに繋いで、PPPoEで繋いでます。DHCPはRTX810が配っていて、基本、RTX810(IPoE側)を通るようにしてます。外部公開したいものだけ、default gwをC4000側に向けることによって、PPPoE回線を選びます。1つ注意点としてC4000のIPv6が有効になっていてパススルー(ブリッジ)になってるとループします。。。文字通りInternet側とLAN側をブリッジしてしまうようで。私はC4000側でIPv6は必要ないのでサクッと無効にしてあります。

ついでに、TP-Link Archer C4000にOpenVPN機能があるのを見つけたので、これを使うことに(今まではRTX810のL2TPか、QNAPのOpenVPNを使ってましたが)

ArcherのOpenVPNで振られるIPは10.8.0.0/24なので、RTX810側にも経路が必要。

ip route 10.8.0.0/24 gateway <C4000のIP>

こんな感じ。

楽天ひかりのPPPoE混んでるときやっぱ無理だなぁ

先日、自宅のQNAPやREC-ONへアクセスしたくてXPASSからPPPoEに戻したのですが、混んでるときに遅すぎてやっぱ無理。。。

で、手持ちのRTX810とTP-Link Archer C4000で何とかならないか考えてみたのですが、無理でした。。。

今は、RTX810でXPASSとPPPoE両方やっているので、デスティネーションでしかルーティングを分けられないのですが、PPPoEをTP-Linkにやらせてしまえば、LAN内の機器によってデフォルトルートを変えればできるね。と思ったのですが。。。

  • RTX810はPPPoEパススルー非対応(830からは可能)
  • Archer C4000はXPASS非対応

詰んだ (*_*)

QNAPをルーター化(KVM使えばね。TS-230なので無理だなぁ)

なんかルーター買うか。うーん。なんか負けた気がする。

gcpのサーバとOpenVPNでLAN to LANで繋いでおいてgcp経由で入るか。。。え、アメリカ経由だし、gcp通信課金かかるよ。。。

あ、SWX2200-8GでVLAN切って(あるいは、馬鹿スイッチ買って)ONUと間に入れれば、RTX810とArcher C4000両方置けるなぁ。。。ポートもったいないけど。でもこれが一番安価に解決できる案かな。

もうめんどくさいから全部IPv6になってくれないかな。。。

楽天ひかりでXpassは不便なのでPPPoEメインに変更

しばらく、XPASSでIPv4 over IPv6してましたが、自宅にIPSec VPNできないのはやっぱり不便!

という訳で、何とかならないか検討してみました。

PPPoEに戻して速度を測ってみるとそれほど遅くないですね。もしかして、楽天さんPPPoE設備をを増強したんですね。

XPASS(IPv4 over IPv6)接続
PPPoE接続

スループットは遜色ない感じなのですが、RTTが。。。PPPoEなんでこんなに遅いんだろ。実際、VDI操作してるとかなりもっさりした感じでスマホテザリングで使ってる感じでした。

RTT

月曜以降にXPASSからPPPoEに切り替えたのですが、揺らぎが大きいことがわかりました。まぁ、混んでる時は遅いってことですかね。ロスはないのでバッファして頑張ってる感じかな。

本当は、入ってくるほうだけPPPoEで出ていく方はXPASSにできれば言う事ないのですが、RTX810でそういう方法は思い浮かばなかったので、VDIサーバに対する経路だけxpassに向けることにしました。

ip route default gateway pp 1 ←その他経路(PPPoE)
ip route 150.xxx.xxx.200/29 gateway tunnel 1
 ← VDIサーバへの経路(XPASS)
ip route 198.xxx.xxx.128/29 gateway tunnel 1 ← VDIサーバへの経路(XPASS)

とりあえず、これで快適に使えています(^_^)

メールをsendgrid経由送信に変更

基本、gcpからはメール出せません。今までは面倒だったので、smtp.google.com経由でメールを出していたのですが、そうすると送信者がGmailのアカウント名になってしまうので、ちゃんと使うには問題があります。

そんな訳でSendGrid経由で出す設定にしてみました。12,000通/月まで無料とか神対応ですね!

手順ははい。ここを見てください(笑)

https://www.apps-gcp.com/sendgrid-gce/

とても参考になりました。ありがとうございます。

ただ、この記事が作成された当時と今で変わっているのは、SMTP送信に使われるユーザーはSendGridの管理アカウントではなく、APIキーになりました。なので、はい。ここを見てください(笑)

apikeyを発行してsasl_passwd設定してpostmapすればメール送信できるようになります。素晴らしい。

それと、WhitelabelingはSender Authenticationと言う名前に変わったようです。SendGridが丁寧な設定情報を書いてくれているのでこの通り設定すれば、SPFとDKIMの設定をかたがわりしてくれます。https://sendgrid.kke.co.jp/docs/Tutorials/D_Improve_Deliverability/using_whitelabel.html?utm_source=Vol.2&utm_medium=email&utm_content=HTML&utm_campaign=WelcomeEmail

FileMany素晴らしい!

iPhoneの写真をQfileでQNAPにバックアップする設定をしていたのですが、設定をミスって同じ写真がIMGxxxコピー(1).jpgのようなファイルが大量発生してしまった。

これを効率よく重複ファイルだけを消す(中にはほんとにファイル名が被ってその名前になったものもあるようなので無条件にコピーファイルを消すのは危険)方法がないかと探したところFileManyというフリーウェアを見つけました。サイズやハッシュを比較して同じファイルをリストアアップしてくれます。そのうえで、「作成日が古いファイルを残してチェック」という選択ができ、選択したものを削除できます。

素晴らしい!

QuMagieでHEIC写真を表示させる

最近のiPhoneの写真は標準だとHEICフォーマットで保存されている。Google PhotosやAmazon PhotosはHEICでも普通に表示できるのだが、QuMagieはCAYIN MediaSign Playerというコーデックを入れる必要がある。

CAYIN MediaSign PlayerにはPlus版($11.99)とBasic版(無料)があってHEICを使うためにはPlus版が必要。

CAYIN MediaSign PlayerのインストールはApp Centerから「CAYIN」を検索してインストールするだけ。

CAYIN MediaSign Playerのインストールが終わると自動的にQuMagieのサムネイル再生成が開始された。写真の量にもよりますがTS-230だとめちゃめちゃ時間かかりました。サムネイル1枚作るのに10秒以上かかってる感じ。。。

https://www.qnap.com/ja-jp/how-to/tutorial/article/%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%97%E3%81%9F-cayin-mediasign-player-%E3%81%A7%E3%83%93%E3%83%87%E3%82%AA%E3%82%92%E3%83%88%E3%83%A9%E3%83%B3%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89%E3%81%97%E3%81%A6-heic-%E5%86%99%E7%9C%9F%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95

ソフトバンク光 to 楽天ひかり with RTX810

本日、午前中に切替との事なのですが、うーん。特に何も起こらず。連絡もなし。そういうものかとおもむろにソフトバンクのルーターを外してONUのケーブルをRTX810に直結。IPv6のアドレスはソフトバンクの時と同じままでした。dgw.xpass.jp(2001:f60:0:200::1:1)にpingしてみましたが飛びませんでした。他のIPv6アドレスにはpingが飛んだのでそもそも、dgw.xpass.jpがpingに答えない?ちなみに、ipipトンネルはOnlineになってました(Transmittedは増えてるけどReceivedが増えない)。トンネルに経路張ってもIPv4の通信ができませんでした。。。とりあえずPPPoEは繋がるのでこれでしのぎます。RTTが48msで速度も出てないのでさっさとIPoEに切り替えたい。。。

悶々としていたら2日後に「【重要】<※必ずご確認ください>IPv6開通完了のお知らせ」というメールがinfo@broadband.rakuten.co.jpから届き、無事クロスパスで繋がるようになりました。IPv6のIPはアルテリアから振りなおされてました。dge.xpass.jpに対してもpingが飛ぶようになってました。

ちなみに、設定情報はひかり電話ありなしで変わるようです。私の場合は【設定例1:可変IP契約 RAプロキシ】ですね。ただ、tunnel をnameで張ろうとするとうまくいかず、addressで2001:f60:0:200::1:1を指定しました。dns server dhcp lan2 にしているのがRTX810(Rev.11.01.34)ではうまく動いてない気がします。どうもIPv6 DHCPで拾ってきたDNSサーバを参照してないか、IPv6のDNSサーバを参照できてない感じ。RTX830なら動くのかな? まぁ、仕方ないのでtunnelはIPで張って、PPPoEも併用した上でdns server pp 1を設定して逃げました。

ちなみに、速度はこんな感じです。ソフトバンク光(IPv4 over IPv6)の時と特に差はないですね(笑)

まぁ、これで5200円から4800円に下がり、更に1年間無料で、更にさらに今なら他社からの乗り換えで10,000円キャッシュバックというので、ソフトバンク光を途中解約して解約料取られてもいいかなと。

切替前(ソフトバンク光)
楽天ひかりPPPoE接続
楽天ひかりxpass接続

思いっきり私と同じことしてる先駆者がいらっしゃったので参考にさせてもらいました。

https://qiita.com/TAROIMO-YY/items/d333843fb84765e970fc

おまけ

XPASS方式ってルーターでNAT掛けないですね。。。LANのIPのままトンネルに投げ込んで後はキャリア任せ。でも、一応、1対1のIPv4アドレスが付与されるらしく、普通に自宅サーバ公開とかもできるみたいです。(試してないけど)

4/7 追記

IPv4ではサーバ公開できないですね。考えてみれば当たり前で、ローカルIPに対するマップをする方法がない訳ですからね。。。

IPv6なら出来ます。QNAPのQfileやQuMagieはIPv6に対応してるので、IPv6使えるスマホからは問題なくアクセス出来ました。