isLandcenter 非番中

ブログトップ | ログイン

- zabbix5 で SUSE Linux15(SLE openSUSE Leap) を監視する。snmp Agent, zabbix Agent の設定 -

ここでは、SUSE Linux Enterprise 15 (SLE15) と openSUSE Leap 15 を対象に zabbix 5.2 で監視する snmp と zabbix Agent の設定方法について説明しています。

ー snmpd の設定

YaST か zypper で net-snmp パッケージをインストールします。

# yast

Software > Software Management より "snmp" などでサーチして net-snmp をインストールrします。

zabbix5 で SUSE Linux15(SLE openSUSE Leap) を監視、snmp Agent, zabbix Agent の設定_a0056607_13313231.png

/etc/snmp/snmpd.conf の rocommunity の行に、 Community string ここでは "public" とネットワークアドレスを設定します。

opensuse15:~ # cat /etc/snmp/snmpd.conf | grep community
# to enable it uncomment the rwcommunity line and change the community
# rocommunity public 127.0.0.1
rocommunity public 192.168.1.0/24
# rwcommunity mysecret 127.0.0.1
opensuse15:~ #

# yast

System > Services Manager より、snmpd を Start, On boot enable にセットします。もしくは systemctl コマンドで有効化します。

zabbix5 で SUSE Linux15(SLE openSUSE Leap) を監視、snmp Agent, zabbix Agent の設定_a0056607_13320239.png

systemctrl で行う場合

opensuse15:~ # systemctl start snmpd
opensuse15:~ # systemctl enable snmpd
opensuse15:~ # systemctl status snmpd
● snmpd.service - Simple Network Management Protocol (SNMP) Daemon.
Loaded: loaded (/usr/lib/systemd/system/snmpd.service; enabled; vendor preset: disabled)
Active: active (running) since Sun 2021-01-03 16:54:32 JST; 2s ago
Main PID: 7541 (snmpd)
Tasks: 1
CGroup: /system.slice/snmpd.service
└─7541 /usr/sbin/snmpd -LS0-6d -f

Jan 03 16:54:34 opensuse15 snmpd[7541]: Connection from UDP: [192.168.1.221]:59884->[192.168.1.3]:161

: 略

opensuse15:~ #


zabbix サーバー側から snmpwalk で string が返ってくるか確認します。

zabbix:~ # snmpwalk -v 2c -c public opensuse15.mydomain.com .1.3.6.1.2.1.1
SNMPv2-MIB::sysDescr.0 = STRING: Linux opensuse15 5.3.18-lp152.19-default #1 SMP Tue Jun 9 20:59:24 UTC 2020 (960cb00) x86_64
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (4960) 0:00:49.60
:
: 略
:

ー Community String の変更

WAN 越しにクラウドサービスを監視したい場合や大規模ネットワークの場合、 Community String をデフォルトから変更して運用するケースが多くあると思います。

その場合、Configuration > Hosts > "Your Hostname" > Macros > Inherited host macros を選んで

zabbix5 で SUSE Linux15(SLE openSUSE Leap) を監視、snmp Agent, zabbix Agent の設定_a0056607_11382838.png

{$SNMP_COMMUNITY} > Change リンク > 「"public" を別なストリングに変更」します。

zabbix5 で SUSE Linux15(SLE openSUSE Leap) を監視、snmp Agent, zabbix Agent の設定_a0056607_11385719.png

ー zabbix agent のインストールと設定

次のページから、SUSE Linux Enterprise 15 用のリポジトリを登録するコマンドをコピーして実行します。

Download and install Zabbix

zabbix5 で SUSE Linux15(SLE openSUSE Leap) を監視、snmp Agent, zabbix Agent の設定_a0056607_13323494.png


SUSE Linux Enterprise 15 用のコマンドは次の様に記述されています。

# rpm -Uvh --nosignature https://repo.zabbix.com/zabbix/5.2/sles/15/x86_64/zabbix-release-5.2-1.sles15.noarch.rpm
# zypper --gpg-auto-import-keys refresh 'Zabbix Official Repository'

リポジトリの登録ができたら zypper か YaST を使って zabbix agent をインストールします。

# yast

Software > Software Management で "zabbix" でサーチ、zabbix-agent をインストールします。

zabbix5 で SUSE Linux15(SLE openSUSE Leap) を監視、snmp Agent, zabbix Agent の設定_a0056607_13325625.png

/etc/zabbix/zabbix_agentd.conf Seerver= , ServerActive= の2行に送信先 zabbix Server のアドレスを記述します。

sles15:~ # cat /etc/zabbix/zabbix_agentd.conf | grep mydomain.com
Server=zabbix.i.mydomain.com
ServerActive=zabbix.i.mydomain.com
sles15:~ #

YaST か systemctl コマンドで zabbix agent を有効化します。

YaST > System > Services Manager で、 Zabbix Agent を Active/Onboot に設定します。

zabbix5 で SUSE Linux15(SLE openSUSE Leap) を監視、snmp Agent, zabbix Agent の設定_a0056607_13331746.png

エラーがないか確認します。

