isLandcenter 非番中

ブログトップ | ログイン

カテゴリ:SUSE( 302 )

2020年7月2日に openSUSE Leap 15.2 がリリースされました。インストールを通して、 先月リリースされたばかりの SUSE Linux Enterprise 15 sp2 (SLES15sp2) や、旧版 Leap15,15,1 との違いを見てみます。 

- ダウンロード -

ダウンロードは次のアドレスからダウンロードします。

openSUSE Leap 15.2

- DVD イメージはフルパッケージで約4Gb弱です。ネットワークが不安定な場合はダウンローダーや Torrent を使ってダウンロードします。
- ネットワークイメージはブートからインストーラを立ち上げて、必要なパッケージをリポジトリからダウウンロードします。ネットワークが安定しており opensese のダウンロードサイトが安定しているのなら、こちらを使います。

ウチは回線状態が決していいとは言えないので DVD イメージをダウンロードして使いました。

openSUSE Leap 15.2 Install First Look.(インストール)_a0056607_13490917.png



- インストール -

DVD起動してインストーラが立ち上がったら、F2キーで言語を選択できます。ここから日本語化しても良いのですが、システムログなどが、意味不明な日本語表示になるのを避けるため、英語のままインストールする事をお勧めします。

openSUSE Leap 15.2 Install First Look.(インストール)_a0056607_13495537.png

インストールの全体の流れは6分ちょっとの動画にまとめました。(派手に音出ます)


Installation

openSUSE Leap 15.2 Install First Look.(インストール)_a0056607_13530970.png

言語と、キーボードレイアウトの選択。キーボードだけは日本語 106 キーを選び、特殊キーのレイアウトをテストボックスで確認します。

openSUSE Leap 15.2 Install First Look.(インストール)_a0056607_13533082.png

オンラインリポジトリからネットワークインストールするかどうかの選択です。非力なネットワーク環境なのでNoを選択して、DVDメディアからインストールします。

openSUSE Leap 15.2 Install First Look.(インストール)_a0056607_13535057.png

System Role (役割)の選択。好みの問題なので SLESと共通の GNOME デスクトップを選びました。

openSUSE Leap 15.2 Install First Look.(インストール)_a0056607_13541076.png

パーティション構成です。従来の 15.1 や SLES15sp2 は /home がXFS で別パーティションでしたが、 15.2 からデフォルトでシングルパーティションになっています。ここも SLE15 SP2 と違うところです。

デスクトップワークステーションにするか、サーバーにするかで、パーティション構成を計画しておきます。全て BtrFS です。どうも、このファイルシステムは今後もデフォルト化しそうです。

Web サーバーにするか、ハイパーバイザー運用するか Samba に使うか、色々目的があるので、Expert Partitioner から、構成を変更します。ほぼパーティション構成を変えて運用する事が前提になりそうです。 

openSUSE Leap 15.2 Install First Look.(インストール)_a0056607_13550251.png

タイムゾーンの設定です。東京付近をクリックして Asia/Japan に設定します。

デフォルトで opensuse.org のタイムプールが選択されています。ここでは変更できないので、後で、通信距離の短い構内 ntp や ISP の ntp、パブリック ntp に変更します。

Hardware clock set to UTC のチェックはいつも外していますs。 仮想化状態では役に立たないし、Windows とのデュアルブートにすると Windows も UTC でブートしてしまいます。

openSUSE Leap 15.2 Install First Look.(インストール)_a0056607_14024732.jpg

オペレータの作成です。デフォルトでは、このユーザが root になり自動ログインしますが、私の好みではないので、 "Use this passwod .....", "Automatic Login" の二つのチェックは外します。

openSUSE Leap 15.2 Install First Look.(インストール)_a0056607_14031112.png

”Use this Password..." のチェックを外したため、root のパスワードを設定します。Caps が押されていないか、キーボードのレイアウトに間違えがなく、設定したパスワードの特殊記号に間違えがないか、ここでチェックします。

openSUSE Leap 15.2 Install First Look.(インストール)_a0056607_14033175.png

- 最期のインストールサマリ -

- Software : 追加のパッケージが必要だったり、KVM ハイパーバイザー運用なので Gimp は必要ないのでインストールしない、などはここで選択します。
- Default systemd target : デスクトップ利用なのでGUI ログインするか、サーバーなのでテキストログインするかを選択します。
- Security : デフォルトでファイアウォール有効、ssh 無効です。これから色々やりたいことがあるので、ファイアウォールは無効、SSH は有効にしました。
- ネットワーク設定:は Network-Manager がデフォルトです。ノートブックなど Wifi を使ったり、有線で DHCP を使いたい場合は Network-Manager がいいのですが、仮想化したり固定デスクトップで有線のみだったり、仮想マシンとしてサーバー運用する場合は Wicked に変更します。

openSUSE Leap 15.2 Install First Look.(インストール)_a0056607_14035243.png

過去のバージョンでは目立たなかった Network Configuration が Wicked に変更すると目立つように、デザインが変わります。

openSUSE Leap 15.2 Install First Look.(インストール)_a0056607_14040861.png

Wicked のネットワーク設定画面です。 HOSTNAME はここで事前に設定できます。

openSUSE Leap 15.2 Install First Look.(インストール)_a0056607_14042642.png

- インストール開始 -

インストールサマリが決まったら、右下の Install ボタンから、インストールを開始します。DVDメディアからインストールすると、約20分ほどで自動的にリブートします。

SLES と同じ GNOME デスクトップが上がります。

openSUSE Leap 15.2 Install First Look.(インストール)_a0056607_14045839.png

- オペレータの言語を日本語に

折角、ユーザを作ったので、オペレータの言語は日本語に、 root 言語は US にします。オペレータでログインして YaST を起動します。 root パスワードで開きます。
(root でログインしてやってはダメ、全部日本語になってしまいます。オペレータユーザだけ日本語化するのがコツです)

rootではなく作成した、一般ユーザでログインします。

openSUSE Leap 15.2 Install First Look.(インストール)_a0056607_14045839.png

YaST > System > Languages より、”Primary Language Settings” を Japanese にセットして”OK” 日本語フォントがロードされます。

openSUSE Leap 15.2 Install First Look.(インストール)_a0056607_14061720.png

これで、オペレータアカウントは日本語化されます。 man コマンドも日本語です。

openSUSE Leap 15.2 Install First Look.(インストール)_a0056607_14080825.png

一方 root でログオンして入ると、YaST は英語をキープして、 man コマンドも英語でした。

openSUSE Leap 15.2 Install First Look.(インストール)_a0056607_14084460.png




- まとめ -

かなり端折りましたが、openSUSE Leap 15.2 の雰囲気はご理解していただけるとありがたいです。openSUSE Leap はインストールのし易さ、安定性に優れ、SUSE Linux Enterprise (SLE) の堅牢さも引き継いでいます。

このブログでは SLES を中心に扱ってきましたが、openSUSE Leap 15 以降 openSUSE の記事が中心になってきました。それだけ openSUSE Leap の扱いやすさを感じます。SLES でなければ怖くて使えない、と言った機能も安心して使えるようになったのは、喜ばしいことです。

次はどんな検証をしてみようか、考え中です。







by islandcenter | 2020-07-05 14:36 | SUSE | Comments(0)

SLE15 p2 で私にとっては初めての"Docker" です。

- はじめに -

Docker は「コンテナ型の仮想化」言われればそれまでなのですが、 SUSE ではドキュメントも少なく、いまいち手が出なかった。だけど不思議なもので、どこかできっかけを掴むと、やってしまえるものですね。XEN から始めて KVM そして Docker です。切り口が分かれば、意外と簡単に入り込むことができました。
という事で SUSE Linux Enterprise 15 sp2(SLES15 sp2) に Docker を組み込んで nginx HTTP サーバーを動かしいてみよう、にチャレンジします。

SLE15 Linux Enterprise sp2 (SLES15sp2) のインストールとファーストルック
https://islandcnt.exblog.jp/240410042/

- 参考文書 -

まずは、次の文書を読んでおきます。
openSUSE and SUSE Linux Enterprise
http://docs.docker.jp/engine/installation/SUSE.html

Docker Open Source Engine Guide SUSE Linux Enterprise Server 15 SP1
https://documentation.suse.com/sles/15-SP1/pdf/book-sles-docker_color_en.pdf



- /var/lib/docker を BtrFS の別パーティションに -

1 Docker Open Source Engine Overview REPORT DOCUMENTATION BUG#

このドキュメントに

"Important: Mounting /var/lib/docker
It is recommended to have /var/lib/docker mounted on a separate partition or volume to not affect the Docker Open Source Engine host operating system in case of a file system corruption.
In case you choose the Btrfs file system for /var/lib/docker, it is strongly recommended to create a subvolume for it. This ensures that the directory is excluded from file system snapshots. If not excluding /var/lib/docker from snapshots, the file system will likely run out of disk space soon after you start deploying containers. What's more, a rollback to a previous snapshot will also reset the Docker Open Source Engine database and images. Refer to Creating and Mounting New Subvolumes in Section 7.1, “Default Setup” for details."

とあり、/va/lib/docker は別パーティションで BtrFS 強く推奨とあります。事前に Docker を導入する以前にパーティションを YaST > System > Partitioner で別パーティション、別ボリュームを準備しておきます。

インストールの際の注意事項です。

openSUSELeap and SUSE Linux Enterprise 15 sp2 初めてのDocker_a0056607_10521976.png


sles15doker:~ # snapper -c dockersnap(<--任意のファイル名) create-config /var/lib/docker
sles15docker:~ # ls /etc/snapper/configs/dockersnap -l
-rw-r----- 1 root root 1183 Jun 28 17:08 /etc/snapper/configs/dockersnap
sles15docker:~ #
sles15docker:~ # ls /var/lib/docker/ -l
total 0
drwxr-x--- 1 root root   0 Jun 28 17:08 .snapshots
drwx------ 1 root root  20 Jun 28 11:49 btrfs
drwx------ 1 root root  20 Jun 28 11:47 builder
drwx--x--x 1 root root  92 Jun 28 11:47 buildkit
drwx------ 1 root root  12 Jun 28 11:47 containerd
drwx------ 1 root root 256 Jun 28 13:53 containers
drwx------ 1 root root  10 Jun 28 11:47 image
drwxr-x--- 1 root root  10 Jun 28 11:47 network
drwx------ 1 root root  20 Jun 28 11:47 plugins
drwx------ 1 root root   0 Jun 28 05:39 runtimes
drwx------ 1 root root   0 Jun 28 11:47 swarm
drwx------ 1 root root   0 Jun 28 14:39 tmp
drwx------ 1 root root   0 Jun 28 11:47 trust
drwx------ 1 root root  22 Jun 28 11:47 volumes
sles15docker:~ #


