AIとオートマ。(ボードゲーム『大鎌戦役』ソロ)

久しぶりにボードゲーム『大鎌戦役』のテーブルトップをソロプレイ。こちら、クリミアでオートマはポラニアを利用しています。

結果は圧勝。オートマの難易度は一番低いものではありますが、これ以上強くするとかなりの苦戦が強いられます。

テーブルトップ版のオートマの違い

CPUと違い、専用のルールに沿って動くオートマは以下の違いがあります。

  • ワーカー単独で湖に侵入できる
  • ワーカーは生産/交易/建築/徴兵を行わない
  • 「近傍」に沿って、本拠地に近いところから遠いところへ一気にワープする
  • 連戦を物ともしない急激な戦力上昇

など、対人とは別のゲームと言っても過言ではありません。

これによって

  • 徴兵ボーナスを得られる機会がとても少ない
  • 相手の資源を奪える機会がとても限られる
  • 進入不可のところでマジョリティが取られる

と、かなり勝手が違いました。なので、戦闘よりも生産/内政重視と異なった戦略を楽しめました。

そして、やはり、物理はコンポーネントの質感を味わうことができます。

検証: redmine 4.2のデータを別サーバに完全移行。

以前書いた

の、うち、「バックアップしたデータを新しいサーバに移設する」が成功したので、その備忘録になります。

やったこと

現行で稼働しているredmineサーバを、新規LinuxMintサーバにデータを流し込み、復元させた。

以降元と移行先サーバ

共にLinux Mint20.03が稼働しています。

手順

基本的に管理者権限で行っていますが、ユーザーで行う場合はそれを追記します。

移行先で行う作業-redmine構築-

新規にRedmine 4.2を作ります。最初に作成するときにもお世話になった

https://eco.senritu.net/ubuntu20-04%E3%81%B8redmine4-2-x%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB/

こちらを用いましたが、以下、異なる部分があります。

Apacheのバージョンを脆弱性対応版に上げる
mysql_secure_installationが正常に動かない問題に対処する
vi /etc/mysql/mysql.conf.d/mysqld.cnf
追記内容
末尾に以下を追加
default_authentication_plugin=mysql_native_password

設定後にmysqlサービス再起動

systemctl restart mysql

MySQL rootパスワード設定

mysql -u root -p
# 未設定のためパスワードは不要です
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'パスワード';
#パスワードは任意のものを入力ください
flush privileges;
exit

後は参考サイトの手順に沿ってredmine4.2を起動させます。 このとき、database.ymlやconfiguration.ymlは以降元に合わせます。また、rubyのバージョンは2.7系にしています。

移行元で行う作業-redmineバックアップと転送-

DBのバックアップ

※こちらは通常ユーザで実行しました。

mysqldump redmine(DB名) --no-tablespaces -u redmine(DBユーザ) -p > redmine_backup

を実行し、DB全体のバックアップを取ります。

redmineデータのバックアップ

ここからは管理者権限で実施します。

cd /var/lib/redmine
# インストールされているredmineディレクトリに移動

このうち、

  • /redmine/files
  • /redmine/plugins
  • /redmin/public/thems

の3ディレクトリが移行先に流し込むデータとなります。

  • rsyncやscpを用いてのデータ転送
  • 一度圧縮して転送

など、任意のものを用います。

移行先で行う作業-redmineデータのリストア-

上段で述べた

  • files
  • plugins
  • public/themes

を、移行元と同じように配置します。このとき、ディレクトリやファイルの所有権が元と同じ(通例はwww-data)になるようにします。

そして、sqldumpで取得したDBも移行先に持っていきます。

プラグインのマイグレーション

cd /var/lib/redmine
bundle exec rake redmine:plugins:migrate RAILS_ENV=production

DBのリストア

 mysql -u redmine -p redmine < redmine_backup

を実施後、

systemctl restart apache2.service

を行うことで

以降元、移行先、共に

  • 同じテーマ
  • 同じプラグイン
  • 同じ添付ファイル

が見えることを確認しました。

前回、ちょっとしたDBのリストアを行いましたが、プラグインや添付ファイルを含めた完全な移行テストは初めて。

これで、もしもの時のためのリストア手順が整いました。

