Rocky Linux 9でデフォルトのPATH設定を行う。

パスの設定なんか自由にやればいいんですけどね。
.bashrcや.profileとかに書くのが一般的なんですかね?
ユーザ毎に独自のパスを設定する場合は、それで良いと思うのですが、サーバ全体で共通項目を設定する場合はユーザが作成される度に設定するのも面倒ですよね。

ということで、調べてもあまり記載が少なかったので、記載しておこうと思います。
※ある意味、自分用なので自分好みの設定ということをご了承ください。

ついでに、色々とある方法を記しておこうと思います

色々あるパスの設定場所

パス設定を共通化させたいと言いましても、色々と人それぞれに異なることを思い浮かべているかと思います。

・既にあるユーザの設定も含めて設定しよう
・これから作るユーザは全部統一
・一般ユーザが何をどこで設定されているのか分かるようにしておきたい。
・・・etc

で、大きく分けて2通り考えました。

①/etc/skelを活用する

こちらは、基本的に.bashrcや.bash_profileなどで設定を行うことになります。
既に存在するユーザには影響がなく、共通というよりは今後作成されるユーザに対し共通の設定を提供することになります。
将来的に編集が行われた場合、その編集結果は編集後に作成されるユーザにのみ提供されます。

よって、サーバ全体で環境変数の変更があった場合には、ここで対応を行う必要が生じます。

ユーザ毎の初期設定を共通化させたいという言い回しの方が適していますね。

②/etc/profileや/etc/bashrcで設定する

こちらの方法は、システムで共通の変更を行う際に有効です。
例えば、/etc/profileに環境変数を追加すると、そのタイミング以降にログインするユーザに対して環境変数が自動的に設定されます。

ここでは、/etc/profileにPATHを追加しようと思います。

2022年10月現在、私の使用しているRocky Linux 9では、以下のPATHが通っていませんでした。

・/sbin
・/usr/local/bin

なんでなんでしょうね?
CentOS 8をインストールした時には/sbinへのパスはデフォルトで通っていた様な気がするんですけどね。。。

まず、壊してしまうと後で大変なのでバックアップしておきます。

profileを編集します。
元の状態は以下になります。

変更後は以下になります。

これで終わりです。

開発するシステムで独自の設定を施す場合には、/etc/skelに.bashrcを作成するなどが良いと思いますが、今回の様に全体で共通化させるような場合には/etc/profileを検討するのも宜しいかと思います。

ベクトルタイルの作り方~メモ~

今更ですが、ベクトルタイルの作成方法について整理しておきます。
以前とやり方が違っているので、自分用メモです。

環境

OS:Rocky Linux 9
準備として必要なパッケージをインストールします。

適当な作業用ディレクトリを作成しそこへ移動します。
その後、以下のコマンドを実行して、必要なパッケージ類をインストールします。
足りないものは適宜追加してください。

ここからは、githubにインストール手順が記載されていますので、合わせて確認してください。
https://github.com/mapbox/tippecanoe#installation

次に、mvtを作成するためのプログラムソースであるtippecanoe(「ティペカヌー」と読むらしい)をgithubからダウンロードします。

gitコマンドで展開された作成されたtippecanoeディレクトリへ移動して、コンパイルとインストールを行います。
公式では、下記のmakeを行う際、「-j」オプションを指定してmakeの並列実行を指定していますが、私の試した環境では敢えて「-j」無しでmakeを行いました。理由については後述します。

makeの際にオプションで-jを指定するとコンパイルが速くなりますが、プアなマシンでやると固まってしまう場合があります。
また、オブジェクト作成時の依存関係が原因と思われるエラーが発生し、これもまた正常にコンパイル/リンクが出来ない場合があります。

今回、私の環境では、マシンが固まる現象が発生したため「-j」を外してmakeを実行しました。
時間は掛かりますが、正規の方法ですので問題はありません。

mvtを作成するにはそこそこのリソースを必要とするケースが多いと思われ、出来ればCPUやメモリなどのリソースに余裕がある環境で「-j」を付けてコンパイルをすることが望ましいです。

これで必要なパッケージとかはインストールされているのですが、パスを切っておかないとだめです。

Rocky 9 のデフォルト環境設定なのか、/usr/local/binへのパスが設定されていませんでした。必要な方は設定しておいてください。
ちなみに、デフォルト設定を変更したい人はこちらを参考にしてください。