SLES12 の Snapper のチューニング

SLES12 ext3 から BTrFS への変換


- Forward を有効に -

Docker は Windows の Windows Subsystem for Linux に似ています。と言うか WSL 自体が Docker の Windows 版なんですね。たぶん。Dockerをインストールすると仮想ブリッジが作られ、コンテナのインターフェースが物理インターフェースと通信できるよう、フォワードを有効にしておく必要があります。一応 KVM と Docker を同居させている猛者はいるようですが、設定が複雑になるので止めとけ、という事です。

因みに、ここでは SUSE on SUSE の KVM 環境なので、仮想サーバー上で Docker を動かすことは問題ないようです。

Forward を有効にするには、 YaST > System > Network Settings の Routing のチェックを入れるだけです。

openSUSELeap and SUSE Linux Enterprise 15 sp2 初めてのDocker_a0056607_10550528.png



- Docker パッケージのインストール -

全体の流れを動画にしました。盛大に音出ます。



openSUSE Leap 15x と SLES15 SPx では若干インストール方法が違います。本当は openSUSE Leap を使いたかったのですが、機嫌が悪かったので、「あって良かった安心強護の SUSE Linux Enterprise」(SLES15 sp2) を使いました。

openSUSE Leap ではリポジトリの追加は不要です。SLE15 の場合、今回はトライアル版なので、ローカルディスクに ISO ファイルをコピーして、YaST > Software > Software repositories より ADD で、Local iso イメージを指定しました。

openSUSELeap and SUSE Linux Enterprise 15 sp2 初めてのDocker_a0056607_10553244.png

追加プロダクトとして Containers Module をチェックします。

openSUSELeap and SUSE Linux Enterprise 15 sp2 初めてのDocker_a0056607_10554811.png

後は、Software Management より "Docker" をサーチしてチェック、インストールします。

openSUSELeap and SUSE Linux Enterprise 15 sp2 初めてのDocker_a0056607_10560923.png


- ユーザを Docker グループに

YaST > Security and Users > User and Group Management より、Docker 使いたいヒトビトを Docker グループに追加します。

openSUSELeap and SUSE Linux Enterprise 15 sp2 初めてのDocker_a0056607_10562955.png


- 自動起動を Enable に

YaST > System > Service Manager より Docker を Enable, Active をセットして Docker を起動します。

openSUSELeap and SUSE Linux Enterprise 15 sp2 初めてのDocker_a0056607_10565613.png

- hellow-world を run -

sles15sp2:~ # docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
0e03bdcc26d7: Pull complete
Digest: sha256:d58e752213a51785838f9eed2b7a498ffa1cb3aa7f946dda11af39286c3db9a9
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash



Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/

For more examples and ideas, visit:
https://docs.docker.com/get-started/

sles15sp2:~ #


- YaST2-Docker -

YaST2-Docker アプリケーションは、openSUSE では問題ない様ですが、SLE ではちょっと問題があり、インストールはひと工夫必要です。必ず必要なものではないので読み飛ばしてもらって結構です。

まず yast2-metapackage-handler の rom をダウンロードして

YaST2 - Easy Installation of Add-on RPMs using Metapackages

openSUSELeap and SUSE Linux Enterprise 15 sp2 初めてのDocker_a0056607_10572921.png

perl-XML-XPath を YaST か zypper でインストールします。

# zypper install perl-XML-XPath*

openSUSELeap and SUSE Linux Enterprise 15 sp2 初めてのDocker_a0056607_10580415.png

yast2-metapackage-handler を rpm でインストールします。

# rpm -ivh yast2-metapackage-handler-4.1.0-lp151.1.1.noarch.rpm

これで、YaST2-Docker を 1 Click インストールできるので、software.opensuse.com から1クリックインストールしました。 この辺りはトラブルの元です。SLE15 BACKPORT リポジトリだけ有効にすると良い様です。

yast2-docker
YaST2 - GUI for docker management

openSUSELeap and SUSE Linux Enterprise 15 sp2 初めてのDocker_a0056607_10583754.png


- YaST2 docker -

YaST2-Docker はこんな感じです。コンテナの停止、削除には使えます。が、docker run は使い方がよく分かりません。マニュアルも見当たらなかった。

openSUSELeap and SUSE Linux Enterprise 15 sp2 初めてのDocker_a0056607_10585770.png


- nginx HTTP を動かす -

nginx のコンテナパッケージはこちらにあります。docker pull して run させるだけです。

Docker Official Images Official build of Nginx.

openSUSELeap and SUSE Linux Enterprise 15 sp2 初めてのDocker_a0056607_10592327.png


sles15sp2:~ # docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
8559a31e96f4: Pull complete
8d69e59170f7: Pull complete
3f9f1ec1d262: Pull complete
d1f5ff4f210d: Pull complete
1e22bfa8652e: Pull complete
Digest: sha256:21f32f6c08406306d822a0e6e8b7dc81f53f336570e852e25fbe1e3e3d0d0133
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
sles15sp2:~ #

Docker run リファレンス
http://docs.docker.jp/engine/reference/run.html

- コンテナ起動

sles15docker:~ # docker run -d -p 80:80 nginx

nginx が動きました。

openSUSELeap and SUSE Linux Enterprise 15 sp2 初めてのDocker_a0056607_10594767.png


- 起動時にコンテナを自動起動させる -

これでは Docker の親が起動した時、コンテナが起動できないので、--restart=always スイッチを付けて、コンテナを起動させると、 Docker サービスが起動する際に、自動起動するようになりました。

sles15docker:~ # docker run --restart=always -d -p 80:80 nginx
ca5d8b4b8adc55dc352f6022ef70da93ab243449cfc35d2cd2bd0903e7bd4c42

- 動作中のコンテナの確認

sles15docker:~ # docker ps -a
CONTAINER ID   IMAGE        COMMAND                 CREATED        STATUS                     PORTS NAMES
3485ddc43916   nginx        /docker-entrypoint.…"  3 minutes ago  Exited (0) 2 minutes ago         affectionate_clarke
ad88906a4cf0   hello-world  /hello"                 2 hours ago    Exited (0) 2 hours ago           agitated_perlman
<-- 只今停止中、停止しないと削除できない。

- 停止中のコンテナを削除


sles15docker:~ # docker rm 3485
3485
sles15docker:~ # docker ps -a
CONTAINER ID  IMAGE       COMMAND CREATED      STATUS                   PORTS NAMES
ad88906a4cf0  hello-world /hello" 2 hours ago  Exited (0) 2 hours ago         agitated_perlman
<-- 消してみた

- 常時起動状態で起動

sles15docker:~ # docker run --restart=always -d -p 80:80 nginx
cd43c374894d21a357a7835df7af11e1e59f51c11919c395d6a91cfe78da9d78

sles15docker:~ # docker ps -a
CONTAINER ID   IMAGE        COMMAND                  CREATED        STATUS                   PORTS                NAMES
cd43c374894d   nginx        "/docker-entrypoint.…"  8 seconds ago  Up 5 seconds             0.0.0.0:80->80/tcp   optimistic_chatelet
ad88906a4cf0   hello-world  "/hello"                 2 hours ago    Exited (0) 2 hours ago                        agitated_perlman
<-- --restart=always を付けて起動(Up)

- 稼働中のコンテナを停止

sles15docker:~ # docker stop cd43
cd43

sles15docker:~ # docker ps -a
CONTAINER ID    IMAGE        COMMAND                 CREATED         STATUS                    PORTS  NAMES
cd43c374894d    nginx       "/docker-entrypoint.…"  35 seconds ago  Exited (0) 3 seconds ago         optimistic_chatelet
ad88906a4cf0    hello-world "/hello"                 2 hours ago     Exited (0) 2 hours ago           agitated_perlman
sles15docker:~ #
<--- コンテナを止めておく(Exited)

- docker deamon を再起動

sles15docker:~ # systemctl stop docker
sles15docker:~ # docker ps -a
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
sles15docker:~ # systemctl start docker

- docker コンテナがデーモン起動で UP になった。

sles15docker:~ # docker ps -a
CONTAINER ID   IMAGE        COMMAND                 CREATED              STATUS                 PORTS                NAMES
cd43c374894d   nginx        /docker-entrypoint.…"  About a minute ago   Up 2 seconds           0.0.0.0:80->80/tcp   optimistic_chatelet
ad88906a4cf0   hello-world  /hello"                 2 hours ago          Exited (0) 2 hours ago                      agitated_perlman
sles15docker:~ #
<--- 止めたコンテナがサービス起動とともに開始した。


- その他 -

A Visual Way to Play with Docker

Hands on with Docker, openSUSE Leap 15
Docker そのもののインストールや基本操作で理解できました。後は例えば nginx を使う場合の詳細な設定をどうするか、とか、自らコンテナを開発したりカスタマイズするにはどうするか、と言った問題があります。知るほどに置くが深そうですね。

食わず嫌いは良くない。

by islandcenter | 2020-07-01 10:42 | SUSE | Comments(0)

この6月に SUSE Linux Enterprise Server 15 sp2 (SLE15sp2) のトライアル版がリリースされましたので、ファーストルックしてみます。




- ダウンロード -

ダウンロードはこちら、恐らく SUSE のカスタマセンターにログインしてダウンロードすることになると思います(登録無料)


SLE15 Linux Enterprise sp2 (SLES15sp2) のインストールとファーストルック(Trial)_a0056607_14523455.png

SUSE Linux Enterprise Server 15 SP2 Release Notes

リリースノートに

"4.1.1 New Media Layout REPORT DOCUMENTATION BUG#
The set of media has changed with 15 SP2. There are still two different installation media, but the way they can be used has changed:
* Installation without registration now only requires the full media. The installer has been added and therefore can be used stand-alone. The full media can therefore serve as universal media for all types of installation.
* Installation with registration can either be performed with the online media (as with SUSE Linux Enterprise Server 15 SP1) or with the full media.#