sle15:~ # systemctl status zabbix-agent
● zabbix-agent.service - Zabbix Agent
Loaded: loaded (/usr/lib/systemd/system/zabbix-agent.service; enabled; vendor preset: di>
Active: active (running) since Sun 2021-01-03 17:12:04 JST; 30s ago
Process: 12512 ExecStart=/usr/sbin/zabbix_agentd -c $CONFFILE (code=exited, status=0/SUCC>
Main PID: 12514 (zabbix_agentd)
Tasks: 6
CGroup: /system.slice/zabbix-agent.service
├─12514 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
├─12515 /usr/sbin/zabbix_agentd: collector [idle 1 sec]
├─12516 /usr/sbin/zabbix_agentd: listener #1 [waiting for connection]
├─12517 /usr/sbin/zabbix_agentd: listener #2 [waiting for connection]
├─12518 /usr/sbin/zabbix_agentd: listener #3 [waiting for connection]
└─12519 /usr/sbin/zabbix_agentd: active checks #1 [idle 1 sec]

Jan 03 17:12:04 opensuse15 systemd[1]: Starting Zabbix Agent...
Jan 03 17:12:04 opensuse15 systemd[1]: Started Zabbix Agent.

後は、サーバー側の設定で zabbix Agent と snmp agent で監視します。

ー まとめ

zabbix と SUSE Linux (SLE/openSUSE Leap) で監視ターゲット側の設定をまとめました。

openSUSE Leap は 15 以降、SUSE Linux Enterprise との互換性が高くなり共通点も多く、デスクトップ用途以外のサーバ用途でも安定しています。I/F をはじめとするルック&フィールも SLE と共通なので、ヘルプデスクやオペレータのトレーニングにも最適です。

openSUSE Leap は使いやすいディストリビューションになりました。中小規模環境でミッションクリティカルな用途以外で zabbix の様な用途で openSUSE Leap を使うのは一つの良い選択です。

ここにない内容は次の記事を参考にしてください。

Zabbix3 でSNMPデバイスを監視する

How to setup zabbix4.2 on openSUSE Leap 15.1 セットアップ

Zabbix4.2 snmp監視 デバイスのグラフを表示させるまで

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

Zabbix 5.2 on openSUSE Leap 15.2 





by islandcenter | 2021-01-04 13:44 | SUSE | Comments(0)

postfix 送信キューの確認と削除


- 送信キューの確認 -


mail2:~ # postqueue -p
-Queue ID-  --Size-- ----Arrival Time---- -Sender/Recipient-------
C16E980855B      276 Wed Aug 19 13:34:44  dummy@islandcenter.jp
      (connect to mail.islandcenter.jp[153.125.134.9]:25: Connection timed out)
                                         knakaj@mail.i.islandcenter.jp

8713D80855C     2589 Wed Aug 19 15:31:00  MAILER-DAEMON
      (connect to mail.islandcenter.jp[153.125.134.9]:25: Connection timed out)
                                         dummy@islandcenter.jp

-- 2 Kbytes in 2 Requests.


- 送信キューディレクトリ -


mail2:~ # ls /var/spool/postfix/deferred/ -al
total 0
drwx------  5 postfix root     33 Aug 20 13:50 .
drwxr-xr-x 16 root    root    201 Aug  7 02:12 ..
drwx------  2 postfix postfix  25 Aug 20 13:50 2
drwx------  2 postfix postfix   6 Aug 20 10:15 8
drwx------  2 postfix postfix   6 Aug 20 10:15 C
mail2:~ # ls /var/spool/postfix/deferred/2 -al
total 4
drwx------ 2 postfix postfix  25 Aug 20 13:50 .
drwx------ 5 postfix root     33 Aug 20 13:50 ..
-rwx------ 1 postfix postfix 925 Aug 20  2020 24D1680855B




- 全て削除 -


mail2:~ # postsuper -d ALL
postsuper: Deleted: 1 message
mail2:~ #
mail2:~ # cat /var/spool/postfix/deferred/2/24D1680855B
cat: /var/spool/postfix/deferred/2/24D1680855B: No such file or directory

mail2:~ # postqueue -p
Mail queue is empty
mail2:~ #





タグ:
by islandcenter | 2020-08-20 14:09 | Linux | Comments(0)

何かと引きこもりになりがちな今日この頃です。テーマを決めないと次の目標が見つからないので、電子メールのシステムを勉強してみる事にしました。

電子メールシステムは難しい? openSUSE Leap 15.2 でメールサーバ

- まずは Telnet でメールを送る -

これまで、馬鹿の一つ覚えの様に GroupWise 一辺倒だったのですが、これではイカンと一念発起です。

- openSUSE Leap 15.2 では Postfix はデフォルト -

openSUSE Leap 15.2 では、デフォルトで Postfix MTA がインストールされています。OSインストールの際にDNSと Hostname を設定したので、SUSE Linux では、自動的に、 /etc/postfix/main.cf の hostname 変数には FQDN がセットされています。

SUSE のデフォルトです。

mail:~ # cat /etc/postfix/main.cf | grep islandcenter
myhostname = mail.i.islandcenter.jp
mail:~ #

まずはここから何を行えるかを見てみましょう。

- telnet のインストール -

Postfix はじめ MTA を学ぶためには、一番基礎となるのが telnet を使った、メールの送信です。telnet で基本的な操作をして、メール(MTA) のプロトコル学んでください、という事ですね。

telnet は deprecated (非推奨) なプログラムなので、手動でインストールします。

yast > Software management > "telnet" を検索してスペースキーでチェックしてインストールできます。

メールサーバー入門、とりあえず openSUSE Leap 15.2 初期設定の postfix から telnet してみる_a0056607_12110468.png

- telnet でメールを送る -

次に、root に telnet でテストメールを送ってみます。太字は実際タイプした文字です。


knakaj@mail:~> telnet localhost 25
Trying ::1...
Connected to localhost.
Escape character is '^]'.
220 mail.i.islandcenter.jp ESMTP
ehlo mail.i.islandcenter.jp
250-mail.i.islandcenter.jp
250-PIPELINING
250-SIZE
250-ETRN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-DSN
250-SMTPUTF8
250 CHUNKING
mail from: <knakaj@mail.i.islandcenter.jp>
250 2.1.0 Ok
rcpt to: <root@mail.i.islandcenter.jp>
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
Subject: Hello Root!

Hello Im your user...

.
250 2.0.0 Ok: queued as 064D8808541
quit
221 2.0.0 Bye
Connection closed by foreign host.
knakaj@mail:~> 

- mail コマンドでメールを読む -

デフォルト(無指定状態)では postfix は mbox 形式です。



mail:~ #
You have mail in /var/spool/mail/root
mail:~ #
mail:~ # ls /var/spool/mail/ -al
total 4
drwxrwxrwt  2 root root  18 Aug  7 17:06 .
drwxr-xr-x 11 root root 132 Aug  7 10:59 ..
-rw-------  1 root root 588 Aug  7 17:06 root
mail:~ # mail
Heirloom mailx version 12.5 7/5/10.  Type ? for help.
"/var/spool/mail/root": 1 message 1 new
>N  1 knakaj@mail.i.isl Fri Aug  7 17:06   15/588   Hello Root!
? 1
Message  1:
From knakaj@mail.i.islandcenter.jp  Fri Aug  7 17:06:08 2020
X-Original-To: root@mail.i.islandcenter.jp
Delivered-To: root@mail.i.islandcenter.jp
Subject: Hello Root!
Date: Fri,  7 Aug 2020 17:03:40 +0900 (JST)
From: knakaj@mail.i.islandcenter.jp

Hello Im your user...


? quit
Saved 1 message in mbox
mail:~ # ls mbox -al
-rw------- 1 root root 599 Aug  7 17:07 mbox
mail:~ #


メールを読み終わると、/etc/spool/mail にあったメールは ~: mbox ファイルに本文がマージされ移動します。

- メールの保存形式を Maildir に変える -

- Maildir に変更 -

- mbox と Maildir との違い

mbox は、旧来のメール保管方式で、私が初めて触った HP-UX もこの方式でした。受信したメールは SUSE Linux では /var/spool/mail/User_name ファイルにスプールされ、mail コマンドで読むと /home/User_Home/mbox ファイルに切り貼りされます。

後方互換性は良いのですが、単一のテキストファイルをロックして、該当のメールを切り貼りするため、スプールや受信メールが破損しやすいという欠点があります。

一方、Maildir 方式は /home/User_Home/Maildir の下に tmp, new, cur, というディレクトリが作られ、メール本文はメール毎に別ファイルとして tmp -> new -> cur のそれぞれのディレクトリにスプール -> 未読 -> 既読、とステータスを変更しながらハードリンクを切り替える方式です。一見複雑ですが、動作が単純なので、現在はこの方法が主流の様です。

mail コマンドは、デフォルトで mbox を使いますが、openSUSE Leap 15.2 はじめ最新の Linux の mail コマンドでは

localhost :~ > mail -f ./Maildir

を実行することで従来の mail コマンドと同じ処理をしてくれるわけです。

/etc/postfix/main.cf の次の一行をコメントアウトして postfix を再起動します。

mail:~ # cat /etc/postfix/main.cf | grep home_mailbox
# The home_mailbox parameter specifies the optional pathname of a
#home_mailbox = Mailbox
home_mailbox = Maildir/
mail:~ #

mail:~ # postfix check
mail:~ #
mail:~ # systemctl stop  postfix.service
mail:~ # systemctl start postfix.service
mail:~ #

Telnet でメールを送ってみた。

mail:~ # ls -l ./Maildir/
total 0
drwx------ 1 root root  0 Aug  8 14:48 cur
drwx------ 1 root root 62 Aug  8 14:48 new
drwx------ 1 root root  0 Aug  8 14:48 tmp
mail:~ #
mail:~ # mail -f ./Maildir/
Heirloom mailx version 12.5 7/5/10.  Type ? for help.
"./Maildir/": 1 message 1 new
>N  1 knakaj@mail.i.isl Sat Aug  8 14:45   15/546
? 1
Message  1:
From knakaj@mail.i.islandcenter.jp Sat Aug  8 14:45:48 2020
X-Original-To: root@mail.i.islandcenter.jp
Delivered-To: root@mail.i.islandcenter.jp
subjecct: to root home_dir ...!
Date: Sat,  8 Aug 2020 14:45:48 +0900 (JST)
From: knakaj@mail.i.islandcenter.jp

open your mail dir !

Thnks....

? q
"./Maildir/" updated.
mail:~ #

一応、デフォルトの mbox から ~/Maildir/ 形式に変わったようです。





isLandcenter.jp










by islandcenter | 2020-08-14 12:11 | Linux | Comments(0)

なぜ、電子メールシステムは難しく感じるか

- ついに Postfix に手を出す -

今まで電子メールと言えば Gmail か Novell GroupWise と、あとはレンタルドメインのメールシステムしか扱ってこなかった私が Postfix に手が出なかった理由はいくつかあります。やっぱり

「電子メールは難しい」

という先入観でした。Psttfix の勉強を始めて改めてその難しさに気が付きました。




- どこまで何を目標とするか -

ITエンジニアやプログラマの初心者がまず陥る問題点として、「何をどこまでヤルか」を自己定義できない事があります。いわゆる「要件定義」という奴なのでしょうが、ここでぶつかると、研究に必要な機材、ソフトウェア、教科本の選択など、ありとあらゆる問題点にぶち当たります。つまり、根本的に技術者としてのセンスがない。

本来、アプリケーション向けの技術者ではないので、手持ちの機材、環境でできる事、できないから調達しなければならないサービスや機材、ソフトウェアも検討しなければなりません。

私のテスト環境は、一般的な DSL の通信回線で、ほぼ固定IPで、ドメインの逆引きもできますが、DNSの MX レコードがないため、たとえ自宅サーバーからメールの送受信ができる様にしたいと思っても、かなり困難で、若干の運用費用が掛かります。そもそも自宅環境から、ポート開放して公開する事も難しい。まだ CGN ではなくシェアド IP じゃないのですが MX レコードを使える無料DNSってなかなか見つからない。


そこで、自ドメイン名でメールの受信は目標から外すことにします。最終的には、自メールサーバー経由でインターネット宛にメールが転送でき、レンタルサーバーの受信メールを、自メールサーバーに転送できれば良いのですが、道のりは遠そうです。

最終的な目標は、自ドメインのレンタルサーバースペースに Postfix と Dovecot を導入して運用することです。


- DNS, MTA, POP/IMAP, MUA, ファイアウォール, 何が原因だ -

電子メールのシステムを構築するうえで面倒なのは、DNS とMTAとの関係、MTA と POP/IMAP の関係、POP/IMAP とメーラの相性問題、ファイアウォール、認証システム、メールリレーなどのセキュリティ全般を一つ纏めて面倒を見なければならない事。どこか一つに問題があれば、メールが読めない、送れない、重大なセキュリティホールになり易い。こんな面倒な問題になってしまいます。

(正直言って GroupWise の Internet Agent で止めときゃ良かった)

- クローズした環境でのトレーニングが難しい -

もし、一つの企業なり組織なりの内部のネットワーク内でメールの読み書きができればいいのであれば、さほど苦労はいらないでしょう。

しかし、電子メールは社外とのやり取りが重要なので、こちらから送っても無効が拒否してしまっては役に立ちません。逆もありえまず。しかも普及しきった電子メールは、社会のインフラであり、わずかな時間のサービス停止も、エンドユーザは好みません。

つまりリハーサルなしの一発勝負なんですね。これも電子メールに中々手が出ない理由の一つです。


- 用途、目的により設定が異なる -

つまり要件によって設定を検討しなければならないという事。仮想化システムや Web LAMP, Zabbix, Samba など一発設定してしまえるシステムと違い、メールのシステムは、目標となる要件定義から設定までやる事が幅広すぎます。

そして、SUSE LInux お得意の YaST ツールが全く役に立たない。YaST で GUI 設定ができないのが Linux のメール構築なのです。 GroupWise の GUI 設定は有難かった。

- 伝統的で資料は豊富だが情報が古い -

インターネットの歴史は電子メールとともにあり、インターネットサービスの中では長い歴史を持っています。

それだけに、資料は豊富ですが、一概に書籍では古い資料が多く、最新の情報を求めると、どうしても断片的な情報に偏りやすい傾向にあります。古い「教科書」を頼りにすれば、セキュリティ上の問題が軽くかたられたり、最新の情報を求めると、分断された情報の破片だけが手に入ります。

横断的に「実用的」な資料が少ない所が困った所です。


- 電子メールは SaaS に一番適したシステムで触れる機会がない  -

電子メールは、クラウドサービスの一部として SaaS に最も適したサービスです。インターネット普及期の1990年代中頃のように、構内ネットワークの重要なコンポーネントの座を譲り、いまや「メールサービスを借りる」ことが時代の流れなのですね。

そういった中では「電子メールシステムのブラックボックス化」が進行しています。一般の社内SEが管理するより、SaaSサービスに一括「お任せ」した方がコストは低い。

--

それでも ISP/ASP のサービスでは電子メールは重要なコンポーネントですし、SaaS に頼らない、あるいは頼れない場合は、電子メールシステムのスクラッチアンドビルドとメンテナンスは欠かせません。

ということで、少なくとも「電子メールのしくみ」というものを勉強するため、Postfix/Devecot に挑戦してみます。

メールサーバー入門、とりあえず openSUSE Leap 15.2 初期設定の postfix から telnet してみる



by islandcenter | 2020-08-12 12:15 | Linux | Comments(0)

BtrFS の甘い罠、SUSE Linux アップデート前の空き容量の確認と確保_a0056607_13230031.png

BtrFS の甘い罠、アップデートの前に空き容量を確保

どんなショボいシステムでも、安易に変更は加えない方がいいわけです。
openSUSE Leap 15.1 のシステムを

 # zypper dup

したところ、見事に罠にハマりました。BtrFS の罠です。スナップショットを取っているので、空き容量がなかったんです。
空き容量がないところでパッケージのアップデートなんかすると、openSUSE Leap 15x はルートパーティションが Copy On Write の BtrFS ですからファイルは上書きではなく、差分をドンドンと CoW してしまう。遂にディスクの空きを使い果たして、中途半端な zypper dup の結果、

「システムが立ち上がらない」

という最悪の結果に陥りました。BtrFS のスナップショットの残骸ってロック掛かっていて、レスキューディスクで起動しても消せないのですね。

という事で、BtrFS のファイルシステムに変更を加える場合は

「空き容量を確認して空きを確保してから行え」

という「鉄の法則」を学びました。



- BtrFS 空き容量確認 -

How much free space do I have? or My filesystem is full, and I've put almost nothing into it!

1 Linuxファイルシステムの概要

これらのドキュメントによると


 opensuse151:~ # btrfs fi show
Label: none  uuid: 8466aee4-2738-4b0a-924a-79edad4b4676
        Total devices 1 FS bytes used 8.13GiB
        devid    1 size 14.00GiB used 10.57GiB path /dev/vda2
opensuse151:~ #

"
ファイルシステムの合計サイズとその使用量を表示します。最後の行のこれら2つの値が一致する場合、ファイルシステム上の領域はすべて割り当て済みです。
"
上のケースでは14Gbのデバイスサイズのうち、 10.57Gb 使用中です。

opensuse151:~ # btrfs fi df /
Data, single: total=8.01GiB, used=7.50GiB
System, DUP: total=32.00MiB, used=16.00KiB
Metadata, DUP: total=1.25GiB, used=641.95MiB
GlobalReserve, single: total=30.22MiB, used=0.00B
opensuse151:~ #

"
ファイルシステムの割り当て済みの領域(total)および使用済みの領域の値を表示します。メタデータのtotalおよびusedの値がほぼ等しい場合、メタデータ用の領域はすべて割り当て済みです。

メタデータ 1.25 Gb 中、641Mb 使用中です。

opensuse151:~ # btrfs fi usage /
Overall:
    Device size:                  14.00GiB
    Device allocated:             10.57GiB
    Device unallocated:            3.43GiB
    Device missing:                  0.00B
    Used:                          8.76GiB
    Free (estimated):              3.93GiB      (min: 2.22GiB)
    Data ratio:                       1.00
    Metadata ratio:                   2.00
    Global reserve:               30.22MiB      (used: 0.00B)

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

Metadata,DUP: Size:1.25GiB, Used:641.95MiB
   /dev/vda2       2.50GiB

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

Unallocated:
   /dev/vda2       3.43GiB
opensuse151:~ #


前の2つのコマンドを組み合わせたのと同様のデータを表示します

つまり btrfs fi usage <mount_point> が一番使われやすいコマンドだという事です。

- ncdu, du コマンド -

duコマンドは当てになりません。ncdu でルートからスキャンしたらこれ。このシステムは物理的に25Gbしかない仮想VMです。

BtrFS の甘い罠、SUSE Linux アップデート前の空き容量の確認と確保_a0056607_13232822.png

スナップショットサイズが「150Gb 使用中」と、あり得ない数字を示しています。

- 完全な見積は不可能 -

こちらの文書の中に

How much free space do I have? or My filesystem is full, and I've put almost nothing into it!

"
So, in general, it is impossible to give an accurate estimate of the amount of free space on any btrfs filesystem. Yes, this sucks. If you have a really good idea for how to make it simple for users to understand how much space they've got left, please do let us know, but also please be aware that the finest minds in btrfs development have been thinking about this problem for at least a couple of years, and we haven't found a simple solution yet.
"

Google 先生の翻訳によると

"
したがって、一般に、btrfsファイルシステムの空き容量を正確に見積もることは不可能です。はい、これは最悪です。ユーザーがどれだけのスペースを残したかを簡単に理解できるようにする方法について本当に良いアイデアがある場合は、私たちに知らせてください。また、btrfs開発の最高の心がこの問題について考えていることに注意してください。少なくとも数年間は、簡単な解決策はまだ見つかりませんでした。
"

とあり、もう BtrFS では、正確な空き容量確認は現時点で「不可能」と断じています。

そもそも、ファイルコピーの段階で、当然システムの API は空き容量を確認するわけですが、その元ネタは何なんだろうか? という疑問がわいてきます。

- BtrFS の鉄則 -

- 想定されるデータ量の倍のサイズのパーティション確保

例えば、openSUSE Leap 15.x では / (ルート)の BtrFS パーティションは、最低でも 15Gb のサイズ以上確保しておかないと、インストールの際、警告が出ます。実際のインストールで使用されるディスク容量は openSUSE Leap 15.2/SLE15 で 7.5 Gb 程度です。SLE12 では6Gb 程度でした。

空き容量の把握は難しいので、長期運用でバージョンアップに伴い必要とされる空き容量は、将来に渡って不明です。将来バージョンアップしたり、パッチを頻繁に充てるクリティカルなシステムなら 25Gb ~ 30Gb 程度のルートパーティションサイズが欲しいところです。「ディスク容量を食う」点は、誰も指摘していませんが BtrFS の隠されたデメリットです。

もし、コンパクトで JeOS な仮想サーバーを作りたいのであれば ext3、4 などの古来のファイルシステムを検討すれば 10Gb 程度でも使えるわけです。

- スナップショットの定期的なメンテナンス scrub

デフォルトではシステムは毎週 scrub によるメタデータの修復、デフラグ、破損ファイルの修復を実行します。scrub はファイルシステムの破損などがないかメタデータをチェックし、自動修復する機能です。sysconfig に設定されます。BtrFS の信頼性を確保するための重要な機能です。

BtrFS の甘い罠、SUSE Linux アップデート前の空き容量の確認と確保_a0056607_13241420.png


手動で scrub するには

# brtfs scrub start <mount point>

を実行し、 btrfs scrub status -d -R <mount point> で結果を確認できます。

- スナップショットのメンテナンス

スナップショットの作成と削除は自動化されています。こちらの文書によると SUSE Linux(SLE15) においては

7.1.3.4 スナップショットのアーカイブの制御

"
デフォルトでは、最大10個の重要なインストールスナップショットと管理スナップショット、および最大10個の標準のインストールスナップショットと管理スナップショットが保持されます。これらのスナップショットがルートファイルシステムのサイズの50%超を占有する場合、追加のスナップショットは削除されます。最低でも、4つの重要なスナップショットと2つの標準スナップショットは常に保持されます。
"

とあり、この定義は snapper -c MySnapConfig create-config <partition> によって作成された /etc/snapper/configs/ にされた MySnapConfig ファイルによって定義されます。

7.4.1 既存の設定の管理

7.6.2 タイムラインスナップショットのクリーンアップ

それぞれ、スナップショットの作成と削除はタイムラインによって snapper -c MySnapConfig ファイルに作成されます。

opensuse151:/etc/snapper/configs # cat mysnapconfig  | grep TIMELINE
TIMELINE_CREATE="yes"
TIMELINE_CLEANUP="yes"
TIMELINE_MIN_AGE="1800"
TIMELINE_LIMIT_HOURLY="10"
TIMELINE_LIMIT_DAILY="10"
TIMELINE_LIMIT_WEEKLY="0"
TIMELINE_LIMIT_MONTHLY="10"
TIMELINE_LIMIT_YEARLY="10"
opensuse151:/etc/snapper/configs #

通常運用では問題にならないので、デフォルトの scrub のタイミングも、スナップショットを有効化した場合の、スナップショットのメンテナンス間隔は、そのままで構わないでしょう。

- アップデート前のスナップショットの削除

手動でのスナップショットの状態、最新のスナップショットの状態確認は YaST2 Snapper で確認し、内容のチェックとロールバック、削除などの操作を行います。

BtrFS の甘い罠、SUSE Linux アップデート前の空き容量の確認と確保_a0056607_13250586.png

4.1.1 スナップショットとディスク容量

ヒント: 容量を空ける/ディスクの使用率
スナップショットを含むBtrfsパーティションの容量を空けるには、ファイルではなく、不要なスナップショットを削除する必要があります。古いスナップショットは、最近のスナップショットよりも多くの領域を使用します。






とある様に、アップデートに必要な空き領域を確保するには、古いスナップショット、意図的に取得した古いスナップショットを削除して、空き領域を確保し、 btrfs fi usage <Partition> か btrfs fi df <Partition> コマンドで空き容量を確認し、その後、明示的にアップデートからのスナップショットロールバック、復元ポイントを作ってから、アップデートを実施すべきでしょう。

忘れてはならないのは、zypper up や zypper patch など、あるいはメジャーアップデートする時、同じファイルであっても物理的なファイルそのものが上書きされずに、古いファイルはスナップショットに「移動」し、空き領域に新しいファイルが作られることです。

- まとめ -

BtrFs においては、ファイルの空き領域に常に注意し、ファイルコピーなどによる空きスぺースの Run Out には気をつけよ、という事です。








by islandcenter | 2020-07-26 13:28 | SUSE | Comments(0)

普段、SUSE Linux は、サーバー運用なので、メールの読み書きはしないのですが、、openSUSE Leap 15.2 のライブUSBを作ったので、メールも使える様にしました。 

メーラと言えば Thunderbird。 Netscape Mail 時代から、同じメールのプロファイルなので、古いメールのアーカイブも読める。 

という事で openSUSE GNOME デスクトップで Thunderbird を使おうの回です。

よく、SLE のアクティベーションキーを送ってほしい場合など、ブラウザで gmail 開いて.... とやっていたのですが、使い慣れてて、面倒な設定もソラでできる Thunderbird が使える事は個人的に嬉しい。

- ダウンロードとインストール -

Thunderbird は software.opensuse.org から1クリックインストールするのが一番確実です。しかし、openSUSE で配布しているものは英語版だけです。別に日本語の読み書きで不自由しなくて、メニューが英語でも構わないのですが、本家 Mozilla から日本語版をダウンロードして使う事にしました。

Thunderbird  日本語 Linux 版

ダウンロードしたら解凍して、解凍先の xx/xx/thunderbird を実行するだけです。ただ、あまりディレクトリに小間物屋を開きたくないので、<home>/bin に移動しました。

linux@localhost:~> echo $PATH
/home/linux/bin:/usr/local/bin:/usr/bin:/bin
linux@localhost:~>

/<userhome>/bin にパスが通っているので thunderbird 本体のシンボリックリンクを作ります。

linux@localhost:~/bin> ln -s  thunderbird/thunderbird thb

これで ~> thb だけで Thunderbird が起動します。

- プロファイル -

~> thunderbird -profilemanger を実行すると、手動でプロファイルを指定できます。

openSUSE Leap 15.2 で ThunderBird, GUI アイコンをGNOMEへ登録_a0056607_16011417.png

- gnome のアプリケーションに登録 -

しかし、メールを読むのにイチイチターミナル開くのも面倒なので GNOME のパネルに登録します。そのためには alacarte (アラカルト)パッケージをインストールします。openSUSE Leap 15.2 の標準リポジトリにあるので、そのまま YaST でインストールするか、下の software.opensese.org から1クリックインストールします。

alacarte : Menu editor for GNOME

Alacarte is a simple freedesktop.org compliant menu editor for GNOME that lets you change your menus, simply and quickly. Just click and type to edit, add, and delete any menu entry.

openSUSE Leap 15.2 で ThunderBird, GUI アイコンをGNOMEへ登録_a0056607_15581983.png

Thunderbird を登録します。

~> alacarte &

「新しいアイテム」> 任意の名前を付けて、brows ボタンで実行ファイルを指定してOK

openSUSE Leap 15.2 で ThunderBird, GUI アイコンをGNOMEへ登録_a0056607_16004054.png

Activities に Thunderbird が出てきた。アイコンが気に入らないけど...

openSUSE Leap 15.2 で ThunderBird, GUI アイコンをGNOMEへ登録_a0056607_15594189.png

適当にアイコンを探して、alacarte に登録しました。

openSUSE Leap 15.2 で ThunderBird, GUI アイコンをGNOMEへ登録_a0056607_11254795.png

- Thunderbird のプロファイルの管理 -

コマンドラインオプション

”Linux
ターミナルを開いて次のように入力します。
cd Thunderbird installation directory
./thunderbird -ProfileManager
上記の例は、Mozilla の Thunderbird メールクライアントで "-ProfileManager" コマンドラインオプションを呼び出しています。”

プロファイル、メールストレージは ~> .thunderbird に作成されます。このディレクトリをそっくり別メディアにコピーしてバックアップとします。

linux@localhost:~/.thunderbird> ls -l
total 20
drwx------ 9 linux users 4096  7月 14 17:12 7amog83k.default-release-1
drwx------ 3 linux users 4096  7月 14 15:02 Crash Reports
drwx------ 2 linux users 4096  7月 14 15:02 Pending Pings
-rw-r--r-- 1 linux users  190  7月 14 17:01 installs.ini
-rw-r--r-- 1 linux users  335  7月 14 17:01 profiles.ini
linux@localhost:~/.thunderbird>

※ちなみに Windows と macOS 版の ProfileManager の立ち上げ方は次の通りです。

Windows
C:\ >"\Program Files (x86)\Mozilla Thunderbird\thunderbird.exe" -p

macOS
/Applications/Thunderbird.app/Contents/MacOS/thunderbird-bin -profilemanager
- PS. YaST からのインストール -

コメントいただきました。 openSUSE Leap 15.2 では、MozillaThunderbird-translations-common パッケージを入れると日本語化できました。アイコンも GNOME デスクトップに作られます。

YaST > Software Management から Thunderbird を検索して Thunderbird と一緒にインストールすれば OK です。

openSUSE Leap 15.2 で ThunderBird, GUI アイコンをGNOMEへ登録_a0056607_13213361.png

usr/lib64/thunderbird/ にインストールされます。ただし一つ古い openSUSE Leap 15.1 ではリポジトリからインストールしても動かなかったこと、SUSE Linux Enterprise 15 (SLE15.0) にはそもそもパッケージに含まれていない事も併せて報告します。

システムにインストールせず、エンドユーザが個人的に使う目的であれば、本家 Mozilla からダウンロードして使う方が、システムへの影響も少ないとも言えます。

- まとめ -

Mozilla Thunderbird は高機能で使いやすく無料で使えるメールソフトウェアで、歴史も長く、マルチベンダー環境でも移行が簡単な、「いい線行ってる」メーラです。メール、ブラウザ、オフィスソフトウェアは、デスクトップで使える三種の神器です。Firefox, LibreOffice, Thunderbird があれば怖くはない。でもお気に入りのブラウザは Opera と Chrome なので、次はこれらを何とかしたいですね。







by islandcenter | 2020-07-15 16:03 | SUSE | Comments(0)

oppenSUSE Leap 15.2 が出たので、USBメモリ用ライブイメージを作ってみました。

参考までに一つ前の 15.1 はこちら

openSUSE Leap 15.1 の Live USB で「初めてのどこでも Linux」の作り方

通常版 15.2 Leap のインストールはこちら

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

ライブ USB のイメージダウンロードはこちら

openSUSE download server

ISO イメージの USB メモリへの展開方法はこちら

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

今回使ったイメージは
openSUSE-Leap-15.2-GNOME-Live-x86_64-Build31.105-Media.iso

です。

- USB メモリへの書き込み -

上の SUSE のドキュメントに書かれている方法 dd と sync コマンドで書き込みました。

なお、今回は SLES15 のベアハードウェアマシンを使いましたが、古い SLE11 では USB メモリが認識されませんでした。カーネル新しいの使えよ、という事です。


sle15:/share/SISO/openSUSELeap15 # ls openSUSE-Leap-15.2-GNOME-Live-x86_64-Build31.105-Media.iso
openSUSE-Leap-15.2-GNOME-Live-x86_64-Build31.105-Media.iso
sle15:/share/SISO/openSUSELeap15 # lsblk
NAME      MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop0       7:0    0    25G  0 loop
├─loop0p1 254:0    0     8M  0 part
├─loop0p2 254:1    0    14G  0 part /root/mnt/mnt
├─loop0p3 254:2    0     2G  0 part
└─loop0p4 254:3    0     9G  0 part /root/mnt/mnt
sda         8:0    0   2.7T  0 disk
├─sda1      8:1    0   156M  0 part /boot/efi
├─sda2      8:2    0     2G  0 part [SWAP]
├─sda3      8:3    0    20G  0 part /
├─sda4      8:4    0   500G  0 part /var
└─sda5      8:5    0   2.1T  0 part /share
sdb         8:16   0 232.9G  0 disk
└─sdb1      8:17   0 232.9G  0 part /ssd
sdc         8:32   0   1.8T  0 disk
└─sdc1      8:33   0   1.8T  0 part /mnt/sdc
sdd         8:48   0   5.5T  0 disk
└─sdd1      8:49   0   5.5T  0 part /mnt/sdd
sde         8:64   0   5.5T  0 disk
└─sde1      8:65   0   5.4T  0 part /mnt/sde
sdf         8:80   0     1G  0 disk
└─sdf1      8:81   0  1013M  0 part
sdg         8:96   1   7.4G  0 disk
├─sdg1      8:97   1   899M  0 part
├─sdg2      8:98   1    15M  0 part
└─sdg3      8:99   1   6.5G  0 part /run/media/root/cow
sle15:/share/SISO/openSUSELeap15 #


/dev/sdg がメモリカードの様です。

YaST > System > Partitioner で USB メモリを「しつこくしっかり」確認します。 15.1 のライブ USB のメモリだった様です。使っちゃいましょう。

openSUSE Leap 15.2 Live USB Localize (日本語化)_a0056607_14235454.png

dd コマンドで書き込み、sync でメモリキャッシュを最終書き込みします。(dd は数秒で終わりますが sync は数十秒かかります)

sle15:/share/SISO/openSUSELeap15 # \
dd if=openSUSE-Leap-15.2-GNOME-Live-x86_64-Build31.105-Media.iso of=/dev/sdg bs=4k
210016+0 records in
210016+0 records out
860225536 bytes (860 MB, 820 MiB) copied, 0.754957 s, 1.1 GB/s
sle15:/share/SISO/openSUSELeap15 #
sle15:/share/SISO/openSUSELeap15 # sync <---1分くらいかかる
sle15:/share/SISO/openSUSELeap15 #

Partitiner で確認します。15.2 のライブ USB として認識されています。

openSUSE Leap 15.2 Live USB Localize (日本語化)_a0056607_07474256.png



- 本体の再起動 -

再起動して DEL キーなり、F2 キーで BIOS を読み出し、ブート順序を USB メモリに替えて起動します。

- キーボードタイプの変更 -

ライブUSBイメージは English(US) 101 Keyboard なので、日本語化します。

簡単な動画にまとめました(3分、盛大に音出ます)



linux@localhost :~ > su
localhost:/home/linux # yast2 &

で、Hardware > System Keyboard Layout を Japanese に変更し、テストボックスで特種キーを確認します。テストボックスでは問題なくても、この時点ではシステムはまだ 106 キーとして認識されていません。

openSUSE Leap 15.2 Live USB Localize (日本語化)_a0056607_14272325.png

YaST > System > Language より Primary言語を Japanese にセットし Timezone:Asia/Japan に Adopt をチェックします。ついでに第二外国語 English もチェックします。

OK ボタンで iBus Mozc や日本語フォントがダウンロード、インストールされます(10分ちょっとかかりました)

openSUSE Leap 15.2 Live USB Localize (日本語化)_a0056607_14285168.png

- ログインし直し -

フォントと Mozc がインストールされたら、一旦ログオフして、ログインします。YaST のメニューの幾つかが日本語化されている事に気が付きます。man コマンドも日本語です。

- キーボードと IME の設定 -

この時点では、まだキーマップは US 101 KB で日本語 IME も使えません

Activities から Serach Box で”Settings” (設定)アプレットを開きます。 

openSUSE Leap 15.2 Live USB Localize (日本語化)_a0056607_14300399.png

地域と言語を見ると、Input Source が Englisf US 101 です。

openSUSE Leap 15.2 Live USB Localize (日本語化)_a0056607_14302613.png


”+”ボタンから "Japanese" > "Japanese Mozc JP Layout" を Add

openSUSE Leap 15.2 Live USB Localize (日本語化)_a0056607_14304385.png

japanese Mozac JP layout をギュゥっドラックアンドドロップして English(US)のうえに持ち上げます。(これが分からず一時間ハマった...)

openSUSE Leap 15.2 Live USB Localize (日本語化)_a0056607_14310457.png

これで、キーボード配列が 106 Japanese になり、全角/半角キーが有効になり、仮名入力ができるようになりました。

openSUSE Leap 15.2 Live USB Localize (日本語化)_a0056607_14314918.png

ちょっと怪しいキートップのイラストですが、キー配列は合っています。
- ちなみに -

本物のUSBメモリであれば、以上の変更はメモリに書き込まれます。光メディアや仮想環境から ISO ファイルでブートしたら、当たり前ですね、読み込みオンリーのデバイスなので変更は保存されません。もう一度この作業が必要です。

KVMの仮想環境の場合、 virt-manager から追加デバイスとして、USBディスクデバイスに仮想の「空のUSBメモリ」を作ります。

ISO ブートした Live USB の内容を「空のUSBメモリ」に dd コピーして、この「作成した」仮想USBデバイスから起動させると、仮想USBメモリに設定内容が書き込まれ、日本語化した結果が失われません。

openSUSE Leap 15.2 Live USB Localize (日本語化)_a0056607_14290738.png

という事で、64Gb位の USB メモリであれば、タップリデータと環境を持ち歩ける、という事です。









by islandcenter | 2020-07-08 14:54 | SUSE | Comments(0)

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 で別パーティション、別ボリュームを準備しておきます。

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

openSUSE Leap 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 のチェックを入れるだけです。

openSUSE Leap 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 イメージを指定しました。

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

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

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

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

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


- ユーザを Docker グループに

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

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


- 自動起動を Enable に

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

openSUSE Leap 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

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

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

# zypper install perl-XML-XPath*

openSUSE Leap 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

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


- YaST2 docker -

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

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


- nginx HTTP を動かす -

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

Docker Official Images Official build of Nginx.

openSUSE Leap 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 が動きました。

openSUSE Leap 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)