mbtilesとpbfの作り方

mbtilesの作り方

-rg デフォルトでも構いませんが、データによって値を設定すると良さそうです。

pbfの作り方

コマンドは以下の通りです。

実際に、この方法で作成することは出来ますが、Mapbox GL JSではこの方法で作成したpbfは扱えないという記載が見受けられました。
tippecanoeは、pbfを作成する際にデフォルトで圧縮を行っている(後で重要になる)そうです。
そこで、圧縮を行わない設定を追加します。

① –no-tile-compression : 圧縮を行わない。
② –no-tile-compression :タイルが大きすぎる場合は、フィーチャ間の最小間隔を広げて 500K 未満に縮小しようとします。 検出された間隔は、ズーム レベル全体に適用されます。
③ –no-tile-size-limit : 作成するタイルサイズの制限を解除します。
④ -j ‘{“*”:[“all”,[“<“,”対象属性”,1000]]}’ :フィルタリング条件
⑤ -e output_dir :出力先ディレクトリ

なんか②と③が打ち消しあっている様な感じにも思えなくもないのですが、③は確実に機能している様でした。

④で対象となるフィーチャーをフィルタリングしています。
これを行わないと、ランダムにフィーチャーがドロップ(間引き)されます。

属性による対象地物の指定方法

-jオプションについて、もう少し説明します。
こんな感じで指定しています。

「*」 :対象のファイルを指定している。ここでは全てを意味します。
    対象ファイルを分けて条件を変更することも可能なのでしょう。
「all」:フィルター演算子。allは全ての条件を満たすことを意味する。
    他に、「in」「none」などがある。
「>=」:演算子の指定。
「比較対象」:フィーチャーの属性を指定。
「比較条件」が1000以上のデータを対象とする。

オプションの設定はたくさんあって理解するのが大変です。
気が向いたら、追記してみようと思います。

参考:https://github.com/mapbox/tippecanoe#cookbook

Web配信におけるデータ圧縮

先程の方法で作成したpbfファイルは、オプションを指定することで非圧縮ファイルになっています。
mapbox GL JSで扱う場合には、非圧縮が条件になるため仕方ありません。

でも、それは mapbox GL JSが扱う際に圧縮されていると不味いということで、通信中に圧縮されていることは特に関係ありません。

ということで、配信するサーバでApacheを利用している場合は、以下の方法を検討してみると良いでしょう。

Apacheの配信データを圧縮する。

/etc/httpd/conf.dに以下のファイルを作成する。

他にも必要に応じて設定を行う。
httpdの再起動もしくはリロードを行えばOK

Rocky Linux 8/9 に AWS S3をマウントする。

概要

Rock Linux 8で保存しているデータのバックアップを取るために、S3へデータ転送を行うことにしました。
マウントしてファイルの転送は可能です。
転送速度の問題が主になりますが、課題が無い訳ではありません。
取り敢えず、マウントしてファイル共有出来るという感じです。

手順リスト

  • Step-1:S3の準備
  • Step-2:ユーザ準備
  • Step-3:awscliのインストール
  • Step-4:goofysのインストール
  • Step-5:検証

Step-1:S3の準備

AWSのS3バケットを作成します。

バケット名とリージョンを指定して作成します。
その他の設定については、特に影響は無いみたいです。
当初、「このバケットのブロックパブリックアクセス設定」にある「パブリックアクセスをすべて ブロック」になっているので気になったのですが、ユーザのアクセス権限が優先されるらしく、設定次第で実質的にはパブリックでのアクセスも可能なのでしょう。(恐いなぁ~と思う人は、嘘だと思って試してみると良いでしょう。)

Step-2:ユーザ準備

S3へアクセスするためにIAMでユーザを登録します。
既存のユーザでも構いません。
ユーザに対し以下を設定します。

アクセス権限:AmazonS3FullAccess
アクセス権限タブ→アクセス権限の追加でAmazonS3FullAccessを追加します。

認証情報タブ→アクセスキーの作成でアクセスキーを新規に作成します。
アクセスキーIDとシークレットアクセスキーが発行されます。
シークレットアクセスキーは、このタイミングだけしか表示することが出来ませんので大切に保管してください。
CSVファイルとしてダウンロードすることも可能なので、ダウンロードしておいても良いでしょう。

Step-3:awscliのインストール

多分、CentOS 8/Rocky Linux 8から有効だと思いますが、以下の方法でawscliをインストールします。