とあります。

トライアルに必要なメディアは SLE-15-SP2-Full-x86_64-GMC-Media1.iso 一枚に収まりました。ただし、10G バイトあるので、ブート用に二層DVDに書けるのでしょうか? やっぱりブルーレイが必要? あるいはUSBメモリを使うのが正解のようです。二枚目は、ソースコードの様です。

How to create an installation USB drive for SLE 11, 12, or 15

オンラインメディアディスク1は 300Mb 程度ですが、リポジトリの登録が必要なので、インストールにはアクティベーションコードが必要な様です。

その代わり Full-Media を使ったインストールは実にスムーズで、はっきり言って

「すごく良くなった」

というのが感想でした。

- インストール -

インストールメディアDVDで起動したら、 "Installation" を選んでインストールを開始します。F2 キーを押すと日本語でのインストールもできますが、デスクトップ(SLED)化しないのなら、エラーなどのメッセージが日本語には情報が少ないです。英語でそのままインストールして、後で日本語フォントを入れる事をお勧めします。

SLE15 Linux Enterprise sp2 (SLES15sp2) のインストールとファーストルック(Trial)_a0056607_14561760.png

インストールの全体の流れは動画にしました。(盛大に音出ます)


言語とキーボードの選択。テストエリアで特殊キーをテストします。

SLE15 Linux Enterprise sp2 (SLES15sp2) のインストールとファーストルック(Trial)_a0056607_14594143.png

License Agreement に Agree

SLE15 Linux Enterprise sp2 (SLES15sp2) のインストールとファーストルック(Trial)_a0056607_15001170.png

トライアルインストールなので、登録はスキップします。サブスクリプションの登録は YaST の Product Registration から後からでも行えます。

SLE15 Linux Enterprise sp2 (SLES15sp2) のインストールとファーストルック(Trial)_a0056607_15003951.png

拡張モジュールの選択、Basesystem Modules, Desktop Applications Modules, Server Applications Modules の3つは最低チェックしておくと良いでしょう。必要によってレガシーパッケージや、デバイスドライバのインストールに必要なコンパイラもインストールします。

SLE15 Linux Enterprise sp2 (SLES15sp2) のインストールとファーストルック(Trial)_a0056607_15010258.png

インストール用リポジトリが作られました。

SLE15 Linux Enterprise sp2 (SLES15sp2) のインストールとファーストルック(Trial)_a0056607_15013837.png

GNOME の必要最低限の環境をインストールします。ハイパーバイザー運用する場合は、後に xen/kvm のホストサーバーを、インストールサマリから追加できます。

SLE15 Linux Enterprise sp2 (SLES15sp2) のインストールとファーストルック(Trial)_a0056607_15015924.png

デフォルトパーティション構成です。18gb は / の BtrFs です。BtrFS の場合、需要の倍のサイズを要求します。

ここでは KVM のハイパーバイザー運用を前提に /home は / にマージし、残った全部を /var に割り当てるとします。Expert Partitioner  > start with current proposal で、 /home をマージし /var を xfs 別パーティションとしました。

SLE15 Linux Enterprise sp2 (SLES15sp2) のインストールとファーストルック(Trial)_a0056607_15023037.png

以下の様なパーティション構成です。

SLE15 Linux Enterprise sp2 (SLES15sp2) のインストールとファーストルック(Trial)_a0056607_15030023.png

いつものタイムゾーンの設定です。完全 UTC で運用する場合は、東京あたりをクリックして Asia/Japan にセットするだけですが、ハードウェアクロックを JST+9 で運用する場合(大抵のハードウェアベンダーはそうしているし CE さんが M/B を交換してしまえば JST+9 にリセットしてしまう)は "Set Hardware Clock UTC" のチェックを外します。日本では "Daylignt Saving Time"(夏時間)はないので、チェックを外しておいてもまず問題になりません。

SLE15 Linux Enterprise sp2 (SLES15sp2) のインストールとファーストルック(Trial)_a0056607_15110611.jpg

オペレータユーザの登録です。openSUSE Leap とは違い、 SLE の場合 root とは異なるユーザを作るのがデフォルトです。

SLE15 Linux Enterprise sp2 (SLES15sp2) のインストールとファーストルック(Trial)_a0056607_15113487.png

root のパスワード設定です。スペースセーバーキーボードやノートブックの場合 Num Lock されていると、「あれっ!」ってことになるので、必ずテストエリアでキーボードチェックをします。

SLE15 Linux Enterprise sp2 (SLES15sp2) のインストールとファーストルック(Trial)_a0056607_15115299.png

- インストールサマリからインストール開始 -

インストールサマリ画面から追加のソフトウェア、例えば KVM/XEN ハイパーバイザーを入れるかどうか、systemd のターゲットはテキストか GUI か、ファイアウォールは開けておくか、SSH は有効にするかどうかを変更しておきます。

SLES15-sp2 より、Network Settings の項目が目立つ様になりました。 SLE15 SP1 でもここでできたのですが、「ここで指定しろ」と言わんばかりのアピール度です。

SLE15 Linux Enterprise sp2 (SLES15sp2) のインストールとファーストルック(Trial)_a0056607_15122181.png

という事で、Network の固定アドレスの設定、DNS、G/Wの設定、 HOSTNAME の設定は全てここで済ませてしまうことができます。随分良くなりました。ちょっと今までのインストーラとは画面のレイアウトが違うので、戸惑う所があります。

SLE15 Linux Enterprise sp2 (SLES15sp2) のインストールとファーストルック(Trial)_a0056607_15124469.png

DNSと HOSTNAME 所属するドメインを設定します。

SLE15 Linux Enterprise sp2 (SLES15sp2) のインストールとファーストルック(Trial)_a0056607_15130889.png

デフォルトゲートウェイの設定・ちょっとデザインが違うので余計な事をしたくなりますが、"gateway" の IP を設定するだけで "OK" です。

SLE15 Linux Enterprise sp2 (SLES15sp2) のインストールとファーストルック(Trial)_a0056607_15133029.png

ネットワーク構成ができました。

SLE15 Linux Enterprise sp2 (SLES15sp2) のインストールとファーストルック(Trial)_a0056607_15135732.png

後はインストールするだけです。

SLE15 Linux Enterprise sp2 (SLES15sp2) のインストールとファーストルック(Trial)_a0056607_15142621.png


- 再起動 -

インストールが終わると自動的に再起動します。オペレータでも root でも構いません。ログインします。

Activities から YaST などを実行できます。

SLE15 Linux Enterprise sp2 (SLES15sp2) のインストールとファーストルック(Trial)_a0056607_15171549.png

デフォルトで SLE の場合 NTP は Off です。

YaST > Network Services > NTP Service より NTP ソースを指定して、 "Now and on Boot" をチェックします。

SLE15 Linux Enterprise sp2 (SLES15sp2) のインストールとファーストルック(Trial)_a0056607_15174000.png

リポジトリの再設定です。インストーラで使ったソースは Disable になっています。これを Enable にしてもいいのですが、ローカルディスクに ISO ファイルを置いてつかっても良いですし、別立ての HTTP/FTP サーバーにインストール DVD をマウントして公開しても良いでしょう。私はいつも別な HTTP サーバーをローカルリポジトリにしています。

Add ボタン

SLE15 Linux Enterprise sp2 (SLES15sp2) のインストールとファーストルック(Trial)_a0056607_15180837.png

ローカル環境のDVDにアクセスできたら、ユニバーサルインストーラで使うリポジトリをチェックします。 Systembase Modules, Desktop Application Modules, Server Application Modules の3つは最低限チェックしておきます。

SLE15 Linux Enterprise sp2 (SLES15sp2) のインストールとファーストルック(Trial)_a0056607_15185330.png

登録したリポジトリが Enabled/Autorifresh : On になりました。インストールに使ったリポジトリは削除しても構わないでしょう。

SLE15 Linux Enterprise sp2 (SLES15sp2) のインストールとファーストルック(Trial)_a0056607_15192323.png

次に YaST > System > Language から、Secondary Language:Japanese をチェックしてインストールします。

SLE15 Linux Enterprise sp2 (SLES15sp2) のインストールとファーストルック(Trial)_a0056607_15201823.png

日本語フォントで表示されました。

SLE15 Linux Enterprise sp2 (SLES15sp2) のインストールとファーストルック(Trial)_a0056607_15204183.png
インストーラを中心に、次に出荷される予定の SUSE Linux Enterprise 15 SP2 を見てみました。

インストーラは、一言でいってみれば「親切で良くなった」感じです。ただ SLE15 はパッケージディスクは二層DVDで間に合ったのですが、SP2では、一枚のディスクイメージでサイズも大きくなったので、ベアハードウェアにインストールするには、フラッシュメモリか、ブルーレイが必要でしょう。安くなったとは言え単価は光メディアより高価なので、何台もインストールするには準備が大変かも知れません。

まだ SUSE のサイトには 2020/6 現在マニュアルもない状態なので、移行するにはもう少し待った方がよさそうです。



by islandcenter | 2020-06-25 15:21 | SUSE | Comments(0)

openSUSE 15.1 に入れた zabbix5 で、インターネットの疎通、サービス状態の確認をする方法です。

この春先から、どうもインターネット接続が遅かったり、切れたりする症状に悩まされています。その都度、google なんかに ping して、レスポンスを確認してたのですが、メンドクサイ。何しろ「リモートワーク」の時代。地方拠点から本社への出張なども憚れると、どうしても気になるのはインターネットトラフィックです。

その後の新型コロナウイルスのフレッツトラフィックへの影響


という事で openSUSE Leap 15.1 で動いている zabbix5 に、外部サービスの死活監視、ping の応答時間などをチェックさせてみました。

対象は

- Google などの海外の大手
- Google DNS の様な巨大インフラへの Ping 監視
- 契約先の経路の短い Web サイトの HTTP 監視
- 契約先の経路の短い NTP サーバーへの Ping 監視

などを、可視化できないものか試してみました。



- Zabbix5 で HTTP サービスと PINGの監視 -

左のメニューから、Configuration > Hosts > リストが出てきたら、 Create Host
zabbix5 でインターネットの疎通、監視、リモートワーク時代の「ネットが遅い」をチェック_a0056607_12213034.png

