カテゴリー: ガジェット Page 44 of 85

自宅サーバ置き場増設。

自宅内のサーバを増やそうと決めたので、「既存のサーバの収納スペース」を少しマシなものにしました。

用意したのはマルチパネル。

昨年お世話になったこれの要領で、ここに棚を足します。

一つ、段を追加しただけではありますが

かなり余裕のある収納スペースができあがりました。

隙間にLANケーブルも通せるので見た目は想像以上にスッキリ。また、低発熱/ファンレス仕様のためこういう置き方ができるのもナイスです。

homebrewを用いないUbuntuへのmkcertのインストール。

前回、homebrewによるローカル証明書(mkcert)を見つけましたが、それよりも楽な方法がありましたので、メモとして残します。

actix-webでSSL/TLS通信をしてみたよ

https://qiita.com/yoshiyasu1111/items/f22a5fb640651fd22b6c

環境はUbuntu20.04です。

必要パッケージをインストール

apt install libnss3-tools

インストール

curl -s https://api.github.com/repos/FiloSottile/mkcert/releases/latest | grep browser_download_url | grep linux-amd64 | cut -d '"' -f 4 | wget -qi - \
    && mv mkcert-v*-linux-amd64 mkcert \
    && chmod a+x mkcert \
    && mv mkcert /usr/local/bin/

ローカル認証局作成

 mkcert -install

これにより、管理者ユーザでもmkcertコマンドを使えるようになったのが大きいです。

思考実験-物理サーバの追加/運用計画

このとき得た結論から

  • redmine専用サーバを作る
  • 別のサーバでDNSや監視システムを作る

まで達しましたが、その「別のサーバ」に問題が出てきました。

別サーバが持たせている機能

ローカルDNS

Zabbix

運用監視の必須アイテム。

リアルタイム同期

これは実際うまく行っていて、データのバックアップを確実にしています。

Growi

サーバ上で完結するツリー構造のマークダウン。

Lychee フォトアルバム

画像の一括取り込みに効果を発揮。

と、「Redmineのバックアップサーバに色々と持たせていたら、こちらも重要になってしまったという笑えない事態が発生しました。

今後の結論:サーバの増設

まで至りましたが、問題は

  • 何台増設すればいいのか
  • どうやって機能分散させるか
  • それぞれの冗長性と可用性はどのように保つか
  • そもそも保管場所は?

と課題は尽きません。まずは、「増設に耐えられるだけの保管場所を確保」から始めます。

Oukitel WP-17 利用しての感想と料理写真。

利用を開始して2週間ほど。「かなり好きなタイプのスマートフォン」でした。

利用しての感想

重さ

やはりこれはあります。また、ちょっとしたタブレット以上の重さであるため、使う人を選ぶのは確かです。

バッテリーの持ち

これは予想以上でした。バッテリーセーバーを使わずとも、通勤時と昼休みにネットをチェック程度なら10%も利用しません。

動作

これも軽快です。Android特有のもたつきを大容量メモリでカバーしているという形。

また、KDEコネクトを利用することで、自宅Linux機とのやり取りがしやすくなっています。

料理写真

このスマートフォン、存外、料理の撮影に向いていることが判明。

特に油の反射をきちっと捉えてくれるのに好感が持てました。

続・M.ZUIKO DIGITAL ED 30mm F3.5 Macro検証。

結論から言うと、好みの距離で好みのものが撮れるレンズです。

マクロ検証

ビオトープで咲いていたホテイアオイ。被写体クッキリ、周りは程よくボケてくれています。

これを更に近づけると……

驚きの世界が待っていました。わずかに透ける花弁や水滴も見事に捉えています。

フィギュア・ポートレート

こちらも、申し分なしです。同じく愛用しているフジのマクロレンズと比べて、画角が広く背景をまんべんなく撮影してくれるという印象。

フジと同じく「日常で使える焦点距離(35mm換算で60mm)でありながら、別の世界を撮れる」というこのレンズ、早くも虜になりました。

ThunderbirdとRedmine連携。

メールを元にredmineのチケットを書き起こすパターンが割と発生します。