これで行けるかと思ったのですが、タイミング悪くRocky 9ではdnfでインストールが出来ませんでした。
Pythonで対象モジュールのインストールが必要となるのですが、インストールしてもダメでした。単純なバグですが。。。面倒なので直接インストールする場合は下記を参考にインストールします。
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/getting-started-install.html#getting-started-install-instructions

インストールの確認は以下のコマンドです。

awscliのインストールが完了したら、先に作成したS3へアクセスするための初期設定を行います。

AWSへのアクセスIDとシークレットキーを指定します。
出力フォーマットはjson形式を指定します。
出力形式を指定しないと、この後の動作が上手く動作しません。

Step-4:goofysのインストール

まずは、golangとfuseをインストールします。

次にgoofysをインストールするのですが、最新版は以下でインストールすることが出来ます。

以下のコマンドでインストール出来たことを確認します。

Step-5:マウントする。

まずはマウントポイントを作成します。

これで準備は完了です。

実際にマウントしてみます。
コマンド形式はmountコマンドと同じですね。

課題

/etc/fstabへ静的マウントの方法が分かっていません。
出来そうなんだけど、検証中です。
TBD

ApacheでCGI設定を追加する。対象は、PythonとPHPだけど応用すればなんでもOK!

AWS上でRocky LinuxにApacheを入れて設定しようとしていたのですが、なんかいつもの設定と違うので設定を行いました。
毎回やるのが面倒なんですけど、記録が無いとまた忘れるので備忘録です。
とか言いながら、実際下手なサイトの内容を参考にしたら結局ダメダメで、自分のサイトの過去記事を参考にしたら出来た!ということで、再度記録し直そうと思ったわけです(^^ゞ

対象と目的

今回の対象は以下の通りです。

OS:Rocky Linux 9(あんまりOSバージョンは関係ないけど)
Apache:2.4.51(これもあんまり関係ないけど)

目的は、/var/www/html/の下でCGIが付けるようにしてしまいたいということです。
その際、PHPとかPythonもCGIとして使えるようにしてしまいたい。

Apacheの設定

Apacheの設定を追加します。
元ファイルを弄る方が良いのかも知れませんが、記録も残しておきたいなぁ~という後のことを考えた不精な考えですが、今回は設定ファイルを追加することにしました。

取り敢えず、設定ファイルを新規で作成していきます。

ファイルに以下の内容を記載します。

これだけです。
ちなみに、FollowSymLinksもついでに突っ込んでおきました。

念のため、シンタックスを確認します。

Apacheを再起動します。

これで設定は反映されました。

コマンドによるSELinux対応の設定

当然、SELinuxを切るなんて真似は致しません!
面倒ではありますが、余程のことが無い限りSELinuxを切ることは避けています。セキュリティ確保するためなんです。

対象ディレクトリに対し、コンテキストを追加します。

以上です。

意外と簡単なんですけど、滅多にやらないことなので忘れてググるわけですわ。

そして、どこかのサイトの記載ミスやら間違った設定を叩いて「動かねぇ~( ゚Д゚)」って叫ぶわけよ。

で、自分でやって記録しておくと、いつかまた自分のサイトの記録がググったら出てくるんよ(^^♪

アフィリは全然儲かっていませんが、自分で書いたサイト記事は意外と役に立ってます。
備忘録万歳\(^o^)/

GeoServerにVector Tile Extensionをインストールします。

前回インストールしたGeoServerに、Vector Tile ExtensionをインストールしてVector Tileに対応させようと思います。

※全部英語で探すのが面倒なので、メモを残しているだけです。

GeoServerのバージョンを確認する。

GeoServerのバージョンを確認します。

メニューから「GeoServerについて」をクリックします。

こんな感じで表示されます。
「バージョン 2.22-SNAPSHOT」と表示されているのが判るかと思います。
ということで、この環境は2.22なんですね。
まあ、確認方法って普通にこれなんですけどね。
初めてだと気が付かないんですよね(^^ゞ

Vector Tile Extensionを追加

プラグインですね。
ダウンロードします。

下記URLからバージョンなどを元に探します。

https://build.geoserver.org/geoserver/

私の目的とする対象は下記にありました。
https://build.geoserver.org/geoserver/main/ext-latest/

ここで、「geoserver-2.22-SNAPSHOT-vectortiles-plugin.zip」をダウンロードします。

解凍して、以下のフォルダへインストールします。
/usr/share/geoserver/webapps/geoserver/WEB-INF/lib

ということがこちらに書かれています。

https://docs.geoserver.org/latest/en/user/extensions/vectortiles/install.html

GeoServerを再起動したら、Extensionが有効になっています。

再度ログインし直すことになりますが、これで終わりです。

他にもExtensionがたくさんあるみたいです。

https://docs.geoserver.org/latest/en/user/extensions/index.html

面白そうなのがあったら適当にインストールしてみると良さそうですね。

確認方法ですが。。。。
Data→Layers→<適当なレイヤ>→Tile Cachingを開いてみると、Tile cache configurationのThe Image Formatsに以下が追加されています。

これで確認になります。

Install GeoServer on Rocky Linux 9

GeoServerをRocky Linux 9へインストールしようと思います。

インストール自体は非常に簡単ですが、たまたま事故ったのでメモを残しておきます。

事故と言いましても、たまたま最初にインストールしようしたバージョンが上手く動かなかっただけです。
バージョンを変更すると動いたので、多分、リリースでミスっていたんでしょう。

では早速始めます。

最新版を探してダウンロード

最新版は下記のURLで探すことになります。

基本的にはこちらのサイトに置かれていると思います。
https://sourceforge.net/projects/geoserver/files/GeoServer/

今回、上記のサイトから最新版をダウンロードしてインストールしたのですが、運悪くダメだったので、以下のサイトで確認しました。
https://build.geoserver.org/geoserver

結論としては、以下が最新版になると思います。
https://build.geoserver.org/geoserver/main/geoserver-main-latest-bin.zip

①はコピーが置かれているのかな?
②は本家の最新版が置かれているみたいですね。
③は最新版に紐付けされた状態が置かれている様です。

③の最新版で問題がある場合には、①や②を探して少し前のバージョンなどを探してみるのも良さそうだと感じました。

適当なディレクトリへ移動してダウンロードします。
私はこんな感じでやっています。

解凍とインストール

まずはインストール先ディレクトリを作成します。

作成したディレクトリへ先ほどダウンロードしたファイルを解凍します。

GeoServerを動かすためのユーザを作成します。

更に、解凍したディレクトリの所有権を変更します。

ファイアウォールとサービスの設定

GeoServerを公開するために、ファイアウォールの設定を行います。

サービスを登録します。
まず、サービスファイルを作成します。

中身はこんな感じです。

GeoServerを起動

GeoServerを起動します。

こんな感じですね。

動作確認

以下のURLへアクセスしてみましょう。
http://<ドメイン>:8080/geoserver
※<ドメイン>には対象サーバのドメインを指定してください。

こんな感じの画面が表示されれば、GeoServerは正常に動作しています。

デフォルトのログインIDとパスワードは以下の通りです。
ログインID:admin
パスワード:geoserver

公開された状態だと、デフォルトのIDとパスワードは危険なので、早々に変更されると良いでしょう。

基本的なインストールは以上です。
Geo Lifeをお楽しみください。

次回は、GeoServerをVector Tileに対応させます。

CentOS 9にpostgreSQL 14を入れる!postGIS 3.2も入れる!

以前に自分でインストールしたやり方を参考に、インストールを試みようとしてみたのですが、やはり少し変わったパッケージをLinuxへインストールするには何かが引っ掛かります(^^;

ということで、以下の環境にインストールを行っていきます。

OS:Rocky Linux 9
インストール対象:postgreSQL 14 + postGIS 3.2

PostgreSQL インストール

前回学んだ本家サイトからインストール方法を確認します。

https://www.postgresql.org/download/linux/redhat/

こちらのサイトにあるインストール方法を真似するだけです。

以下に提示されたコマンドを記します。

順番に説明しておきます。

リポジトリを追加

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

既存のPostgreSQLを無効にする。

インストールしていない時には不要の作業となります。
過去にPostgreSQLをインストールしている場合のも必要な作業になります。

ある意味、トランザクション対象のパッケージを維持したまま、本体だけを無効にするという感じなんでしょうかね。
#違うところで参考になりそうです。

PostgreSQLをインストール

PostgreSQLをインストールします。

インストールはこれで完了です。

起動設定

自動で起動するように設定します。

インストールとPostgreSQLの起動は完了しました。

PostGIS インストール

ここからが課題のPostGISインストール作業です。

まず、インストールしたPostgreSQLのバージョンに対応するPostGISのバージョンを下記のサイトで確認します。

https://trac.osgeo.org/postgis/wiki/UsersWikiPostgreSQLPostGIS

対応表からインストール対象のPostGISを確認します。
今回は、PostGIS 3.2を選択することにしました。

システムのリポジトリに含まれるPostGISのバージョンを確認します。

今回インストールするバージョンは、postgis32_14であることが確認出来ますので、以下のコマンドでインストールを試みます。

トランザクション関連のエラーが大量。。。ということで、問題の解決を行います。

これでインストール出来ました!

環境によって若干の違いがあるかと思いますが、参考になるかな?

以下のサイトが役に立ちました。
https://rockylinux.pkgs.org/9/rockylinux-crb-aarch64/flexiblas-netlib64-3.0.4-8.el9.aarch64.rpm.html

深くまで見ないといけないので、面倒ですが。。。

Rocky Linux 8.6 へ Redmine 5.0をインストールする。

はじめに

Rocky Linux 8.6(8.5で良いのですが。。。)へRedmine 5.0をインストールしている情報が見当たらなかったので、トライしてみることにしました。
入手のし易さからすると、Redmine 4.xをインストールする感じだったのですが、Rubyの2.7は通常メンテナンスフェーズを終了している様なので、Ruby 3.0以降を導入するのがベターと考えました。
更には、Ruby 3.0以降をサポートしているのは、Redmine 5.0以降という情報もあり、やっぱりこの選択肢を選ぶことになるな・・・という感じです。

まあ、色々と問題は出てくると思いますが、取り敢えず進めて行こうと思います。

彼是5年程前にRedmineをインストールした記録があります。
https://tech.godpress.net/?p=610
インターネット上で確認出来る資料と、過去を思い起こしながらインストールを進めたいと思います。

環境確認

今回インストールを行うサーバは、既に別の作業を進めていたこともあり、以下の構成が既に構成されています。

OS:Rocky Linux 8.6
DB:Mariadb 10.3

epel-releaseリポジトリはインストール済みでした。

一応、コマンドで確認しておきます。
# mysql –version
mysql Ver 15.1 Distrib 10.3.32-MariaDB, for Linux (x86_64) using readline 5.1

他に必要そうなものは入っていなかったみたいです。

インストール

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

データベースのインストール方法については割愛します。

それでは必要なパッケージ類を問答無用でインストールしてしまいます。

ここまでは順調でしたが。。。。フォントのインストールが上手く行きません!?

色々探してみて、こんな感じでインストールします。

Rubyインストール(自己責任で!)
#あまりここの部分は信用しないように(^^;

さて、ここからは私の勘です!間違っていたらご容赦ください。
ちなみに、私はVM上に環境構築を行っています。
自信もないので、知れっとスナップショットを作成して、Rubyインストール前の環境を保存しておきます。

何故この様なことをするかと言いますと、他のサイトで記載されている方法はrpmを直接インストールする方法が取られています。
私は、パッケージのバージョン管理を極力省くためにdnfでのインストールを行う様にしています。(好みの問題ですね)
rpmでインストールした場合でもdnfでインストールの確認などを行えることは重々承知しているのですが、リポジトリとして管理されているかというと、そうではないでしょう(想像)。
ということは、更新があったことを知る術が無い。
後々の構成管理に矛盾が生じてしまうのではないか?

ということで、出来るだけdnfでインストールを行いたいと思っています。

今回、Rubyのサポート状況などを気にしていることもあり、出来れば3.0以降を導入したい訳ですが、果たして3.0以降を素直にインストールさせてくれるでしょうか?

結論としてRubyのバージョンは2.5.9と無残にもダメでした。
何かリポジトリを追加して・・・とか探していたのですが、これです!

インストール対象のモジュール一覧を確認出来ます。
2.5がデフォルトになっている様ですが、3.0の存在も確認出来ました!

では!

再度確認してみると。。。

ということで、3.0がenableになりましたね。
これで通常と同じようにインストールを行うと3.0をインストールすることが出来ます。

いや~知らんかった(^^ゞ
まだまだ修行が足りませんねw

実はここで悩みました。
他のサイトでインストールしている手順と異なるので、どこまで進んだのか解らなくなってしまいました(^^ゞ
取り敢えず、Rubyがインストールされたことを確認します。

おぉ~Ruby 3.0.2がインストールされています!
多分、この辺りから再開かな?ということで、bundlerをインストールしてみます。

なんだろう。。。もやもやする。。。

でも、取り敢えず進めます。

データベースの設定

データベース(Mariadb)にRedmine用のユーザとデータベースを作成します。

リアルタイムOS上でmsやμs単位でプログラムを組んできた人間にとって、データベースなんてプログラムの足を引っ張る近寄るべからずな存在であり、使えたら良いのにな~という夢の存在でもありましたが、やはり苦手ですw

Redmine本体のインストール

ここまでは全て準備作業でした。
やっとここからRedmineの本体をインストールします。
なんかお手軽インストールの方法もあるようなのですが、最新版ではまだサポートされている気配が無かったので、地道にインストール作業を続けています。
大抵、こういう時は何かの罠に嵌るんですよねぇ~
Linuxのインストールでは毎度のことですが、予定が狂う(TT)

泣き言はやってから!ということで進めます。
以前はSVNを使ってインストールを行いましたが、それも良いのですが、良かったのかどうなのか?というところもありますので、今回はダウンロードで素直に挑んでみたいと思います。

適当なディレクトリへ移動して、パッケージをダウンロードします。
本家からダウロードします。
こちらで対象を確認します。

ここでエラーが発生しました。
どうも幾つかのパッケージがインストールされていなかったようです。

多分、これで実行できるはずですが、もしそれでも上手く行かない場合は以下も試してみてください。(多分、関係ないと思いますが・・・)

再度実行します。

こんな感じで上手くインストール出来た様です。

セッションストア秘密鍵の生成を行います。

データベースへ接続するための設定を行います。

config/database.example.ymlをコピーしてconfig/database.ymlを作成します。
以下の示す様に、必要な項目を変更します。

以下のコマンドを実行すると、データベース上にテーブルを作成してくれます。

更に以下のコマンドを実行してデフォルトデータをデータベースへ登録します。

次に、passengerをインストールします。

しばらく時間が掛かります。
10分以上掛かったと思います。
次に、このコマンドで設定内容を確認します。

ここで表示される内容を記録しておきます。
その上で、Apacheの設定を追加します。

概ねこんな感じでOKですが、サイトによって記載が異なるので参考までに留めてください。

ディレクトリの権限を変更します。

ここで、Aapcheを再起動?起動させればOKです。
念のために、フルセットで行っておきますね。

これだけやっておけばApacheの起動についてはOKでしょう!

ここで、このシステムをRedmineだけに使おうと思っていないので、少し変更してしまいます。

上記で既に記載していますが、/etc/httpd/conf.d/redmine.confに以下の設定を追加します。これでアクセス可能となります。

他の環境ではここまでで行けるはずなのですが、私の環境では上手く行きませんでした。
こんな感じでエラーが出力されていました。

回避方法を記載しておきます。

どうもstrscanが古い様です。
新規にインストールしているところなのに不自然ではありますが、アップデートすることで問題の解決に至りました。不思議です。

再度アクセスすると画面が表示出来る様になりました。

このアップデートをする前は以下のコマンドを実行してブラウザでアクセスすると動作を確認出来ました。

こちらも、他のサイトでは以下の様になっていましたが、上記で動作を確認することが出来ました。

自動でwebrickを認識する様で、必要ないみたいです。

サイトにアクセスしてからのID/パスワードはデフォルトで以下になります。

ID:admin
パスワード:admin

結構嵌りました。
もうしばらくすれば、安定したインストールを方法を記載したサイトが出てくると思います。
こちらのサイトは参考までに留めるのが良いかも知れませんね。

Mattermost 初期設定

はじめに

前回、Mattermostのインストールを完了しました。
その後、初期設定を行い使用できる状態まで進める過程を記していません。
ログイン後の各種設定について記載していこうと思います。

日本語化

最初に日本語化を行います。

メニュー画面の左上のメニューアイコンをクリックします。

メニュー画面

System Consoleを選択します。

Localizationを選択します。

各項目で「日本語」を設定して「Save」します。

Channel画面に戻って、次に画面右上の「⚙」アンコンをクリックしてアカウント設定を行います。

Display→Languageで「日本語」を選択し「Save」します。

これで日本語化が完了します。

メール設定

画面上部に「プレビューモード: 電子メール通知は設定されていません。」の記載があることに気が付いていると思います。
初期設定でも、メールでユーザを追加するとかアナウンスが流れるわりに、メールの設定が行われていないということに違和感を覚える方もいらっしゃるのではないでしょうか?
インストールガイドを眺めてみても、特にインストールの最中にメールの設定について記載されている項目はありません。
インストール完了だけではメールが使える状態になっていないということですね。

ユーザを招待する時やパスワードを忘れた時など、メールの通知が出来ないと色々と不便でなりません。
メールの設定は必ずやっておきましょう!

画面左上のメニューアイコンから「システムコンソール(System Console)」から作業を進めます。

メニュー画面

システムコンソールから「SMTP」を指定すると以下の画面が表示される。

SMTP設定

各設定項目については、自身の環境に合わせて設定する。
画面の少し下に「接続をテストする」というボタンがあり、設定を確認することができるようになっているのだが、ちょっと癖がある。

この画面には落とし穴がある。
「接続をテストする」ことが出来るのは、この画面の「保存する」を行ってから接続のテストが可能になる。
つまり、「保存する」を行わないで「接続をテストする」と、保存前の状態でテストされる。

これで随分時間を消耗してしまった(TT)

通知設定

システムコンソール→サイト設定→通知で通知の設定を行います。

通知設定(1)
通知設定(2)

電子メール通知を有効にして、メールによる通知を有効にします。
画面の指示に従って設定を行うとともに、自身の環境に合わせて設定を行います。

Rocky Linux 8.5 へMattermostをインストールする。

はじめに

久しぶりにMattermostをインストールしようと思ったら色々と変わっていたので、インストール方法をメモることにした。

対象環境

OS:Rocky Linux 8.5
データベース:mariadb 10.3

準備

Rocky Linuxは基本的にデフォルト状態でインストールし、以下の作業を実施済み。

mariadb インストール

mariadb をインストールします。
ザクっとコマンドだけ以下に記します。
細かいことは適当にやっちゃいます。

DB作成

こちらもザクっと書いちゃいます。

ザクっと行き過ぎ?
取り敢えず、ユーザ作って、データベース作って、アクセス許可設定してって感じです。

Mattermost ダウンロード

なんでこのメモ。。。記事を書き始めたかというと、コレなんです!
ダウンロードが変わっちゃっててよく分んなくなってた。

やりたいことは、インストールモジュールをダウンロードしたいのですが、どこにあるか分からなかった。
取り敢えず、ダウンロードするフォルダを準備します。
どこか適当な作業用のフォルダを作成して、そのフォルダへ移動しておきます。

準備が出来たので、ダウンロード対象を探します。
まずはブラウザこのURLを参照する。
https://mattermost.com/deploy/

https://mattermost.com/deploy/

下の方にスクロールすると、こんな画面があるので、「Binary」タブを選択する。

Docker用

すると、こんな画面になる。

Binary Download

URLをコピって、以下のコマンドを実行する。

※バージョン番号はダウンロードするタイミングで変わっていると思われるので注意してください。

せっかくなので、先のホームページで「Installation Guide >>」とその後の手順が示されているっぽいので覗いてみます。

インストールガイド

どっかの(ここも含めて)サイトの内容を信じるよりも、インストールガイドに従って作業を進める方が確実ですね♪

Mattermost インストール

インストールガイドに書かれている内容を素直に信じて作業を進めます!
私のサイトに書いている内容は、既に古い可能性があるので、見比べながら作業を進める方が良いでしょう。
また、私はrootユーザで作業を進めているので、sudoコマンドを省略しています。

さて、進めます。
まずは先程ダウンロードしたファイルを解凍します。

# tar -xvzf mattermost*.gz

本体を移動します。

ストレージディレクトリを作成します。

※ストレージディレクトリには、ユーザーがMattermostに投稿するすべてのファイルと画像が含まれるため、アップロードされるファイルと画像の予想数を保持するのに十分な大きさのドライブがあることを確認する必要があります。

いざとなったら、シンボリックリンクで余裕のあるディレクトリへ保存することも考えた方が良いかも知れませんね。

ここまでで本体のインストールは一旦終わったようです。

Mattermost セッティング

mattermostのサービスを実行するために、ユーザとグループを作成し所有権と権限を設定します。

よく失敗する私は、設定ファイルを変更する前にバックアップを作成します。

設定ファイルを弄って動かなくなって、後戻りできなくなってしまうことがよくあるのでやっているだけで、自信のある人はそんなことしないで進んでください。

設定ファイルを編集します。

滅茶苦茶余談ですが。。。。jqというjsonを扱うコマンドがあります。
jsonファイルをコマンドライン上で確認や編集を行う際にちょっと便利かな?と思っています。まだ使ったことは無いのですが、気になるコマンドです。
下記に本家サイトがあります。
https://stedolan.github.io/jq/
更新が滞っているみたいに見えるのがちょっと気になりますが。。。ご参考までに。

変更内容は以下の通りです。

  • SqlSetteings -> DriverName を”mysql”に変更
  • SqlSetteings -> DataSource を “mmuser:<mmuser-password>@tcp(<host-name-or-IP>:3306)/mattermost?charset=utf8mb4,utf8&writeTimeout=30s"

<mmuser-password>はDBユーザ作成時に設定したパスワードを指定してください。
<host-name-or-IP>は「localhost」でも大丈夫です。
ちょっとコメントします。
DataSourceの最後の方にある「utf8&writeTimeout=30s」について、「&」の文字はmattermostを起動すると勝手に「\u0026」に置き換わります。
他のサイトで異る記載があり、それも有効だとは思うのですが、本家のインストールガイドに従ってやってみても良いと思われます。

実際のサンプルを以下に記します。

起動確認

本番起動を行う前に、正しく起動できるか確認してみます。

ごちゃごちゃとログが出力されます。
強制終了が発生しなければ一応動いているみたいです。

環境が許すのであれば、firewalldをストップさせて確認しようと思います。

この後、以下のURLをブラウザで起動して確認してみます。

http://localhost:8065/

サインアップ用の画面が表示されればなんとなく安心できます。
画面が表示されない場合は、「http」になっているか確認してみてください。
それでもダメな時は、何か間違っている可能性があります。がんばれ!

firewalldの設定

標準の環境だと、当然firewalldが動作していて、対象のポートはアクセスできません。
解放する必要がありますね。
解放せずとも、アクセス出来るようにしなければなりません。
後でReverseProxy使ったりして、通常のHTTP(80)ポートとかHTTPS(SSL/TLS:443)とかでアクセスしたくなりますが、それは後程。。。

取り敢えず、一旦は8065ポートを解放してアクセスできることを確認します。
基本が出来ていないとトラブルの原因が何か分からなくなりますからw

先程、firewallldを止めてしまった場合には以下のコマンドで再起動しておきます。

以下のコマンドで8065ポートを解放します。

再度ブラウザでアクセスすると正常にアクセスできることを確認できるとおもいます。

systemdによる自動起動設定

「起動確認」で起動したmattermostはCTRL+Cで終了させます。

systemdによる自動起動の設定を行います。

まず、serviceファイルを作成します。

記載内容は以下の通りです。

[Unit]セクションのAfterとBindsToの項目をmariadb.serviceに変更しています。
インストールガイドでmysql用の記載として、それぞれをmysql.serviceにしていますが、それでも問題ありません。

それでは起動してみましょう!

いきなり失敗しました!
多分、ここで躓きます(TT)
内容を確認します。

まあ、ざっくりと言うと、SELinuxのチェックに引っ掛かって止まっています。
よくある話。。。なのですが、面倒なんですよねぇ〜(TT)

取り敢えず、表示された内容に記載されているコマンドを打ち込んで対応を行います。

適当なディレクトリに移動してから以下のコマンドを実行します。

再度実行してみますが。。。。

またしてもエラーが発生して留まってしまいます。
でも先程とは少し異るエラーの様で、対策が異なっています。
ログに従って以下のコマンドを実行します。

あれ?返ってこない。。。長い。。。という状態が続きます。
止めちゃおうか?って思います。
でも待ちます。
設定を反映するのに時間が掛かっています。
ちょっと休憩するくらい待ちました。

コマンドの終了を待って実行します。

今度は成功した様です。

最後に自動起動を設定します。

以上でMattermostのインストールと設定は完了しました。

ここから実際にチームを作成して利用できる環境設定を行います。
何故か私の調べた限りでその設定についての記載が成されたサイトは見つからず、私自身もメモを取る前に進めてしまいました。
またの機会に説明を記したいと思います。
ということで、サイトへアクセスして、初期設定を行います。

http://ドメイン:8065/

ログイン完了後に幾つかの設定を行いますので、その設定については別途記載したいと思います。