Host Name と group はとりあえず Google で Linux Servers、Interfacesは Zabbix Agent を remove して とりあえず IMPI、ホストのDNSを設定して Port は443 をセットして "Add" ボタンを押します。この辺りは適当でかまわないかも.....

次に左上の"Template" メニューを開きます。

zabbix5 でインターネットの疎通、監視、リモートワーク時代の「ネットが遅い」をチェック_a0056607_12215508.png

Link new templates から "select" ボタンで”Linux Server” > Template App http や https サービスをチェックします。

zabbix5 でインターネットの疎通、監視、リモートワーク時代の「ネットが遅い」をチェック_a0056607_12223668.png

ping もチェックしたいのなら Template ICMP Ping もチェックします。

zabbix5 でインターネットの疎通、監視、リモートワーク時代の「ネットが遅い」をチェック_a0056607_12230824.png


最後に "Add" ボタンを押します。

Hosts の上にある Applications, Items, Triggers を、それぞれ Enable ボタンを押して監視を開始しました。

zabbix5 でインターネットの疎通、監視、リモートワーク時代の「ネットが遅い」をチェック_a0056607_12233447.png

幾つかの HTTP サービスが Down State で見えない時があるのが分かります。

zabbix5 でインターネットの疎通、監視、リモートワーク時代の「ネットが遅い」をチェック_a0056607_12240321.png

サービスがアップしているかどうかは。1と0の値で評価されるので、グラフがV字化している時は繋がりにくかったことが分かります。

zabbix5 でインターネットの疎通、監視、リモートワーク時代の「ネットが遅い」をチェック_a0056607_12242658.png

ダウンしていた事が報告されていますね。

zabbix5 でインターネットの疎通、監視、リモートワーク時代の「ネットが遅い」をチェック_a0056607_12245202.png

Yahoo.co.jp と Google.com の状態です。ダウンしている時間帯がほぼリンクしているので、海外との通信より、ウチと契約先の ISP、あるいは契約回線の問題だと判ります。

zabbix5 でインターネットの疎通、監視、リモートワーク時代の「ネットが遅い」をチェック_a0056607_12252509.png
GoogleDNS と、契約先の ntp.bbtec.net (経路的には一番近いかな)を ping して値をみてみます。まず Ping 応答が無くなり、結果 HTTP サービスも動かないという事です。


拡大しました。全体的に google のサービスより Yahoo BB の ping 応答が遅い様な感じですね。Avarage も、Google DNS より ntp.bbtec.net の方がレスポンスが悪い様です。海外との回線よりISP内部の遅延がある様です。

zabbix5 でインターネットの疎通、監視、リモートワーク時代の「ネットが遅い」をチェック_a0056607_12260847.png

朝の3時は iOS のアップデートが始まります。このタイミングでも google のレスポンスは見事に遅延しています。

zabbix5 でインターネットの疎通、監視、リモートワーク時代の「ネットが遅い」をチェック_a0056607_12271394.png

ダメじゃん、ウチの契約回線が悪いのだ..... と判断しています。

SoftBank Air の様な容量無制限モバイル Wifi でも、共有 IP (シェアドIP)なので、グローバルIPが切り替わる都度に、遅延や切断は起こりそうです。まぁ、モバイル Wifi では明示的に速度制限の対象となる場合もあるので「ビデオ会議」などのライブストリーミングが制限されない事を確認すべきでしょう。

Softbank Air: Wifi ネットワークの暗い闇、シェアード IP


--
今回は外部の ICMP Ping とHTTP サービスを Zabbix5 でトレンドを見てみました。今までの Zabbix4 までのグラフ機能では、複数のデバイスのトレンドが見れなかったので、良くなったと思います。

例えばオンラインミーティングが始まる午前9時とか、午後13時とかにハッキリ遅延が起こるのであれば、これは、コロナ騒動でのリモートワークの影響だとキッパリ言えそうなんですが、冒頭の IIJ のブログにもあるように、リモートワークの影響ではなさそう。やっぱりウチの Yahoo BB のプアな回線状況が原因と考えられます。

さて、プアな自宅回線の強化、月々の利用料金はどう会社負担になるのでしょう、今後のリモートワークの課題ですね。

応用として、例えば支店に設置したインターネットVPNルータや管理用 HTTP などのサービスの状態のチェック。自社の提供するサービスの死活管理などに利用できます。Pingの応答速度は、折れ線グラフ化できるので、昼間と夜間の違いはないかを可視化できます。

拠点間ルータの snmp 管理機能や、リモート拠点間のサービス状況を調べる事で、拠点の「ネットが遅い」問題の原因を検討する事もやってみる事です。明かに、ISPのサービスレベルの問題であると判断できる要因が長期のトレンドで見つかるなら、契約ISPを変える為の稟議書を書く根拠にもなります。

Zabbix のように応用力の高いツールがあれば、「その時」ではなく、たとえ数時間でもトレンドが見える事はよいことです。








by islandcenter | 2020-05-31 13:27 | SUSE | Comments(0)


openSUSE Leap 15.1 上の zabbix4 を Zabbix5 にアップデート

Zabbix 5.0 LTS がリリースされたので、現行で運用している openSUSE Leap 15.1 上の zabbix 4.2.5 からのアップデート顛末記です。
前回 zabbix 4.2 をインストールした手順はこちら

How to setup zabbix4.2 on openSUSE Leap 15.1 セットアップ
https://islandcnt.exblog.jp/239366228/

zabbix 5.0 のインストールはこちら

Download and install Zabbix
https://www.zabbix.com/jp/download

今回から、バイナリは提供されず、リポジトリを登録してインストールする形式になりました。閉塞環境ではインストールできないようです・

Zabbix5 の仮想アプライアンス、ライブメディアはこちらです。ubuntu ではなく CentOS に変更されたようです。

Zabbix Cloud Images and Appliances
https://cdn.zabbix.com/zabbix/sources/stable/5.0/

Install Zabbix Appliance
https://www.zabbix.com/jp/download_appliance

アップデートに必要な情報はこちらにまとめられています。php7.2 以降が必要、maiadb は10.2.1 以前はアップデートが必要です。yast か zypper でアップデートしておきます。

9 Upgrade notes for 5.0.0
https://www.zabbix.com/documentation/current/manual/installation/upgrade_notes_500







- バックアップ -

