「未分類」カテゴリーアーカイブ

VMware Workstation ProでVMをvmrunコマンドを使ってみた。

VMware Workstation ProやPlayerをインストールして普通に使っていたのですが、コマンドベースで何か出来ないかな?ということで、少し試してみました。

ホスト側で仮想マシン(VM)に対して何らかの操作をする場合には、vmrunコマンドを使います。

ホスト側で試したコマンド

現在稼働中の仮想マシンリスト

現在稼働中のVM一覧を確認します。

# vmrun list

VMの.vmxファイルのフルパスが一覧として出力されます。
ホスト側でVMに対して何らかの操作を行う場合、このリストで表示された.vmxファイルへのフルパスが必要となります。

VMのIPアドレスを確認

VMのIPアドレスを確認することができます。
VMに接続しようと思ったんだけど、IPアドレスが分からない!?という時に便利なコマンドです。

# vmrun getGuestIPAddress <.vmx フルパス>

このコマンドで分かるのは、メイン(という表現が正しいのか?)のIPアドレスだけです。
ソケットが2つ以上ある場合、最初にヒットしたIPアドレスだけ表示されるようです。

ホストからアクセスできるIPアドレスであればVMにログインしてから他のネットワーク設定を確認する必要があります。
VM側でこんなコマンドを実行したら分かるかな?

# ip a  | greg inet

中途半端ですが、ここまでとします。
また気が向いたら更新します。

GDAL/OGR インストール:Rocky Linux 8/9

最近、PostGIS環境作ったりすることはあったのですが、オーソドックスにGDALだけ入れたい!ということで、久しぶりにGDAL/OGRのインストールをしようと思ったら、サクッとエラーが。。。

# dnf install gdal gdal-devel
Last metadata expiration check: 0:22:02 ago on Sat 11 Feb 2023 11:49:32 PM JST.
Error:
 Problem 1: conflicting requests
  - nothing provides libdap.so.25()(64bit) needed by gdal-3.0.4-11.el8.x86_64
  - nothing provides libdapclient.so.6()(64bit) needed by gdal-3.0.4-11.el8.x86_64
  - nothing provides libdapserver.so.7()(64bit) needed by gdal-3.0.4-11.el8.x86_64
 Problem 2: package gdal-devel-3.0.4-11.el8.x86_64 requires libgdal.so.26()(64bit), but none of the providers can be installed
  - package gdal-devel-3.0.4-11.el8.x86_64 requires gdal-libs(x86-64) = 3.0.4-11.el8, but none of the providers can be installed
  - conflicting requests
  - nothing provides libdap.so.25()(64bit) needed by gdal-libs-3.0.4-11.el8.x86_64
  - nothing provides libdapclient.so.6()(64bit) needed by gdal-libs-3.0.4-11.el8.x86_64
  - nothing provides libdapserver.so.7()(64bit) needed by gdal-libs-3.0.4-11.el8.x86_64
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

どっかのサイトでPowerToolsリポジトリを有効にすればって書いてあったので試してみる。。。

# dnf install --enablerepo=PowerTools gdal
Error: Unknown repo: 'PowerTools'

無いって言われるし・・・
リポジトリの設定を確認してみると。。。。あるんだけど。。。
/etc/yum.repos.d/Rocky-PowerTools.repo

# Rocky-PowerTools.repo
#
# The mirrorlist system uses the connecting IP address of the client and the
# update status of each mirror to pick current mirrors that are geographically
# close to the client.  You should use this for Rocky updates unless you are
# manually picking other mirrors.
#
# If the mirrorlist does not work for you, you can try the commented out
# baseurl line instead.

[powertools]
name=Rocky Linux $releasever - PowerTools
mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=PowerTools-$releasever
#baseurl=http://dl.rockylinux.org/$contentdir/$releasever/PowerTools/$basearch/os/
gpgcheck=1
enabled=0
countme=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial

全部小文字ですね(^^ゞ
※下記のコマンドでPowerToolsリポジトリを有効にしても良いのですが、これからも必要そうなら、enable=1にしておくと楽だと思います。

参考にしたサイトでは、大文字使ってたんですけど。。。仕方が無いですね。
ついでに、proj-develも入れておきます。
GDALを入れると、projは入ってくれるのですがproj-develまでは入ってくれません。
今回、ちょっと必要になりそうなのでついでに入れておきました。

# dnf install --enablerepo=powertools gdal gdal-devel proj proj-devel
Last metadata expiration check: 0:21:21 ago on Sun 12 Feb 2023 12:01:25 AM JST.
Dependencies resolved.
===============================================================================================================
 Package                    Architecture  Version                                      Repository         Size
===============================================================================================================
Installing:
 gdal                       x86_64        3.0.4-11.el8                                 epel              269 k
 gdal-devel                 x86_64        3.0.4-11.el8                                 epel              203 k
 proj                       x86_64        6.3.2-4.el8                                  epel              2.0 M
 proj-devel                 x86_64        6.3.2-4.el8                                  epel               89 k
Installing dependencies:
 SuperLU                    x86_64        5.2.0-7.el8                                  powertools        190 k
 armadillo                  x86_64        10.8.2-1.el8                                 epel               44 k
 arpack                     x86_64        3.7.0-1.el8                                  epel              194 k
 atlas                      x86_64        3.10.3-8.el8.1                               baseos            6.5 M
 blas                       x86_64        3.8.0-8.el8                                  appstream         426 k
 cfitsio                    x86_64        3.47-1.el8                                   epel              577 k
 cmake-filesystem           x86_64        3.20.2-4.el8                                 appstream          43 k
 freexl                     x86_64        1.0.6-4.el8                                  epel               34 k
 gdal-libs                  x86_64        3.0.4-11.el8                                 epel              7.5 M
 geos                       x86_64        3.7.2-1.el8                                  epel              630 k
 giflib                     x86_64        5.1.4-3.el8                                  appstream          50 k
 gpsbabel                   x86_64        1.6.0-3.el8                                  epel              964 k
 hdf                        x86_64        4.2.14-5.el8                                 epel              651 k
 hdf5                       x86_64        1.10.5-4.el8                                 epel              2.1 M
 lapack                     x86_64        3.8.0-8.el8                                  appstream         8.6 M
 libaec                     x86_64        1.0.2-3.el8                                  powertools         38 k
 libbsd                     x86_64        0.11.7-2.el8                                 epel              120 k
 libdap                     x86_64        3.19.1-2.el8                                 powertools        680 k
 libgeotiff                 x86_64        1.5.1-1.el8                                  epel               99 k
 libgfortran                x86_64        8.5.0-16.el8_7                               baseos            643 k
 libgta                     x86_64        1.2.1-1.el8                                  epel               34 k
 libkml                     x86_64        1.3.0-24.el8                                 epel              379 k
 libmd                      x86_64        1.0.4-2.el8                                  epel               37 k
 libpq                      x86_64        13.5-1.el8                                   appstream         197 k
 libquadmath                x86_64        8.5.0-16.el8_7                               baseos            171 k
 libspatialite              x86_64        5.0.0-1.el8                                  epel              3.3 M
 libusb                     x86_64        1:0.1.5-12.el8                               baseos             41 k
 minizip                    x86_64        2.8.9-2.el8                                  epel              124 k
 netcdf                     x86_64        4.7.0-2.el8                                  epel              647 k
 ogdi                       x86_64        4.1.0-1.el8                                  epel              241 k
 openblas                   x86_64        0.3.15-4.el8                                 appstream         4.7 M
 openblas-openmp            x86_64        0.3.15-4.el8                                 powertools        4.9 M
 openblas-threads           x86_64        0.3.15-4.el8                                 appstream         4.9 M
 openblas-threads64_        x86_64        0.3.15-4.el8                                 powertools        4.8 M
 pcre2-utf16                x86_64        10.32-3.el8_6                                baseos            228 k
 poppler                    x86_64        20.11.0-5.el8                                appstream         1.1 M
 poppler-data               noarch        0.4.9-1.el8                                  appstream         2.1 M
 proj-datumgrid             noarch        1.8-6.3.2.4.el8                              epel              5.4 M
 python3-pip                noarch        9.0.3-22.el8.rocky.0                         appstream          19 k
 python3-setuptools         noarch        39.2.0-6.el8                                 baseos            162 k
 python36                   x86_64        3.6.8-38.module+el8.5.0+671+195e4563         appstream          18 k
 qt5-qtbase                 x86_64        5.15.3-1.el8                                 appstream         3.6 M
 qt5-qtbase-common          noarch        5.15.3-1.el8                                 appstream          40 k
 shapelib                   x86_64        1.5.0-1.el8                                  epel               80 k
 unixODBC                   x86_64        2.3.7-1.el8                                  appstream         453 k
 uriparser                  x86_64        0.9.7-1.el8                                  epel               70 k
 xerces-c                   x86_64        3.2.3-5.el8                                  epel              982 k
Enabling module streams:
 python36                                 3.6

Transaction Summary
===============================================================================================================
Install  51 Packages

Total download size: 71 M
Installed size: 309 M
Is this ok [y/N]:

後は、Yesということでインストール出来ると思います。

しかし、PowerToolsを常に許可しておいた方が良さそうですね。

ちなみに、インストール確認は以下で行えます。

# gdalinfo --version
GDAL 3.0.4, released 2020/01/28

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

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

# vi /etc/httpd/conf.d/cgi_enabled.conf

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

# CGI Script Enabled settings
<Directory "/var/www/html/">
        Options +ExecCGI +FollowSymLinks
        AddHandler cgi-script .cgi .py .php
</Directory>

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

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

# httpd -t
Syntax OK

Apacheを再起動します。

# systemctl restart httpd

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

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

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

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

# semanage fcontext -a -t httpd_sys_script_exec_t "/var/www/html(/.*)?"
# restorecon -R /var/www/html

以上です。

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

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

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

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

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/

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

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

sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo dnf -qy module disable postgresql
sudo dnf install -y postgresql14-server
sudo /usr/pgsql-14/bin/postgresql-14-setup initdb
sudo systemctl enable postgresql-14
sudo systemctl start postgresql-14

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

リポジトリを追加

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

dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm

既存のPostgreSQLを無効にする。

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

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

dnf -qy module disable postgresql

PostgreSQLをインストール

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

dnf install -y postgresql14-server

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

起動設定

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

/usr/pgsql-14/bin/postgresql-14-setup initdb
systemctl enable postgresql-14
systemctl start postgresql-14

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

PostGIS インストール

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

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

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

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

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

dnf list | grep -i postgis
postgis32_13.x86_64                                       3.2.2-1.rhel9                                     pgdg13
postgis32_13-client.x86_64                                3.2.2-1.rhel9                                     pgdg13
postgis32_13-devel.x86_64                                 3.2.2-1.rhel9                                     pgdg13
postgis32_13-docs.x86_64                                  3.2.2-1.rhel9                                     pgdg13
postgis32_13-gui.x86_64                                   3.2.2-1.rhel9                                     pgdg13
postgis32_13-utils.x86_64                                 3.2.2-1.rhel9                                     pgdg13
postgis32_14.x86_64                                       3.2.2-1.rhel9                                     pgdg14
postgis32_14-client.x86_64                                3.2.2-1.rhel9                                     pgdg14
postgis32_14-devel.x86_64                                 3.2.2-1.rhel9                                     pgdg14
postgis32_14-docs.x86_64                                  3.2.2-1.rhel9                                     pgdg14
postgis32_14-gui.x86_64                                   3.2.2-1.rhel9                                     pgdg14
postgis32_14-utils.x86_64                                 3.2.2-1.rhel9                                     pgdg14

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

dnf install postgis32_14

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

dnf install epel-release
dnf --enablerepo=crb install flexiblas-netlib64
dnf install postgis32_14

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

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

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

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

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は基本的にデフォルト状態でインストールし、以下の作業を実施済み。

# dnf update
# dnf install epel-release
# dnf install elrepo-release

mariadb インストール

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

# dnf install mariadb-server
# systemctl start mariadb
# systemctl enable mariadb
# mysql_secure_installation

DB作成

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

# mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 17
Server version: 10.3.32-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> create user 'mmuser'@'%' identified by 'xxxxxx';
MariaDB [(none)]> create database mattermost;
MariaDB [(none)]> grant all privileges on mattermost.* to  'mmuser'@'%';

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

Mattermost ダウンロード

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

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

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

https://mattermost.com/deploy/

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

Docker用

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

Binary Download

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

# wget https://releases.mattermost.com/6.7.0/mattermost-6.7.0-linux-amd64.tar.gz

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

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

インストールガイド

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

Mattermost インストール

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

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

# tar -xvzf mattermost*.gz

本体を移動します。

# mv mattermost /opt

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

# mkdir /opt/mattermost/data

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

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

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

Mattermost セッティング

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

# useradd --system --user-group mattermost
# chown -R mattermost:mattermost /opt/mattermost
# chmod -R g+w /opt/mattermost

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

# cd /opt/mattermost/config/
# cp -p config.json config.json_org

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

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

# vi config.json

滅茶苦茶余談ですが。。。。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」に置き換わります。
他のサイトで異る記載があり、それも有効だとは思うのですが、本家のインストールガイドに従ってやってみても良いと思われます。

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

    "SqlSettings": {
        "DriverName": "mysql",
        "DataSource": "mmuser:xxxxxx@tcp(localhost:3306)/mattermost?charset=utf8mb4,utf8\u0026writeTimeout=30s",

起動確認

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

# cd /opt/mattermost
# sudo -u mattermost bin/mattermost

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

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

# systemctl stop firewalld

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

http://localhost:8065/

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

firewalldの設定

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

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

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

# systemctl start firewalld

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

# firewall-cmd --add-port=8065/tcp --permanent 
# firewall-cmd --reload 

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

systemdによる自動起動設定

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

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

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

# touch /lib/systemd/system/mattermost.service
# cd /lib/systemd/system/
# vi mattermost.service

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

[Unit]
Description=Mattermost
After=network.target
After=mariadb.service
BindsTo=mariadb.service
[Service]
Type=notify
ExecStart=/opt/mattermost/bin/mattermost
TimeoutStartSec=3600
KillMode=mixed
Restart=always
RestartSec=10
WorkingDirectory=/opt/mattermost
User=mattermost
Group=mattermost
LimitNOFILE=49152
[Install]
WantedBy=multi-user.target

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

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

# systemctl daemon-reload
# systemctl start mattermost.service
Job for mattermost.service failed because the control process exited with error code.
See "systemctl status mattermost.service" and "journalctl -xe" for details.

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

# journalctl -xe
-- Defined-By: systemd
-- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit mattermost.service has failed.
-- 
-- The result is failed.
 5月 28 06:07:39 localhost.localdomain setroubleshoot[14220]: AnalyzeThread.run(): Cancel pending alarm
 5月 28 06:07:39 localhost.localdomain setroubleshoot[14220]: SELinux is preventing /usr/lib/systemd/systemd from execute access on t>
 5月 28 06:07:39 localhost.localdomain setroubleshoot[14220]: SELinux is preventing /usr/lib/systemd/systemd from execute access on t>
                                                               
                                                               *****  Plugin catchall (100. confidence) suggests   ******************>
                                                               
                                                               If you believe that systemd should be allowed execute access on the ma>
                                                               Then you should report this as a bug.
                                                               You can generate a local policy module to allow this access.
                                                               Do
                                                               allow this access for now by executing:
                                                               # ausearch -c '(ttermost)' --raw | audit2allow -M my-ttermost
                                                               # semodule -X 300 -i my-ttermost.pp
                                                               
 5月 28 06:07:39 localhost.localdomain setroubleshoot[14220]: AnalyzeThread.run(): Set alarm timeout to 10
 5月 28 06:07:42 localhost.localdomain org.gnome.Shell.desktop[6472]: Window manager warning: last_user_time (10454099) is greater th>
 5月 28 06:07:42 localhost.localdomain org.gnome.Shell.desktop[6472]: Window manager warning: W3 appears to be one of the offending w>

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

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

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

# ausearch -c '(ttermost)' --raw | audit2allow -M my-ttermost
# semodule -X 300 -i my-ttermost.pp 

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

# systemctl start mattermost
Job for mattermost.service failed because the control process exited with error code.
See "systemctl status mattermost.service" and "journalctl -xe" for details.
[root@localhost ~]# journalctl -xe
 5月 28 06:15:58 localhost.localdomain dbus-daemon[934]: [system] Successfully activated service 'org.fedoraproject.SetroubleshootPrivileged'
 5月 28 06:15:59 localhost.localdomain setroubleshoot[15253]: SELinux is preventing /usr/lib/systemd/systemd from 'read, open' accesses on the file /opt/mattermost/bin/mattermost. For complete SELinux >
 5月 28 06:15:59 localhost.localdomain setroubleshoot[15253]: SELinux is preventing /usr/lib/systemd/systemd from 'read, open' accesses on the file /opt/mattermost/bin/mattermost.
                                                               
                                                               *****  Plugin restorecon (99.5 confidence) suggests   ************************
                                                               
                                                               If you want to fix the label. 
                                                               /opt/mattermost/bin/mattermost default label should be bin_t.
                                                               Then you can run restorecon. The access attempt may have been stopped due to insufficient permissions to access a parent directory in whic>
                                                               Do
                                                               # /sbin/restorecon -v /opt/mattermost/bin/mattermost
                                                               
                                                               *****  Plugin catchall (1.49 confidence) suggests   **************************
                                                               
                                                               If you believe that systemd should be allowed read open access on the mattermost file by default.
                                                               Then you should report this as a bug.
                                                               You can generate a local policy module to allow this access.
                                                               Do
                                                               allow this access for now by executing:
                                                               # ausearch -c '(ttermost)' --raw | audit2allow -M my-ttermost
                                                               # semodule -X 300 -i my-ttermost.pp

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

# /sbin/restorecon -v /opt/mattermost/bin/mattermost

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

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

# systemctl start mattermost.service

今度は成功した様です。

# systemctl status mattermost.service 
● mattermost.service - Mattermost
   Loaded: loaded (/usr/lib/systemd/system/mattermost.service; disabled; vendor preset: disabled)
   Active: active (running) since Sat 2022-05-28 06:17:38 JST; 19s ago
 Main PID: 15595 (mattermost)
    Tasks: 40 (limit: 4605)
   Memory: 99.4M
   CGroup: /system.slice/mattermost.service
           ├─15595 /opt/mattermost/bin/mattermost
           ├─15616 plugins/com.mattermost.nps/server/dist/plugin-linux-amd64
           ├─15624 plugins/com.mattermost.plugin-channel-export/server/dist/plugin-linux-amd64
           ├─15638 plugins/playbooks/server/dist/plugin-linux-amd64
           └─15646 plugins/focalboard/server/dist/plugin-linux-amd64

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

# systemctl enable mattermost.service 

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

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

http://ドメイン:8065/

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

QGIS 近くの地物属性を取得する。

この記事は備忘録のためのメモです。
説明が煩雑になっていますが、お許しください。

家(ポイント)から最も近いコンビニを探したい。
ルート検索と絡めると更に複雑になるので、取り敢えずは直線距離で探してみようと思います。

今回はクラスメートの家(複数ポイント)からそれぞれ最も直線距離で近くにあるコンビニの名前と住所を持ってこようと思います。

QGISのツールボックス→ベクタ一般→属性の最近防結合を開きます。

入力レイヤに家レイヤを指定します。
第2の入力レイヤにコンビニレイヤを指定します。
第2の入力レイヤからコピーする属性を指定します。
出力レイヤを指定します。
実行すると、最も近いコンビニの情報が家レイヤの属性データとして追加されます。

QGIS 次の地物の属性データを取り出す。(フィールド計算機)

すぐに忘れるので備忘録です。
QGISでフィールド計算機を使った計算を行う際に、カレント地物(feature)の属性情報(attribute)は直接使えますが、次の地物の属性情報を使おうとしたい時があります。
a[$id+1]とかしたいのですが、受け付けてくれませんw

計算式を示します。

attribute(get_feature_by_id(@layer,$id+1),’name’)

※nameには、属性名が入ります。

以下にそれぞれの関数のコーリングシーケンスを記載します。

【attirute】
 ・現在の地物の属性値を取り出す場合
  attribute(attribute_name)
  return : 属性値

 ・指定された地物の属性情報を取り出す場合
  attribute(feature,attribute_name)
  return:属性値

【get_feature_by_id】
 get_feature_by_id(layer,feature_id)
 return:layerでとIDで指定された地物(feature)

この辺りは、QGISの日本語翻訳とシステム上で使われる言葉(英語)が入り混じって解り難くなってしまっているところかも知れませんね。

サンプルでは、get_feature_by_idで@layerを指定しています。カレントレイヤが指定されます。
次に、$id+1でカレントID+1つまり次のIDを指定しています。
これで、次に地物のfeatureが返されます。

attribute関数で指定するfeatureの特定が成されます。
さらに、欲しい属性名をしていします。
「”(ダブルコーテーション)」ではなく、「’(シングルコーテーション)」で括ることで、文字列で属性名を指定しています。
「”」だと、属性そのものを指定してしまうというところに注意が必要です。

意外と、この辺りの記載が無くて、調べるのに一苦労しました。
たまにしかやらないから、いつも忘れてしまうんですよね(^^ゞ

次からはこのメモが役に立ってくれることを期待しますw

QGIS 複数の線を複数の線で分割する

タイトルが解り難い!
複数のPloylineを複数のPolylineで分割したいと思ったのですが、QGISのプロセシングツール→ベクタオーバーレイ→線で分割でやろうと思ったら、出来ないなぁ?なんでだろう?

問題の説明をします。

赤のレイヤと青のレイヤがあり、青のレイヤにある線分を赤の線分で分割しようとしました。

意外と忘れてしまうのですが、シングルパートになっていると上手くできないことがあります。
2線分までは対応しているのですが、3線分以上だと分割してくれないみたいです。(実際には同じ方法で分割出来るのですが、少し問題があります。)

結論は、赤のレイヤをマルチパートレイヤに変換します。
これで後は同じように線を分割することが出来ます。

分割対象(青)のレイヤはマルチパートにしなくても良いと思います。

WebでFileBrowser使ってみたら嵌った。

Webサービスとしてファイル一覧とか見れるようにしたいなぁ。
この時間、ちょっと地が出るかも知れません。

さて、OSS色々探してみて、これ使えるやん♪ということで、早速インストールして使ってみたんですけど・・・なかなか良いんですよね。

使うだけなら・・・・

で、いつの間にかインストール方法忘れかけてる実態に気が付いて、インストール方法探してみたら・・・

ここ見て
https://filebrowser.org/installation

そのまんまです。

curl -fsSL https://raw.githubusercontent.com/filebrowser/get/master/get.sh | bash
filebrowser -r /path/to/your/files

これで起動まで終わりです。

-a オプションでアドレス指定出来ます。
-p オプションでポート指定出来ます。

デフォルトの設定は以下のコマンドで確認出来ます。

filebrowser config cat

デフォルトのIDとパスワードは以下になります。

Username : admin
Password:admin

ユーザの追加とかは、以下のURLで設定します。

http://127.0.0.1:8080/

ここまでは、他のサイトでも紹介されてるんじゃないかな?

嵌ったのはこれ!

起動してみると、こんなメッセージが出るんです。

No config file used

でもきちんと動いてるんです。

参考にさせて頂いたのはこちらのサイトです。
https://ficus-forum.myvnc.com/t/topic/278

コマンドラインで動かすだけなら、これで全然OKなんです。
でもね、これってOS起動時に起動させたいやん。
サービスに登録するやん。
サービスが起動してくれへんのよ。。。(TT)

起動時にconfigファイルを探しに行くんだそうです。
https://filebrowser.org/cli/filebrowser

検索対象は以下
./
$HOME/
/etc/filebrowser/

configファイルが無いということなので、configファイルを作成しないといけないんですね。

今回は、$HOMEへ作ります。

cd 
filebrowser config export ~/.filebrowser.json

実際にはserviceを起動するユーザのホームディレクトリで作成すればいいのかな?

これで、serviceを起動する時にも自動でconfigファイルを探してくれます。
-cオプションを使って指定することも出来ます。

serviceの作成とかは、こちらに記載してます。
独自コマンドのサービス登録(CentOS 7)