Linux Mint 21にRedmine 5.0をインストール。

2022/09/03 時点のLinux Mintの最新版21に、やはり最新版のRedmine 5.0のインストールを行えるかを検証しました。

以下、うまくいったときの手順です。

前提

  • OSの初期設定のみが完了しています。
  • また、Webでよく見られる「mysql_secure_installation」は普通に行ったら躓くので、その対応も行っています。

手順

  • 全て管理者権限で実施します。
  • 検証なのでhttps通信などは考慮しません。

apacheリポジトリの追加(脆弱性対応)

add-apt-repository ppa:ondrej/apache2
# 途中、Press[Enter]と表示されるので空エンターを打ちます。

基本パッケージのインストール

aptitude update
aptitude install build-essential zlib1g-dev libssl-dev libreadline-dev libyaml-dev libcurl4-openssl-dev libffi-dev mysql-server mysql-client apache2 apache2-dev libapr1-dev libaprutil1-dev imagemagick libmagick++-dev fonts-takao-pgothic subversion git ruby libruby ruby-dev libmysqlclient-dev

passengerのインストール

aptitude install libapache2-mod-passenger
systemctl restart apache2.service

gemで必要なライブラリをインストール

gem install bundler racc mysql2 strscan
# redmine5.0の場合、stscanも必要でした

mysql初期パスワード設定

参考 https://level69.net/archives/28557
vi /etc/mysql/mysql.conf.d/mysqld.cnf
追記内容
# 末尾に以下を追加
default_authentication_plugin=mysql_native_password

設定後にmysqlサービス再起動

systemctl restart mysql

MySQL rootパスワード設定

mysql -u root -p
# 未設定のためパスワードは不要です
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'パスワード';
#パスワードは任意のものを入力ください
flush privileges;
exit

mysql初期設定

mysql_secure_installation
初期設定内容
Enter password for user root: 
# 上記で設定したパスワードを入力します

VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?

Press y|Y for Yes, any other key for No: 
# Yを入力してEnter

There are three levels of password validation policy:

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary                  file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG:
# ポリシーに合わせて0/1/2を入力(ローカル環境のため0としました)