一応、大事なものはバックアップしておきます。マニュアルに記載があるのは、次のファイルです。(マニュアル読んどけよ、取らなかったじゃないか....)
  • /etc/zabbix/zabbix_server.conf
  • /etc/apache2/conf.d/zabbix.conf  (RH系は /etc/httpd)
  • /usr/share/zabbix/*
  • /usr/share/doc/packages/zabbix-* (RH系は /usr/share/doc/zabbix*)

仮想環境なら、イメージ毎バックアップしておけば良いでしょう。
openSUSE 15 はデフォルト BtrFS なので、スナップショットを取っておきました。(/var が XFS だった.... 敗因)

SLES12が採用した btrfs, snapper を使った Snap Shot
https://islandcnt.exblog.jp/20441162/

SLES12 の Snapper のチューニング
https://islandcnt.exblog.jp/20453565/

4 Snapperによるスナップショットとロールバック
https://documentation.suse.com/ja-jp/sles/11-SP4/html/SLES-all/cha-snapper.html

yast2 > Filesystem Snapshot で、スナップショットを作成しておきます。

zabbix4.2 を zabbix5.0 アップデート openSUSE Leap 15.1_a0056607_09164227.png

- アップデート -

このページにあるインストール手順に従って、zabbix リポジトリを更新します。

zabbix4.2 を zabbix5.0 アップデート openSUSE Leap 15.1_a0056607_09174603.png

具体的には、次のコマンドを実行するだけでした。

# rpm -Uvh --nosignature https://repo.zabbix.com/zabbix/5.0/sles/15/x86_64/zabbix-release-5.0-1.el15.noarch.rpm

リポジトリをアップデートしたら YaST の Software Repositories から、Zabbix5 のリポジトリを Enabled, Autorefresh にチェックを入れます。

zabbix4.2 を zabbix5.0 アップデート openSUSE Leap 15.1_a0056607_09185202.png


- Zabbix の停止 -

アップデートの前に、 YaST > Service Manager から zabbix_server, zabbix_agent, MariaDB を Stop させておきます。

zabbix4.2 を zabbix5.0 アップデート openSUSE Leap 15.1_a0056607_09210686.png



- zabbix 本体のアップデート -

YaST > Software Management から ”zabbix” を検索して、zabbix パッケージにチェックが入っているものを全部、右ボタンから "Update" にセットし、Accept します。

zabbix4.2 を zabbix5.0 アップデート openSUSE Leap 15.1_a0056607_09200290.png

アップデートが終わりました。


- zabbix5 の起動 -

YaST > Service Manager から、停止させていた MariaDB, zabbix_server, zabbix_agent を Start させます。

zabbix4.2 を zabbix5.0 アップデート openSUSE Leap 15.1_a0056607_09223345.png

インストールが終わった後の、バージョン情報です。

zabbix:~ # zabbix_server -V
zabbix_server (Zabbix) 5.0.0
Revision 9665d62db0 11 May 2020, compilation time: May 11 2020 14:35:25

Copyright (C) 2020 Zabbix SIA
License GPLv2+: GNU GPL version 2 or later .
This is free software: you are free to change and redistribute it according to
the license. There is NO WARRANTY, to the extent permitted by law.

This product includes software developed by the OpenSSL Project
for use in the OpenSSL Toolkit (http://www.openssl.org/).

Compiled with OpenSSL 1.1.0i-fips 14 Aug 2018
Running with OpenSSL 1.1.0i-fips 14 Aug 2018
zabbix:~ #
This is free software: you are free to change and redistribute it according to
the license. There is NO WARRANTY, to the extent permitted by law.

This product includes software developed by the OpenSSL Project
for use in the OpenSSL Toolkit (http://www.openssl.org/).

Compiled with OpenSSL 1.1.0i-fips  14 Aug 2018
Running with OpenSSL 1.1.0i-fips  14 Aug 2018
zabbix:~ #


- あれ?フロントエンドが動かない .... -

アップデートした後、ブラウザをリロードしたら、変なデータベースエラーが出ていました。どうもDBのスキーマを更新していたようです... すぐにログインできる様になりましたが、情報もなく冷や汗モノでした。(敗因)

zabbix4.2 を zabbix5.0 アップデート openSUSE Leap 15.1_a0056607_15124586.png

- ログイン -

全体のフロントエンドスクリーンです。かなりデザインが変わりました。

zabbix4.2 を zabbix5.0 アップデート openSUSE Leap 15.1_a0056607_09230458.png



ー グラフがない? ー

グラフの表示は随分変わりました。以前は Graph というメニューがあったのですが、左のメニューから Latest data > Hosts より、グラフを出したいホストを Select して選び、”Applications" から、例えば "Network interfaces" とか”Storage” などのアイテムを選んで "Apply" すると、フィルタがかかります。右に”Graph” リンクを開くと、そのアイテムのグラフが出てくる方式です。

zabbix4.2 を zabbix5.0 アップデート openSUSE Leap 15.1_a0056607_09232986.png

例えば、 NIC のI/O を見たい場合、Bits Sent と Receive の二つをチェックして、"Display stacked graph" を押します。

zabbix4.2 を zabbix5.0 アップデート openSUSE Leap 15.1_a0056607_09234899.png

Network Interface の I/O グラフが出てきました。

zabbix4.2 を zabbix5.0 アップデート openSUSE Leap 15.1_a0056607_09241687.png

- なにぃ? 404 Error だと! -
 zabbix url http://zabbix/zabbix  "Object not found 404 error" after update zabbix4 to 5.
  -> /etc/apache2/conf.d # cp zabbix.conf.rpmsave zabbix.conf 

ブラウザがクラッシュして、もう一度、"http://zabbix/zabbix" を開いたら、404エラーを吐きやがった!

そこで /srv/www/htdocs/zabbix ディレクトリを掘って、 /usr/share/zabbix/ 以下をコピーしたら、問題なく動いた。

zabbix:/srv/www/htdocs/zabbix # cp /usr/share/zabbix/* -Rv .

ははぁ、これは何かリダイレクトの問題だなと思い、調べたけれどわからない。そこで、バックアップを取っていた KVM の RAW イメージフォーマットをマウントし

sles15:~/mnt # kpartx -av /var/lib/libvirt/images/zabbix42/zabbix42.disk1.raw
add map loop0p1 (254:0): 0 16384 linear 7:0 2048
add map loop0p2 (254:1): 0 29360128 linear 7:0 18432
add map loop0p3 (254:2): 0 4194527 linear 7:0 48242688
add map loop0p4 (254:3): 0 18864128 linear 7:0 29378560
sles15:~/mnt # ls /dev/mapper/
control  loop0p1  loop0p2  loop0p3  loop0p4
sles15:~/mnt #
sles15:~/mnt # mount -o loop /dev/mapper/loop0p2 /mnt/tmp
sles15:~/mnt # ls /mnt/tmp
.snapshots  boot  etc   lib    mnt  proc  run   selinux  sys  usr
bin         dev   home  lib64  opt  root  sbin  srv      tmp  var
sles15:~/mnt # ls /mnt/tmp/etc/apache2/conf.d/ -al
total 16
drwxr-xr-x 1 root root  84 Feb  5 17:51 .
drwxr-xr-x 1 root root 778 Jan  9 00:06 ..
-rw-r--r-- 1 root root 361 Jan  9 00:06 gitweb.conf
-rw-r--r-- 1 root root 793 Apr 11  2019 manual.conf
-rw-r--r-- 1 root root 354 May  4  2019 php7.conf
-rw-r--r-- 1 root root 913 Jul 11  2019 zabbix.conf
sles15:~/mnt # cd
sles15:~ # kpartx -d /var/lib/libvirt/images/zabbix42/zabbix42.disk1.raw
loop deleted : /dev/loop0
sles15:~ #

調べてみたら、あった。
/etc/apache2/conf.d/zabbix.conf が zabbix.conf.rpmsave にリネームされていた。


zabbix4.2 を zabbix5.0 アップデート openSUSE Leap 15.1_a0056607_15202752.png

zabbix:~ # cat /etc/apache2/conf.d/zabbix.conf.rpmsave
#
# Zabbix monitoring system php web frontend
#

Alias /zabbix /usr/share/zabbix

<Directory "/usr/share/zabbix">
    Options FollowSymLinks
    AllowOverride None
    Require all granted

    <IfModule mod_php7.c>
        php_value max_execution_time 300
        php_value memory_limit 128M
        php_value post_max_size 16M
        php_value upload_max_filesize 2M
        php_value max_input_time 300
        php_value max_input_vars 10000
        php_value always_populate_raw_post_data -1
        # php_value date.timezone Europe/Riga
        php_value date.timezone Asia/Tokyo
    </IfModule>
</Directory>

<Directory "/usr/share/zabbix/conf">
    Require all denied
</Directory>

<Directory "/usr/share/zabbix/app">
    Require all denied
</Directory>

<Directory "/usr/share/zabbix/include">
    Require all denied
</Directory>

<Directory "/usr/share/zabbix/local">
    Require all denied
</Directory>
zabbix:~ #



zabbix:/etc/apache2/conf.d # cp zabbix.conf.rpmsave zabbix.conf
zabbix:/etc/apache2/conf.d #
zabbix:/etc/apache2/conf.d # ls -al
total 20
drwxr-xr-x 1 root root 122 May 20 15:30 .
drwxr-xr-x 1 root root 778 May 20 13:22 ..
-rw-r--r-- 1 root root 361 Jan  9 00:06 gitweb.conf
-rw-r--r-- 1 root root 793 Apr 11  2019 manual.conf
-rw-r--r-- 1 root root 354 May  6 21:23 php7.conf
-rw-r--r-- 1 root root 913 May 20 15:30 zabbix.conf
-rw-r--r-- 1 root root 913 Jul 11  2019 zabbix.conf.rpmsave
zabbix:/etc/apache2/conf.d #

サービスの再起動ではうまく行かなかったので、再起動したら、問題は解決できた。

何のためにスナップショット取ったのか、今になって反省しています。

- First Look (まとめ)-

Zabbix4 から Zabbix5 へのアップデートは、予想より困難な事はありませんでした。openSUSE Leap 15.1 では特にハマる点もなく(エイリアスにはハマったけど)、ほとんどの作業を YaST のマウス操作でアップデートできてしまいました。

/var を xfs パーティションにしたのは、スナップショットが使えず、敗因だったなと思います。

Web Interface は随分変わってしまったので、オペレータさん用の新しい操作マニュアルが必要そうです。

特に私の様に「グラフ命」だったヒトには、グラフの操作方法が変わってしまって、残念な感じがします。一応 Widget に旧タイプのグラフがあるようです。慣れの問題と言えますが、カスタマイズした場合、内容がそのまま移行できたかどうかは分からないので、アップデートは十分な調査が必要です。

主な変更点はマニュアルで確認してください。SUSEに関する記述が抜けているのはご愛敬です。

5 What's new in Zabbix 5.0.0
https://www.zabbix.com/documentation/current/manual/introduction/whatsnew500





isLandcenter.jp




by islandcenter | 2020-05-20 09:29 | SUSE | Comments(0)

- はじめに - 

ここでは SUSE Linux 15 (openSUSE Leap15.1) に nginx と mariadb をインストールして、phpMyAdmin を動かすまでの作業を説明します。

この環境では openSUSE Leap 15.1 に nginx HTTP サーバーと php7 がインストールされています。

事前の作業はこちらをまずご参考下さい。

SUSE15 で動かす nginx HTTP, インストール

SUSE Linux 15(openSUSE15.1 Leap) で php7 on nginx

参考元となった文書はこちらです。大変分かりやすいので一緒に参考にしてください。

Install LEMP – Nginx, PHP, MariaDB and PhpMyAdmin in OpenSUSE



- mariadb のインストール -

yast/yast2 で Software > Software Management から mariadb を "search" して、mariadb をチェックすると mariadb-client もインストールされます。

あるいは zypper install します。

SUSE Linux 15(openSUSE Leap)に mariadb、phpMyAdmin を入れるまで_a0056607_13203717.png

インストールが終わったら、yast/yast2 から > System > Service Manager を開き、mariadb を "Start" / "On Boot" にセットします。

もしくは systemctrl コマンドを使います。

SUSE Linux 15(openSUSE Leap)に mariadb、phpMyAdmin を入れるまで_a0056607_13211360.png


systemctrl でステータスを見るとこんな感じです。


opensuse151:~ # systemctl status mariadb
● mariadb.service - MySQL server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2020-04-30 12:36:00 JST; 58s ago
  Process: 9507 ExecStartPre=/usr/lib/mysql/mysql-systemd-helper upgrade (code=exited, status=0/SUCC>
  Process: 9442 ExecStartPre=/usr/lib/mysql/mysql-systemd-helper install (code=exited, status=0/SUCC>
Main PID: 9513 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 30 (limit: 4915)
   CGroup: /system.slice/mariadb.service
           └─9513 /usr/sbin/mysqld --defaults-file=/etc/my.cnf --user=mysql

Apr 30 12:36:00 opensuse151 mysql-systemd-helper[9442]: rcmysql start
Apr 30 12:36:00 opensuse151 mysql-systemd-helper[9442]: You can test the MariaDB daemon with mariadb>
Apr 30 12:36:00 opensuse151 mysql-systemd-helper[9442]: Please report any problems at http://mariadb>
Apr 30 12:36:00 opensuse151 mysql-systemd-helper[9442]: The latest information about MariaDB is avai>
Apr 30 12:36:00 opensuse151 mysql-systemd-helper[9442]: You can find additional information about th>
Apr 30 12:36:00 opensuse151 mysql-systemd-helper[9442]: http://dev.mysql.com
Apr 30 12:36:00 opensuse151 mysql-systemd-helper[9442]: Consider joining MariaDB's strong and vibran>
Apr 30 12:36:00 opensuse151 mysql-systemd-helper[9442]: https://mariadb.org/get-involved/
Apr 30 12:36:00 opensuse151 mysql-systemd-helper[9513]: 2020-04-30 12:36:00 140479655942336 [Note] />
Apr 30 12:36:00 opensuse151 systemd[1]: Started MySQL server.


- mysql の初期導入 -

mysql_secure_installation コマンドで、データベースの初期セットアップをします。

opensuse151:~ # mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.


Enter current password for root (enter for none):
<--- パスワードは未セットなので[Enter]
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] y
New password: <----- 新しい mysql の root パスワード
Re-enter new password: <----- 新しい mysql の root パスワード
Password updated successfully!
Reloading privilege tables..
... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB 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? [Y/n] y <---- 後はデフォルトで Yes です。
... Success!

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? [Y/n] y
... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!
opensuse151:~ #



- php-fpm.conf ファイルの変更 -

php-fpm の導入はこちらを参考にしてください。

SUSE Linux 15(openSUSE15.1 Leap) で php7 on nginx
https://islandcnt.exblog.jp/240241791/

/etc/php7/fpm/php-fpm.conf ファイルのオリジナルのバックアップを取って、php-fpm.conf.default を上書きコピーしてから

error_log = log/php-fpm.log

の行のコメントを外して、有効化します。


opensuse151:~ # ls /etc/php7/fpm/
php-fpm.conf  php-fpm.conf.default  php-fpm.d
opensuse151:~ # cp /etc/php7/fpm/php-fpm.conf /etc/php7/fpm/php-fpm.conf.org
opensuse151:~ # cp /etc/php7/fpm/php-fpm.conf.default /etc/php7/fpm/php-fpm.conf

opensuse151:~ # ls /etc/php7/fpm/ -l
total 24
-rw-r--r-- 1 root root 4410 Apr 30 13:13 php-fpm.conf
-rw-r--r-- 1 root root 4410 Mar 10 02:19 php-fpm.conf.default
-rw-r--r-- 1 root root 4409 Apr 30 13:13 php-fpm.conf.org
drwxr-xr-x 1 root root   48 Apr 11 14:00 php-fpm.d
opensuse151:~ #

opensuse151:~ # gedit /etc/php7/fpm/php-fpm.conf &

次の行を有効化します。

error_log = log/php-fpm.log

SUSE Linux 15(openSUSE Leap)に mariadb、phpMyAdmin を入れるまで_a0056607_13291077.png

- phpMyAdmin のインストール -

yast/yast2 から Software > Software Management より phpMyAdmin をサーチしてインストールします。

もしくは zypper install します。

別バージョンの openSUSE のパッケージの場合 software.opensuse.org の1クリックインストールが便利です。


SUSE Linux 15(openSUSE Leap)に mariadb、phpMyAdmin を入れるまで_a0056607_13374108.png


- phpmyadmin.conf の作成 -

/etc/nginx/vhosts.d/phpmyadmin.conf を次の様に作成します。これを作らないと mysql がライブラリエラーを吐きます。

opensuse151:~ # cat /etc/nginx/vhosts.d/phpmyadmin.conf
server {
   listen 80;

   server_name localhost/phpMyAdmin;

  root /srv/www/htdocs/phpMyAdmin;

   location / {
       try_files $uri /index.php?$args;
   }

   location ~ \.php$ {
       try_files $uri =404;
       fastcgi_pass 127.0.0.1:9000;
       fastcgi_index index.php;
       include fastcgi_params;
   }
}

SUSE Linux 15(openSUSE Leap)に mariadb、phpMyAdmin を入れるまで_a0056607_13294383.png



- nginx と php-fpm の再起動 -

systemctrl か yast の Service Manager から nginx と php-fpm を再起動します。

opensuse151:~ # systemctl restart nginx
opensuse151:~ # systemctl restart php-fpm

ブラウザから、 phpMyAdmin の index.php を開きます。

http://host_ip/phpMyAdmin/index.php

root/ "mysql_secure_installation で設定したパスワード" でログインします。

SUSE Linux 15(openSUSE Leap)に mariadb、phpMyAdmin を入れるまで_a0056607_13301780.png

無事に立ち上がりました。

SUSE Linux 15(openSUSE Leap)に mariadb、phpMyAdmin を入れるまで_a0056607_13304517.png

phpMyAdmin ドキュメンテーション

Welcome to phpMyAdmin's documentation!

これで、SQLにくわしくなくても、MySQL のデータベースの管理ができます。








by islandcenter | 2020-05-06 10:10 | SUSE | Comments(0)

openSUSE Leap 15.1 に nginx を入れたのでついでに、nginx 環境に php7 も入れてみました。

SUSE15 で動かす nginx HTTP, インストール

- 参考 -

次の文書が役に立ちました。

Install LEMP – Nginx, PHP, MariaDB and PhpMyAdmin in OpenSUSE

Install LEMP stack (Nginx, MariaDB, PHP) on OpenSUSE Leap 42.1
https://www.linuxbabe.com/linux-server/install-lemp-stack-nginx-mariadb-php-opensuse-leap-42-1




- php-fpm のインストール -

YaST/YaST2 >Software Management で "php7-fpm" を検索/チェックしてインストールします。

SUSE Linux 15(openSUSE15.1 Leap) で php7 on nginx_a0056607_16075322.png

自動的に追加のパッケージもインストールされます。

SUSE Linux 15(openSUSE15.1 Leap) で php7 on nginx_a0056607_16081925.png

- index.php を作ります -


opensuse151:~ # cat /srv/www/htdocs/index.php
<?php
phpinfo();
?>
opensuse151:~ #
opensuse151:~ # ls /srv/www/htdocs/
50x.html  index.php
opensuse151:~ #


- エラーログの書き込み先 -

opensuse151:~ # gedit /etc/php7/fpm/php-fpm.conf &

php-fpm.log の書き込み先を指定するため、error_log のコメントアウトを外します。/var/log/php-fpm.log に書き込まれます。

SUSE Linux 15(openSUSE15.1 Leap) で php7 on nginx_a0056607_16084468.png

- /etc/php7/fpm/php-fpmd/www.conf の書き換え -

opensuse151:~ # cp  /etc/php7/fpm/php-fpm.d/www.conf.default /etc/php7/fpm/php-fpm.d/www.conf
opensuse151:~ #
opensuse151:~ # gedit /etc/php7/fpm/php-fpm.d/www.conf &

デフォルトユーザ、グループのコメントを外して nginx を設定します。

SUSE Linux 15(openSUSE15.1 Leap) で php7 on nginx_a0056607_16091459.png

- cgi.fix_pathinfo を0に -

不要説もあるようですが php.ini の cgi.fix_pathinfo に0(無効) をセットします。php の古いバージョンではセキュリティリスクだったようです。過去の互換性の問題もあるようなで、別に有効にしておく必要もないようなのですから、教科書通り無効 (0) にしておくのが良いでしょう。

opensuse151:~ # gedit /etc/php7/cli/php.ini &
opensuse151:~ #

cgi.fix_pathinfo=0

cgi.fix_pathinfo boolean

SUSE Linux 15(openSUSE15.1 Leap) で php7 on nginx_a0056607_16093833.png

- デフォルトファイルに index.php を追加 -

/etc/mginx/nginx.conf にディレクトリ指定された時にデフォルトで開かれるファイル index.php を先頭に追加しておきます。

SUSE Linux 15(openSUSE15.1 Leap) で php7 on nginx_a0056607_16095850.png

- スクリプトのロケーションです - 

深く突っ込まれても困るのですが、 /etc/mginx/nginx.conf の "location...." のセクションはコメントを外し次の様に設定しました。


        location ~ \.php$ {
            root           /srv/www/htdocs/;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

--
fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
の行を
fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

に変えます。これでドキュメントルートのスクリプトを見つけるようです。

FastCGI Params
https://www.nginx.com/resources/wiki/start/topics/examples/phpfcgi/


SUSE Linux 15(openSUSE15.1 Leap) で php7 on nginx_a0056607_16104745.png

ー nginx の再起動とステータスの確認 ー

YaST > Service Manager から、nginxphp-fpm を自動起動(On Boot)をセット、Start (アクテブ) にします。「コマンドライン命」であれば、 systemctrl コマンドで enable/start させます。

SUSE Linux 15(openSUSE15.1 Leap) で php7 on nginx_a0056607_16112306.png



opensuse151:/srv/www/htdocs # systemctl restart nginx
opensuse151:/srv/www/htdocs # systemctl status  nginx
● nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2020-04-10 14:34:46 JST; 7s ago
  Process: 3475 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
Main PID: 3476 (nginx)
    Tasks: 2 (limit: 4915)
   CGroup: /system.slice/nginx.service
           ├─3476 nginx: master process /usr/sbin/nginx -g daemon off;
           └─3479 nginx: worker process

Apr 10 14:34:46 opensuse151 systemd[1]: Stopped The nginx HTTP and reverse proxy server.
Apr 10 14:34:46 opensuse151 systemd[1]: Starting The nginx HTTP and reverse proxy server...
Apr 10 14:34:46 opensuse151 nginx[3475]: nginx: the configuration file /etc/nginx/nginx.conf sy>
Apr 10 14:34:46 opensuse151 nginx[3475]: nginx: configuration file /etc/nginx/nginx.conf test i>
Apr 10 14:34:46 opensuse151 systemd[1]: Started The nginx HTTP and reverse proxy server.
opensuse151:/srv/www/htdocs #


- あれ?動かない.... -

と思ったらブラウザの VPN のエクステンションが有効になっていました。これにハマって二時間の無駄....
SUSE Linux 15(openSUSE15.1 Leap) で php7 on nginx_a0056607_16114819.png









by islandcenter | 2020-04-12 16:02 | SUSE | Comments(0)

SUSE15 で動かす nginx HTTP サーバー

 かつては WEB Lamp, Linux + Apache + PHP だったのですが、最近 nginx で動いている(エラーページでわかる)をよく見る様になりました。何をいまさら感ですが、遅まきながら nginx on SUSE15 の環境を作ってみました。
PR

- nginx とは

 nginx(エンジンエックス、エヌジンエックス)は 軽量な HTTP サーバーアプリケーションで、最近は多くのVPSプロバイダや、アクセスが多いサイトで急激に利用されており、ほぼ apache と人気を二分しています。

- nginx が伸びている背景

nginx が急速にシェアを伸ばしている背景として、昔から指摘されてきた apache の "C10K問題"があります。

Web2.0の先にあるC10K問題

 簡単に言うと(簡単じゃないけど)マルチプロセスで動作する apache はセッションごとにプロセス番号 (PID) が割り当てられるのですが、PIDは 32,767 個しかありません。バックグラウンドでプロセスを消費する複雑な処理では、いくつものプロセスとメモリが使われるため、リソースを食いつくしてしまいます。

opensuse151:~ # cat /proc/sys/kernel/pid_max
32768
opensuse151:~ #

という事で、apache では最大 10,000 セッションを境に急激にパフォーマンスが低下するという問題が指摘されてきました。

実際、apache を起動するだけで、7~8のプロセスが動作しています。パラレル動作に強い Apache という事でしょうか。

- nginx はイベント駆動

マルチプロセスの apache に対して、イベント駆動型の nginx は、仕組みが単純で少ないメモリ、プロセスでリクエストを処理できる、というメリットがあります。

 反面、apache の様な複雑な処理のように、イベントが長時間占有するリクエストは不得意です。そこで固定コンテンツが多い単純なウェブサイトには向いていますが、ストリーミングや MySQL などとの同居には向いていないようです。

むしろアプリケーションサーバをバックエンドにして nginx をフロントエンドに分けて使う事が多い様です。たまに 503エラーを吐いているサイトがありますが、これはバックエンドで問題を起こしているのでしょう。

Apache と比較するとシリアル処理に強いという感じですか。

- SUSE 15(SLE/openSUSE Leap)における nginx

SUSE 15 では nginx はリポジトリに含まれているので、YaST なり zypper で簡単にインストールできます。もしなければ opensuse.org より1クリックインストールできる様です。

nginx - A HTTP server and IMAP/POP3 proxy server (1 Click install)

SUSE で 1 Click インストールができない場合、YaSTにないメニューを追加

YaST (yast2) による SUSE Linux のパッケージ管理, インストールと削除

ただし、apache と違って、nginx は YaST に統合されていないため、手動で細かな設定をしなければなりません。オペレーティングシステムをインストールする際に、オプションとして同時にインストールできます。
情報の少なさ、運用者の経験不足というのが nginx の最大の問題かも知れません。

SUSEでは apache の設定は、ほぼ YaSTでできる
SUSE15 で動かす nginx HTTP, インストールとファーストインプレッション_a0056607_16455579.png

- YaSTで nginx をインストール

# yast (テキスト版) もしくは # yast2 (GUI版) で Software Management > "nginx" をサーチしてチェックマークを入れてインストールします。

SUSE15 で動かす nginx HTTP, インストールとファーストインプレッション_a0056607_16475503.png

次に、 Service Manager から nginx を start して、 起動モードを on boot にトグルします。

SUSE15 で動かす nginx HTTP, インストールとファーストインプレッション_a0056607_16482858.png

/srv/www/htdocs に index.html を作成して、ブラウザからアクセスできたら、とりあえずOKです。

SUSE15 で動かす nginx HTTP, インストールとファーストインプレッション_a0056607_16485559.png


TOAMIT 東亜産業 ハンドジェル アルコール配合 洗浄タイプ

 日本製 500ml 3本セット

新品価格¥4,980から
(2020/4/7 13:03時点)




ボヘミアン・ラプソディ 

(字幕版)

新品価格
¥399から
(2020/4/7 12:01時点)




- 次にやること -

SUSE Linux 15(openSUSE15.1 Leap) で php7 on nginx

- まとめ

まずは 「Linux で HTTP サーバを」と考えた場合、 nginx は軽量でインストールも簡単で良い選択でしょう。SUSE の場合 Just enough OS (JeOS)版に入れて、フロントエンドに多用してみるのも良いでしょう。

ただ、奥深く追いかけてみると apache の様な「決め技」が中々見つからずに苦労します。nginx + WordPress とか、apache とのロードバランス化した平行運用など、色々応用が利く様です。

やっぱり nginx の教科書は必要ですね。





by islandcenter | 2020-04-06 16:58 | SUSE | Comments(0)

- はじめに -

MovaXterm で Mac の VNC 接続を始めたら、やめられなくてもう一度、 vncserver の事を、復習してみます。

参考ドキュメント

8 VNCによるリモートアクセス
https://documentation.suse.com/ja-jp/sles/15-SP1/html/SLES-all/cha-vnc.html



- vncserver のインストール -

tigervnc がインストールされているか。YaST > Software Manegement で確認して、なければチェックしてインストールします。

SUSE Linux 15 (openSUSE Leap 15)の vncserver,VNC接続をする。_a0056607_13282884.png


opensuse151:~ # vncserver --help

usage: vncserver [:<number>] [-name <desktop-name>] [-depth <depth>]
[-geometry <width>x<height>]
[-pixelformat rgbNNN|bgrNNN]
[-fp <font-path>]
[-fg]
[-autokill]
[-noxstartup]
[-xstartup <file>]
<Xvnc-options>...

vncserver -kill <X-display>

vncserver -list



上の SLE15 のマニュアルにはこんな簡単な説明がありました。

手順 8.2: vncserverを使用した永続的VNCセッションの開始 REPORT DOCUMENTATION BUG#

1. シェルを開き、VNCセッションを所有するユーザとしてログインしていることを確認します。

2. VNCセッションで使用されるネットワークインタフェースがファイアウォールで保護されている場合は、ファイアウォール内でセッションによって使用されるポートを手動で開く必要があります。複数のセッションを開始する場合は、一連のポートを開くことができます。ファイアウォールの設定方法の詳細については、Chapter 16, Masquerading and Firewallsを参照してください。
vncserverは、ディスプレイ:1にはポート5901、ディスプレイ:2にはポート5902という順序でポートを使用します。永続的セッションの場合、VNCディスプレイとXディスプレイは、通常、同じ番号です。

3. 1024x768ピクセルの解像度と16ビットの色数でセッションを開始するには、次のコマンドを入力します。

vncserver -alwaysshared -geometry 1024x768 -depth 16

vncserverコマンドは、何も指定されない場合、未使用のディスプレイ番号を選択し、その選択内容を出力します。追加オプションについては、man 1 vncserverを参照してください。



opensuse151:~ # vncserver :0

You will require a password to access your desktops.

Password:12345678
Verify:12345678
Would you like to enter a view-only password (y/n)? n

New 'opensuse151:0 (root)' desktop is opensuse151:0

Creating default startup script /root/.vnc/xstartup
Creating default config /root/.vnc/config
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/opensuse151:0.log

opensuse151:~ #


※ desktop is opensuse151:0":0" に注意

- 仮想ホストの制限 -

※ 因みに SLES11, 以降の XEN/KVN の仮想 HVM を使っている場合、 lib-virt が使っているので vncserver :0 などの低いディスプレー番号は使えないようです。二桁以上のディスプレイ番号を使うと上手く動きました。

あるいは、単にディスプレー番号を指定せず vncserver .... を実行すると、最初に空きがある番号に自動的に割り当てられます。


sle15:~ # vncserver :10 <-- 怒られた
A VNC server is already running as :10
sle15:~ # vncserver :11 <-- 11 番は使えた

New 'corsair:11 (knakaj)' desktop is corsair:11

Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/corsair:11.log

sle15:~ #
sle15:~ # vncserver <-- 番号を指定しないで単純起動

New 'corsair:6 (root)' desktop is corsair:6 <-- :6 が割り当てられた

Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/corsair:6.log

sle15:~ #



- MobaXtermにより接続 -

MobaXterm
https://mobaxterm.mobatek.net

Session > VNC (必要に応じて "network settings" タブで SSH gateway 経由をチェック) で VNC 接続できました。

SUSE Linux 15 (openSUSE Leap 15)の vncserver,VNC接続をする。_a0056607_13290893.png

接続を切ります。

opensuse151:~ # ps ax | grep vnc*
14306 pts/0 Sl 0:01 /usr/bin/Xvnc :0 -auth /root/.Xauthority -desktop opensuse151:0 (root) -fp /usr/share/fonts/misc,/usr/share/fonts/75dpi,/usr/share/fonts/100dpi,/usr/share/fonts/Type1 -geometry 1024x768 -pn -rfbauth /root/.vn /passwd -rfbport 5900 -rfbwait 30000
15198 pts/0 S+ 0:00 grep --color=auto vnc*
opensuse151:~ #
opensuse151:~ # vncserver -kill :0
Killing Xvnc process ID 14306
opensuse151:~ #



- MacOS から VNC 接続 -

Finder > 移動 > サーバーに接続 > URL に

vnc://IP_Address:590n

(n は vncserver を立ち上げた時に指定した :0 のディスプレイ番号のパラメータ)

SUSE Linux 15 (openSUSE Leap 15)の vncserver,VNC接続をする。_a0056607_13333603.png


- セキュリティ -

- デフォルトポートの変更

デフォルトでは 5900 番台のポートが使われるので、いたずら対策にこのポートを変えておく事です。

/usr/bin/vncserver スクリプトの

$vncPort = 5900 + $displayNumber;


の行を任意の違うポートに変えておくと良い。

SUSE Linux 15 (openSUSE Leap 15)の vncserver,VNC接続をする。_a0056607_13365237.png


あるいは "vncserver :1000" の様に、一桁多いディスプレイ番号を割り当てる。

- ファイアウォール

ファイアウォールはポート 5900 から開けておくこと。勿論、 vncserver のポートを変えた場合ほそのポートを開ける事になります。

- パスワード

接続するパスワードは vncpasswd コマンドで変更され。 ~: .vnc に保管される。もし動作が妖しければ、このディレクトリの中を削除すればリセットされる。vnc パスワードは最長8バイトであり脆弱である事に注意します。頻繁に変えるか、使う予定がなければ vncserver を立ち上げっぱなしにしない事をお勧めします。(そういう時に使いたくなるんですけど....)


opensuse151:~/.vnc # vncpasswd
Password:
Verify:
Would you like to enter a view-only password (y/n)? n
opensuse151:~/.vnc # ls -l
total 64
-rw-r--r-- 1 root root 332 Feb 27 14:56 config
-rw------- 1 root root 8 Feb 28 13:24 passwd
-rwxr-xr-x 1 root root 639 Feb 27 14:56 xstartup
-rw-r--r-- 1 root root 34652 Feb 28 11:12 opensuse151:0.log
-rw-r--r-- 1 root root 6 Feb 28 11:09 opensuse151:0.pid
-rw-r--r-- 1 root root 8788 Feb 27 18:10 opensuse151:1.log


- 暗号化

vnc プロトコルは、telnet 同様、暗号化されない平文通信なので、デリケートなケースでは安易に使わない事。 SSH によるポート転送との組み合わせを勧めます。少なくとも MovaXterm には VNC 接続の中に SSH ゲートウェイの設定があるのは単純にすごい。

Mac の ”画面共有” は暗号化されないので注意。SSH トンネリングする方法があるので "mac vnc ssh トンネル" などで検索してください。


- まとめ -

一つしかないモニタに複数のホストを扱う事は、システム管理にとっては便利な機能です。しかし、vncserver を改めて研究してみると、そこには大きな脆弱性や欠陥が見えてきました。便利な反面、セキュリティホールでもあるんですね。

今回は Windows の RDP については説明はしませんが、やっぱり RDP 接続も脆弱性があるので、何だかなぁ、という気分です。事業所内のプライベートネットワークであればまだしも、「働き方改革」なんかで、自宅からリモート接続したい、などの要求は高まるばかり。利便さと脆弱性との両立って難しいのです。

ますますインフラ系の技術者にとっては厳しい要求があるのですね。









by islandcenter | 2020-02-29 13:30 | SUSE | Comments(0)

- はじめに -

久しぶりに SUSE 11 の仮想マシンを起動したら、見事にコケました、仕方がないので、 fsck して起動しましたが、あまりいいものじゃありません。


SUSE Linux Enterprise 12 から採用され、以降 SUSE Linux 15(SLE/openSUSE15) で openSUSE Leap で使われている BtrFS は、やれ「修復のため起動時の fsck の必要がない」とか、fsck しないので起動が速いとか、起動中にファイルシステムのチェックができるとか、いいことばかり書かれています。実際、この記事を書く時にたどり着いた情報は「BtrFS にクソハマった話」ばかりなのですが、それほど情報が少ないのはやはり安心して使えるファイルシステムだからでしょう。

現実には、論理障害よりも、物理障害もあるわけですから、

「困った!」

時のために、BtrFS の、修復だとかチェック、メンテナンス、スナップショットの設定の方法について、ちゃんと勉強しておくことにします。

- 参考にしたドキュメント -

SDB:BTRFS


- btrfs の修復 -

btrfs scrub start [mount_point]

パーティションの論理障害を修復します。

opesuse151:~ # btrfs scrub start /
scrub started on /, fsid 8466aee4-2738-4b0a-924a-79edad4b4676 (pid=23058)
opesuse151:~ #

- 前回 scrub した結果の確認 -

brtfs scrub status [mount_point]

scrub した結果を確認します。

opesuse151:~ # btrfs scrub status /
scrub status for 8466aee4-2738-4b0a-924a-79edad4b4676
scrub started at Wed Feb 26 14:05:43 2020 and finished after 00:01:50
total bytes scrubbed: 7.54GiB with 0 errors
opesuse151:~ #

-dR オプションを付けると詳細な情報が分かります。

opesuse151:~ # btrfs scrub status -dR /
scrub status for 8466aee4-2738-4b0a-924a-79edad4b4676
scrub device /dev/vda2 (id 1) history
scrub started at Wed Feb 26 14:05:43 2020 and finished after 00:01:50
data_extents_scrubbed: 247304
tree_extents_scrubbed: 31902
data_bytes_scrubbed: 7577907200
tree_bytes_scrubbed: 522682368
read_errors: 0
csum_errors: 0
verify_errors: 0
no_csum: 5030
csum_discards: 0
super_errors: 0
malloc_errors: 0
uncorrectable_errors: 0
unverified_errors: 0
corrected_errors: 0
last_physical: 11178868736
opesuse151:~ #

- btrfs のファイルシステムのチェック -

btrfs check [/dev/partition]

ファイルシステムのパーティションチェックです。

※ --force を付けるとマウント中のファイルシステムをチェックできる。

opesuse151:~ # btrfs check --force /dev/vda2
Opening filesystem to check...
WARNING: filesystem mounted, continuing because of --force
Checking filesystem on /dev/vda2
UUID: 8466aee4-2738-4b0a-924a-79edad4b4676
[1/7] checking root items
[2/7] checking extents
[3/7] checking free space cache
[4/7] checking fs roots
[5/7] checking only csums items (without verifying data)
[6/7] checking root refs
[7/7] checking quota groups skipped (not enabled on this FS)
found 7839363072 bytes used, no error found
total csum bytes: 7380260
total tree bytes: 261373952
total fs tree bytes: 238518272
total extent tree bytes: 13942784
btree space waste bytes: 41699539
file data blocks allocated: 7779311616
referenced 7561506816
opesuse151:~ #

- btrfs での df (利用量)の確認 -

btrfs filesystem df [mount_point]

従来の df コマンドの代わりになるものです。

opesuse151:~ # btrfs filesystem df /
Data, single: total=8.01GiB, used=7.06GiB
System, DUP: total=32.00MiB, used=16.00KiB
Metadata, DUP: total=1.12GiB, used=249.25MiB
GlobalReserve, single: total=21.73MiB, used=0.00B
opesuse151:~ #

btrfs filesystem usage [mount_point]

opesuse151:~ # btrfs filesystem usage /
Overall:
Device size: 14.00GiB
Device allocated: 10.32GiB
Device unallocated: 3.68GiB
Device missing: 0.00B
Used: 7.54GiB
Free (estimated): 4.63GiB (min: 2.79GiB)
Data ratio: 1.00
Metadata ratio: 2.00
Global reserve: 21.73MiB (used: 0.00B)

Data,single: Size:8.01GiB, Used:7.06GiB
/dev/vda2 8.01GiB

Metadata,DUP: Size:1.12GiB, Used:249.25MiB
/dev/vda2 2.25GiB

System,DUP: Size:32.00MiB, Used:16.00KiB
/dev/vda2 64.00MiB

Unallocated:
/dev/vda2 3.68GiB
opesuse151:~ #

- デフォルトのメンテナンスは一週間ごと -

sysconfig の File systems の中に、自動メンテナンスの間隔を設定します。

"BTRFS_BALANCE_PERIOD" のキーに設定されます。デフォルトは weekly となっています。

SDB:Disable btrfsmaintenance

weekly から none にすると、無効となります。

SUSE Linux 15 BtrFS のファイルシステム自動修復、チェック、スナップショット_a0056607_13465207.png

- snappper の初期設定 -

snapper は初期設定では無効です。snapper コマンドでスナップショットを初期化します。

snapper -c create [YourSnapSotName] create-config [PathToYouNeedSpapShot]

ここではルートパーティション全体を取っていますが、例えば DB ファイルがあるところとか、 /srv/www/htdocs などを指定します。設定ファイルは /etc/snapper/configs/ の下に作られます。

opesuse151:~ # snapper -c mysnapconfig create-config /
opesuse151:~ #
opesuse151:~ # ls /etc/snapper/configs -l
total 4
-rw-r----- 1 root root 1169 Feb 27 10:37 mysnapconfig
opesuse151:~ #
opesuse151:~ # cat /etc/snapper/configs/mysnapconfig


# subvolume to snapshot
SUBVOLUME="/"

# filesystem type
FSTYPE="btrfs"


# btrfs qgroup for space aware cleanup algorithms
QGROUP=""


# fraction of the filesystems space the snapshots may use
SPACE_LIMIT="0.5"

# fraction of the filesystems space that should be free
FREE_LIMIT="0.2"


# users and groups allowed to work with config
ALLOW_USERS=""
ALLOW_GROUPS=""

# sync users and groups from ALLOW_USERS and ALLOW_GROUPS to .snapshots
# directory
SYNC_ACL="no"


# start comparing pre- and post-snapshot in background after creating
# post-snapshot
BACKGROUND_COMPARISON="yes"


# run daily number cleanup
NUMBER_CLEANUP="yes"

# limit for number cleanup
NUMBER_MIN_AGE="1800"
NUMBER_LIMIT="50"
NUMBER_LIMIT_IMPORTANT="10"


# create hourly snapshots
TIMELINE_CREATE="yes"

# cleanup hourly snapshots after some time
TIMELINE_CLEANUP="yes"

# limits for timeline cleanup
TIMELINE_MIN_AGE="1800"
TIMELINE_LIMIT_HOURLY="10"
TIMELINE_LIMIT_DAILY="10"
TIMELINE_LIMIT_WEEKLY="0"
TIMELINE_LIMIT_MONTHLY="10"
TIMELINE_LIMIT_YEARLY="10"


# cleanup empty pre-post-pairs
EMPTY_PRE_POST_CLEANUP="yes"

# limits for empty pre-post-pair cleanup
EMPTY_PRE_POST_MIN_AGE="1800"

詳細はこちらをご参考下さい。

4 Snapperによるスナップショットとロールバック

SLES12 の Snapper のチューニング

- snapper のスナップショットの設定 -

snapper を起動したら、YaST2 snapper で、スナップショットの設定をします。

opesuse151:~ # yast2 &

SUSE Linux 15 BtrFS のファイルシステム自動修復、チェック、スナップショット_a0056607_13430414.png

定義したパーティションルートに .snapshot ディレクトリが創られます。ここは snapshot の保管場所です。

opesuse151:~ # ls /.snapshots/1/snapshot/
.snapshots boot etc lib mnt proc run selinux sys usr
bin dev home lib64 opt root sbin srv tmp var
opesuse151:~ #


SUSE Linux 15 BtrFS のファイルシステム自動修復、チェック、スナップショット_a0056607_13480760.png

実際のスナップショットの取り方、ロールバックの方法はこちらの過去記事をご参考にしてください。

SLES12が採用した btrfs, snapper を使った Snap Shot
なるほど、SUSE Linux 12, 15 でルートパーティションは標準の BtrFS は COW (Copy On Write) なので、ファイルの論理障害には強いんだ、という事です。しかし物理障害には無力な事には変わりません。やっぱり必要なのはバックアップです。

一通りやってみて、Windows の起動直後の chkdisk や EXT3 の場合の fsck の待ち時間を考えると実に楽になったなと実感しています。








by islandcenter | 2020-02-27 14:20 | SUSE | Comments(0)