そんなときに役立つメールクライアント側のプラグインを見つけました。一部動かない機能がありますが、「受信したメールをそのままチケットに起こせる」のはとても便利です。

設定

Redmine側の設定

  1. 管理者権限でログインします。
  2. 管理>設定>APIから以下を有効にしておきます。
    • RESTによるWebサービスを有効にする
    • JSONPを有効にする

APIキーの確認

  1. Redmine > 個人設定 を開きます。
  2. APIアクセスキー > 表示から、出てきた英数字を確認します。

Thunderbirdのアドオンインストール

  1. アドオンマネージャーを開きます。
  2. 「redmine」で検索します。
  3. RedThunderMineBird Plusをインストール後、Thunderbirdを再起動します。

アドオン設定

Thunderbirdのアドオンマネージャー>拡張機能から設定画面を開きます。(スパナアイコン)

アカウントごとのRedmine > 自分のアカウントのラジオボタンをクリックします。

以下を入力して保存します。

  • Redmine URL (自分のRedmineのURL)
  • REST APIキー (先ほど確認したアクセスキー)

また、redmineのテキスト書式を「Markdown」にしている場合は、「説明のテンプレート」の「<pre>」を「```」に変えておきます。

設定確認

メールのプレビューに「Redmine」と出るのを確認します。

「件名と本文でWeb画面を開く」をクリックします。

Redmineが開き、チケット発行画面にメールの件名と本文が流し込まれていることを確認します。

動作未確認の機能

  • 「チケットを作成」「チケットを更新」などがうまく動きません。(設定か、バージョン違いかは不明)

既存LAMPサーバに資産管理システム『Snipe-IT』を追加。

一時期試してみた『Snipe-IT』。

このときはインストールスクリプトを用いて、

  • Apache
  • mariaDB
  • php

という状態でした。(また、このときはローカルDNSも構築していませんでした)

そこで、既にある環境にこれを追加します。

前提

  • Linux: Kubuntu 20.04
  • Apache
  • PHP
  • MySQL
  • 既に以下のWebシステムを導入済み
    1. Zabbix
    2. フォトアルバムLychee
    3. Growi

手順

以下のサイトを参考にしました。

Ubuntu 22.04にSnipe-IT資産管理ツールをインストールする方法– VITUX

(参照先では22.04ですが、その前のバージョンでもほぼこの手順通りでした。また、参照先ではmysqlなどを導入するよう指示がありましたが、既に稼働しているため飛ばしています)

PHPインストール

sudo add-apt-repository ppa:ondrej/php

sudo apt install -y php7.4-{opcache,pdo,bcmath,calendar,ctype,fileinfo,ftp,gd,intl,json,ldap,mbstring,mysqli,posix,readline,sockets,bz2,tokenizer,zip,curl,iconv,phar}
# 参照元のコマンドでを叩くとPHPバージョンを指定するよう言われたので、原稿環境のバージョン「7.4」を加えています。
インストール後、既存サービスの設定確認
sudo systemctl restart apache2

→ 再起動後、ZabbixやLycheeが正常に稼働していることを確認しました。

Snipe-IT用のDBを作成

sudo mysql -u root -p
CREATE DATABASE snipeit_db;
CREATE USER  'snipeit'@'localhost' IDENTIFIED WITH mysql_native_password BY '任意のパスワード';
GRANT ALL PRIVILEGES ON snipeit_db.* TO 'snipeit'@'localhost';
FLUSH PRIVILEGES;
exit

Snipe-ITダウンロード

cd /var/www/html
sudo git clone https://github.com/snipe/snipe-it snipe-it
cd /var/www/html/snipe-it

Snipe-IT サーバ設定

sudo cp .env.example .env
sudo vim .env
設定ファイル内容(編集内容)
APP_URL=marazion.corn.wall
APP_TIMEZONE='JST'
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_DATABASE=snipeit_db
DB_USERNAME=snipeit
DB_PASSWORD=設定したパスワード
DB_PREFIX=null
DB_DUMP_PATH='/usr/bin'
DB_CHARSET=utf8mb4
DB_COLLATION=utf8mb4_unicode_ci

Composerインストール

sudo su -
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
cd /var/www/html/snipe-it/
exit
sudo composer update --no-plugins --no-scripts
sudo composer install --no-dev --prefer-source --no-plugins --no-scripts
sudo php artisan key:generate
sudo chown -R www-data:www-data /var/www/html/snipe-it
sudo chmod -R 755 /var/www/html/snipe-it

httpd仮想ファイル作成

vi /etc/apache2/sites-available/snipe-it.conf
設定ファイル内容

ここでは

  1. ServerNameで複数のバーチャルホストを定義
  2. Rewriteで強制的にhttps通信をさせる
  3. 書式をApache2.4に合わせる

を行っています。

<VirtualHost _default_:80>
 ServerName marazion.corn.wall
#Server名は読み替えてください。(ログの場所も同じ)
 RewriteEngine On
        RewriteCond %{HTTPS} off
        RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</VirtualHost>

<VirtualHost _default_:443>
 ServerName marazion.corn.wall
 CustomLog /var/log/apache2/marazion.corn.wall/access.log combined
 ErrorLog /var/log/apache2/marazion.corn.wall/error.log
#  ログの場所を別のディレクトリにしたい場合は予め作成します
  SSLEngine on
    SSLProtocol All -SSLv2 -SSLv3  -TLSv1
     SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
    SSLCertificateFile /etc/certs/corn.wall.crt
    SSLCertificateKeyFile /etc/private/corn.wall.key
#mkcertで取得したローカル証明書と秘密鍵

  DocumentRoot /var/www/html/snipe-it/public
  <Directory /var/www/html/snipe-it/public>
    Options Indexes FollowSymLinks MultiViews
    Require all granted
</VirtualHost>                                                                                                                

設定ファイル反映

a2ensite snipe-it
apache2ctl configtest
 # → syntaxOKを確認
systemctl restart apache2.service

反映後、上記指定したドメインにアクセスすることでpre-flight checkが走り、

しっかり動くことを確認です。

ApacheによるGrowiサーバのリバースプロキシー化。

Growiの使い勝手が非常に良かったので、環境を整えました。

やりたいこと

  • 導入したGrowiサーバ、「IPアドレス:3000」ではなく「ドメイン名」でアクセスできるようにしたい。
  • 既にapacheで稼働しているLychee(フォトアルバム)やZabbixは平行稼働させたい。
  • ローカルとは言えSSL通信を行いたい。

やったこと

  1. hostファイル書き換え
  2. ローカルDNS登録
    1. これに即したSSL証明書をmkcertsで作成
  3. Apacheによるリバースプロキシー有効化
  4. 設定ファイル差し替え
  5. 動作確認

前提

以下の環境を導入済みです。

  • Kubuntu Linux 20.04
  • Apache 2.4
  • Growi 5.1

手順

※ディレクトリ、ドメインなどは個人の環境に読み替えてください。

host書き換え

sudo vi /etc/hosts
追記内容
127.0.0.1       localhost
127.0.0.1       paddington.corn.wall   paddington
# ※Ubuntuの環境では「127.0.1.1」となっていましたので、localhostと同じにします
127.0.0.1       chisataki.lyco.reco     chisataki
# ※別ドメインで通信を行いたいので、この行を追加しました

DNS登録

今回、新たに「lyco.reco」というローカルドメインを作成して「chisataki.lyco.reco」で名前解決できるようにしました。

参照:

mkcertsによるローカルSSL証明書発行

mkcertsを導入したサーバで、以下を発行します。

 mkcert -key-file lyco.reco.key.202208 -cert-file lyco.reco.cert.202208 lyco.reco chisataki.lyco.reco "*.lyco.reco"

この時に発行した証明書と秘密鍵をGrowiサーバの以下に格納します。

  • /etc/certs → 証明書
  • /etc/private → 秘密鍵

参照:

秘密鍵のシンボリックリンク化

証明書と秘密鍵を格納したサーバで

cd /etc/cets
sudo ln -s lyco.reco.cert.202208 lyco.reco.cert
​
cd /etc/private
sudo ln -s lyco.reco.key.202208 lyco.reco.key
# mkcertsの証明書は有効期限が3ヶ月と短いため、更新時にはリンクの貼り替えだけで済むようにあらかじめシンボリックリンクを設定します

としておきます。

リバースプロキシー有効化

sudo a2enmod proxy proxy_http proxy_wstunnel
sudo systemctl restart apache2.service

ログ格納ディレクトリ作成

sudo mkdir /var/log/apache/chisataki.lyco.reco
sudo chown -R www-data:www-data /var/log/apache/chisataki.lyco.reco

リバースプロキシー用apache設定ファイル作成

参考:

https://docs.growi.org/ja/admin-guide/getting-started/ubuntu-server.html

sudo vi /etc/apache2/sites-available/growi.conf
設定ファイル内容

※ServerNameやログなどは読み替えてください。

<VirtualHost _default_:80>
ServerName chisataki.lyco.reco
RewriteEngine On
      RewriteCond %{HTTPS} off
      RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</VirtualHost>

<VirtualHost _default_:443>
ServerName chisataki.lyco.reco
CustomLog /var/log/apache2/chisataki.lyco.reco/access.log combined
ErrorLog /var/log/apache2/chisataki.lyco.reco/error.log
SSLEngine on
  SSLProtocol All -SSLv2 -SSLv3 -TLSv1
    SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
  SSLCertificateFile /etc/certs/lyco.reco.crt
  SSLCertificateKeyFile /etc/private/lyco.reco.key

  RewriteEngine On
  RewriteCond %{HTTP:Upgrade} websocket [NC]
  RewriteCond %{REQUEST_URI} ^/socket.io           [NC]
  RewriteCond %{QUERY_STRING} transport=websocket   [NC]
  RewriteRule /(.*) ws://localhost:3000/$1 [P,L]

  ProxyPass / http://localhost:3000/
  ProxyPassReverse / http://localhost:3000/

</VirtualHost>

設定ファイル有効化

sudo a2ensite growi

設定ファイル反映

sudo apache2ctl configtest
 # → syntax OK を確認します
sudo systemctl restart apache2.service

設定後、

「http://[ドメイン]」

にアクセスすることで

  • https通信へのリダイレクト
  • 指定したディレクトリにアクセスログが流れること

を確認しました。

コンパクトな近接の眼。

かなり唐突に入手しました。(というか、今月の購入リストに全く入っていませんでした)

M.ZUIKO DIGITAL ED 30mm F3.5 Macro

2本目の、そして、マイクロフォーサーズでは初のマクロレンズです。

装着

手に取ったときの感想は「軽い」に尽きます。正直、ここまで軽くてきちんと機能するのかと疑ったほどですが……

試写

この最初の一枚で杞憂に終わりました。寄れます。レンズと被写体がぶつかるのではっていうぐらいの距離で寄れました。

何より、補助光なしで手ぶれ補正機能も効いてくれます。

まだまだ、取り回しや撮り方をつかむのはこれからですけれど、近接撮影が大好きなのでこれからが本当に楽しみ。

ノートとカバー。(ダイアログノート補充)

これもまた愛用しているグッズです。

ダイアログノート+カバー

今回注文したのは

  • ダイアログノート(プレミアム)
  • ダイアログノート(限定:カタカナロゴ)
  • ハードカバー(箔押し版)

です。

出会って2年ぐらい経っていますが、この下記心地とサイズは非常に得難いものがあります。

ハードカバー

今回のハードカバーは本来のノート表紙の箔押し版。無地のMoleskineっぽさも好きですが、本体が書かれているとテンション上がります。

おまけの付箋

また、購入特典としてクリップ付きの付箋もついてきました。これもまたノートにアクセントを加えてくれます。

プレミアムノート

今回感動したのはこのプレミアムノート。紙とペンの追随性というか、吸い付くような書き心地に感動。

これは、いざという時に取っておきたいノートです。

Page 44 of 85

Powered by WordPress & Theme by Anders Norén