Estimated strength of the password: 50 
Change the password for root ? ((Press y|Y for Yes, any other key for No) : 
# 既に設定しているのでn

By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : 
# anonymousユーザーを削除するためY

Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : 
# rootユーザのリモートログインを禁止するためY

Remove test database and access to it? (Press y|Y for Yes, any other key for No) : 
# テストDBを削除するためY

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : 
# 設定を反映するためy

MySQLでredmine用のユーザーを作成

mysql -uroot -p
# 上記で設定したパスワードを入力します
CREATE DATABASE redmine character set utf8mb4;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'パスワード';
# 任意のパスワードを設定
GRANT ALL ON redmine.* TO 'redmine'@'localhost';
flush privileges;
exit

redmineを取得

mkdir /var/lib/redmine
chown www-data:www-data /var/lib/redmine
sudo -u www-data svn co https://svn.redmine.org/redmine/branches/5.0-stable /var/lib/redmine
database.yml編集
cp -pi /var/lib/redmine/config/database.yml.example /var/lib/redmine/config/database.yml
vi /var/lib/redmine/config/database.yml
編集する箇所(production)を以下のように編集
production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: "redmine用のパスワード"
  encoding: utf8mb4

bundleによるDBマイグレーション

cd /var/lib/redmine
sudo -u www-data bundle install --without development test --path vendor/bundle
sudo -u www-data bundle exec rake generate_secret_token
sudo -u www-data RAILS_ENV=production bundle exec rake db:migrate
sudo -u www-data RAILS_ENV=production REDMINE_LANG=ja bundle exec rake redmine:load_default_data

apacheの設定ファイルを作成

cd /etc/apache2/sites-available
vi redmine.conf
設定内容(動作確認のため、以下のものだけ)
<VirtualHost *:80>
    RailsEnv production
    DocumentRoot /var/lib/redmine/public

    <Directory "/var/lib/redmine/public">
            Allow from all
            Require all granted
    </Directory>
</VirtualHost>

上記で作成したredmine.confを有効化

a2ensite redmine.conf
apache2ctl configtest
# Syntax OKを確認
systemctl restart apache2.service

この後、ブラウザにIPアドレス/ホスト名を入力してredmineの画面が出ることを確認しました。

Chromebookへの取り込みとマクロレンズの屋外試し撮り。

マイクロフォーサーズのマクロレンズ、ようやく屋外で撮影する機会に恵まれました。

ChromeookはAndoroidアプリも動かせるので、メーカーが提供している取り込み用アプリがそのまま動くのが高評価です。

取り込んだところでの早速の検証。まずはスナップからです。

焦点距離が実質60mmなだけあって、かなり自然な距離で撮れます。

続いてのマクロ。

こちらに関しても機体を裏切りません。日が遮られている状況下でも捉えてくれますし、フォーカス速度は眼を見張るものがあります。

  • 日常を撮る
  • マクロで別の世界を切り取る

という理想的な動きができました。

Apache脆弱性対応。(リポジトリを用いたパッケージアップデート)

AWS Lightsailを用いてインターネット接続されている自分用のredmine。

いわゆる

  • Linux
  • Apache
  • MySQL
  • Ruby

で動いておりますが、その中のApacheに脆弱性があるので対応しました。

Apache HTTP Server 2.4における複数の脆弱性に対するアップデート

https://jvn.jp/vu/JVNVU94306894/

手順

全て管理者権限で実行しています。

Ubuntu 20.04の標準パッケージでインストールされているApacheのバージョンを確認します。

apache2 -v

# 以下、脆弱性を受けるバージョンです。
Server version: Apache/2.4.41 (Ubuntu)
Server built:   2022-06-14T13:30:55

リポジトリを追加します。

add-apt-repository ppa:ondrej/apache2
# 途中、Press[Enter]と表示されるので空エンターを打ちます。

パッケージを更新します。

aptitude update
aptitude upgrade
# 確認の前に、パッケージ一覧を確認します。

パッケージ更新後のApacheのバージョンを確認します。

apache2 -v
Server version: Apache/2.4.54 (Ubuntu)
Server built:   2022-06-08T15:59:07
# 最新版である2.54であることを確認します。

サービスを再起動し、既存サイトが問題なく動くかを確認します。

systemctl restart apache2.service 

これで、ひとまずは安心です。

完全制圧。(デジタル版『大鎌戦役』でのCPUとの戦い)

かなり珍しい事態が発生しました。

デジタル版ボードゲームの『大鎌戦役』において、「相手勢力に星章を一切獲得させず、こちらだけが星章6つを獲得」という記録。

これ自体は過去にも経験ありますが

星章のすべてが「戦闘による勝利」。通常は2つまでしか得られない中、その上限がない勢力ザクセン帝国だからこそできる勝ち方です。

その上、わずか15ラウンドでの勝利。デジタル版の実績の一つが「15ターン以内(15R以内)に勝利する」ですから、その記録を1Rも縮める快挙です。

これができた理由は

  • 敵勢力:ポラニアが戦力を整えていないうちに外に出ていたのでそれを叩いた
  • 同様に積極的に戦闘を仕掛けてくるクリミアを迎え撃った

などが挙げられますが、デジタル版CPUの癖にも起因しています。

  • 戦力と銭湯カードの合計が「12」にならない限り、CPUは1〜2しか出さない。
  • 唯一の例外がクリミア。(9〜11になるように出す)

という特徴があるため、積極的な連戦はするだけ得になってしまいます。(もちろん、その恩恵を受けるザクセンならなおのこと)

ただ、この戦略は支持(民心)をごっそりと失うこと。「それでもなお速度で勝てる」時に有効なものです。

Chuwi herobox proのLinuxサーバー化(準備編-2-)

こちらの続き。SSH接続できるようにしていきます。

作業メモ

最初のアップデートを行います。

sudo su -
aptitude update
aptitude upgrade

これには多少時間がかかります。

アップデート後、再起動を行います。

reboot

再起動後、heroboxを有線接続できるようにします。

sudo su -
aptitude install linux-image-oem-20.04d
reboot

カーネルを差し替え、オンボードNICを認識させる作業を行います。作業後、再起動をします。

接続を有線に切り替え、IPアドレスを固定します。

こちらに関してはGUIメニューで行いました。また、以下の作業も追加しています。

  • DNSサーバの向き先を自室内のDNSに切り替える
  • IPv6を無効化する

追加作業:DNS登録

ローカルDNSに上記で固定したIPアドレスを登録します。登録後

  • 登録した名前でIPアドレスが解決できること
  • 登録した名前にpingが返ってくること

を確認します。

sshを導入します。

aptitude install ssh

ローカル環境のため、公開鍵暗号の設定は割愛です。

クライアントからSSH接続できることを確認します。

ここまで確認できればディスプレイ接続もキーボード/マウスも不要です。LANケーブルと電源が接続された状態で固定します。

次は、別途、クライアントターミナルからサーバの基本設定を行っていきます。

Chuwi herobox proのLinuxサーバー化(準備編-1-)

こちらを進めるにあたり、まずは物理的な設定を行います。

SSD増設

この機体は、このサイズでありながらSSDスロットがあります。

  1. 蓋を開ける
  2. 固定スペースを取り外す
  3. SSDをコネクタに差し込む
  4. 固定スペースを取り付ける
  5. 蓋を閉める

の順番でSSD取り付け。

インストール前準備

(割と初歩的ですけれど、)こちらが必要です。

  • ディスプレイとケーブル(アナログかHDMIが利用可能)
  • キーボードとマウス
  • 有線と無線のブロードバンド環境
  • LANケーブル
  • Linuxインストールメディア(Rufusを用いてLinuxMint 20.03のブートディスクを作成しました)

インストール

LinuxMintのインストールを行いますが、上述しているようにSSDを取り付けているので、ちょっとした作業が必要でした。

無線LAN設定

Linux Mint 20.03は最初の段階ではherobox proの有線LANを認識しません。なので、無線接続を行い、ブロードバンド環境に接続します。

ディスクパーティション

ディスクの設定はカスタムです。Linuxからは

  • sda :増設した1TBのSSD
  • sdb :最初に備わっている256GBのSSDとして見えています。

これを以下のように設定しました。

sda

すべてを/varに割り当てます。(Webサーバとして運用するため)

sdb

  • 1GBほど、/efiで切ります。(これがないと正常にブートできませんでした
  • 4GBほどをスワップ領域に割り当てます。
  • 残り全ては/として用います。

そうしてディスクのインストールが完了し、

まずはLinuxにログインができるようになりました。

次はSSH接続できるまでを実施します。

自宅サーバ増設と今後の予定。

こちらの件を一歩進めました。

Chuwi Herobox pro到着

結局、現行2台と同じ機種にしました。

  • ファンレス無音
  • 省電力
  • 夏、日中にエアコンを切っていても稼働していた

などの実績からこちらです。

To Do

redmineのリストア

まっさらの機体が手に入ったので、「自宅環境のコアとなっているシステム」redmineが別の機体でも移行できるかを試します。

フォトアルバムリプレース

現状、Lycheeを使っておりますが、このほかのフォトアルバムも検証します。

Nextcloud検証

上記の後の本命。自宅にDropbox的なオンラインストレージを用意することでデータの冗長化を目指します。

PHPアップデート後の処理。(7.4 → 8.1)

検証で動かしていたUbuntu 20.04系サーバで

sudo aptitude update
sudo aptitude upgrade

と実施するとphpパッケージが8.1にアップグレードされていました。

その後、apache/PHPで稼働しているサイトが[Server Error]となったので、その対処方法をメモしました。

手順

今まで動いていたPHP7.4を無効化します。

a2dismod php7.4

PHP8.1を有効化します。

a2enmod php8.1

サービス再起動し、稼働することを確認します。

systemctl restart apahce2

これにより、正常稼働を確認です。

以前にインストールした

  • Lychee フォトアルバム
  • Snipe-IT

はいずれも稼働していました。

新たな問題

完全に見落としていましたが、Zabbix 5.0はphp 8.1では動かず、以下のように表示されます。

これに関してはバージョンアップを見据えつつ、対処していく必要があります。

Page 102 of 246

Powered by WordPress & Theme by Anders Norén