自分色のlinuxホームサーバーを作ってみよう
TRANSCRIPT
自分色のLINUXホームサーバーを作ってみよう オープンソースカンファレンス 2012 Nagoya
日本openSUSEユーザ会 名古屋支部 橋本雅彦
本日のあじぇんだ
1. Linux? openSUSE? それって美味しいの?
2. Case1: メディアサーバーを構築しよう!
1. YaSTでopenSUSEのいろは。
2. Sambaなファイルサーバーを構築。
3. DLNAサーバーもやってみよう。
4. iTuneサーバーもやってみよう。
3. Case2: 開発環境を構築しよう!
1. Subversionサーバーも構築しちゃおう。
2. Open Build Serviceってな~に?(今日はさわりだけ)
3. SUSE Studioで自分だけのライブUSBをつくってみよう!
(2/47)
ちなみに、本日のページ数(笑)。
1枚1分で行きますよ~。
本資料は、近日中に
http://www.geeko.jp/ で
公開します!
1.Linux? openSUSE? それって美味しいの?
openSUSE…ってOSだっけ? (ちょっとだけ初心者向けなおはなし。)
• Linuxにはいくつかのディストリビューションが存在する。
• Redhat系 … RHEL、Fedora、CentOS、VineLinux
• Debian系 … Debian、Ubuntu
• SUSE系 … SLES、SLED、openSUSE
• その他 … SLAX、TurboLinux
などなど。
• ディストリビューションはOSではない?
• Linuxカーネル部分がOSであってディストリビューションではない。
• ディストリビューションは、LinuxOSの種類。
(4/47)
だからopenSUSEってなんなのさ?
• SLES、SLEDのコミュニティー開発バージョン。
• SLES: SUSE Linux Enterprise Server
• SLED: SUSE Linux Enterprise Desktop
(つまりはFedora:RHELみたいな関係です。)
• 最新安定版リリースバージョンはopenSUSE 12.1
• 8ヶ月ごとのリリースを目標。
• *.1 は 11月に、*.2 は 7月に、*.3 は3月に出す。
• マスコットはおなじみ、Geeko君!
openSUSE 11.4のことは
忘れてください(笑)。
(5/47)
2.Case1: メディアサーバーを構築しよう!
とりあえずやってみること。
1. まずはSambaでファイルサーバーを構築
2. MediatombでDLNAサーバーを構築
3. mt-daapdでiTuneサーバも構築
…定番ですね(^^;
今回は「/srv/media」というディレクトリを共有化します。
まず、下記コマンドでディレクトリを作成しておきましょう。
• mkdir -p /srv/media
• chown -R (一般ユーザ):users /srv/media
(7/47)
YaSTで簡単設定…と、YaSTってなに?
• YaSTはWindowsでいうところのコントロールパネル
• できること
• ソフトウェア・リポジトリの管理
• ハードウェア管理 (プリンタ・サウンドなど)
• システム管理 (ブートローダー・パーティションなど)
• ネットワーク・セキュリティ設定
• サーバー設定 (Apache、Samba、NTP、NFSなど)
• 仮想化ツール
• CUI版、Web版のYaSTも存在します!
(8/47)
Samba設定…の前にやっておきたいこと
YaSTを起動して、「セキュリティとユーザ」>「ファイアウォール」を選択
「変更」をクリックして
「内部ゾーン」に変えておきましょう
「インターフェイス」 を選択
…これをやっておかないと後で面倒なことになったりします。
え、「内部ゾーン」ってなに?
ルーターを思い浮かべてください…。
• 内部ゾーン: LANポート側
• 外部ゾーン: WANポート側
• 非武装ゾーン: DMZ
GWルーター
PC(端末) サーバー
インターネット 外部ゾーン
内部ゾーン 非武装ゾーン(DMZ): 外からも内からも
アクセス可能なゾーン (Webサーバー等)
今回は「内向け」メディアサーバー=「内部ゾーン」でしょ? (10/47)
Samba起動設定
「システム起動時」 にSambaを起動
ファイアウオールで
ポートを開く
YaSTを起動して、「ネットワークサービス」>「Sambaサーバー」を選択
※初回ウィザードで設定する場合も、本ページ以降を参考にしてください。
(11/47)
共有ディレクトリの設定
1. 「Sambaの設定」ダイアログから「共有」タブを選択
2. 「追加」ボタンを押下
ここは適当で。
共有するディレクトリパス
を入力
(12/47)
ワークグループの確認
※「識別情報」タブの一部は
初期設定でも設定できます。
• 「Sambaの設定」ダイアログから「識別情報」タブを選択
Windows PCのワークグループ
に合わせましょう。
WINSサーバについては…
お任せします(^^)
確認が終わったら「OK」を押しましょう! (13/47)
Samba設定完了…あれ?
初回設定時のみ、
OKを押したら何か出てきます。
「Sambaの」rootユーザの
パスワードを入力します。
※openSUSEのrootパスワード
ではありませんよ~!
実は…
ここでの設定はrootパスワード。一般ユーザではありません!
でもふつー、Sambaアクセスは一般ユーザで行うはず。
ので、「smbpasswd –a (ユーザ名)」でSamba用ユーザを作成しましょう。
※「smbpasswd –a」コマンドはrootユーザで実行します。 (14/47)
それではSamba設定(YaSTの使い方)の
実演です!
続いてDLNAサーバの構築だけど…
• でも、LinuxってMP3とかMP4とか、再生大変じゃない?
• openSUSEはどうなんだ~?(全然情報ないし^^;)
回答:
openSUSEなら「1クリックインストール」で全然大丈夫!
注)正確には1クリックではないけど。。。
(16/47)
コミュニティのリポジトリを追加しよう!
• MP3やMP4のソフトウェアは、通常のリポジトリには入っていません!
→ Multimediaコミュニティのリポジトリを追加します。
• え~、他のディストリビューションでリポジトリを追加したことあるけど、作業がめんどかったよ~。(viでsources.listとかいうファイル編集して…)
→ openSUSEお得意の「1クリックインストール」ができます。
• んなばかな?
→ http://opensuse-community.org/Restricted_Formats
「1 click」って
書いてあるでしょ!
(17/47)
openSUSEの1クリックインストール
• 先ほどのページにある「codecs-xxx.ymp」を、openSUSEで開くと、「自動で」インストーラーが起動します。
• インストール途中で「リポジトリを信頼しますか?」というダイアログが表示され、「Yes」を答えると、「自動で」パッケージインストールに必要なリポジトリが追加されます。
結果:
1クリックで「codecs-xxx.ymp」を開くと、いつのまにかMP3、MP4再生に必要なソフトウェアがインストールされ、関連のリポジトリも追加されます!
(18/47)
Mediatombのインストール
• 「codecs-xxx.ymp」を実行しても、Mediatombはインストールされません。手動でインストールしましょう。
• 「codecs-xxx.ymp」で必要なリポジトリは入っちゃうんです(^^;
Mediatomb インストール方法:
1. YaSTから「ソフトウェア」>「ソフトウェア管理」を選択
2. 「検索」タブを選択し「mediatomb」を検索
ほらみつかった。
(19/47)
Mediatombの設定
1. 下記ファイルの編集
• /etc/mediatomb.conf
• /etc/mediatomb/config.xml
2. 「http://(サーバーのIP): 50500 」へアクセスしてDB作成
…と、詳しい設定方法については、
ぐ~ぐる先生がよくご存じですので、ここでは割愛します。
あしからず(^^)
(20/47)
野良ビルドなiTuneサーバーをインストール
• iTuneサーバーとして、mt-daapdというソフトウェアがあります。
• 今はFireflyという名前だったかも。。。
• mt-daapdは先ほどのインストール方法でもインストールできません。(リポジトリに入っていません)
• ですが、野良ビルドは存在するのでちょっと試してみましょう!
openSUSEの野良ビルドは「公式サイト」から検索できます(笑)。
しかも、お得意の「1クリックインストール」で!
(なんか下手な商売文句みたいだ…)
なぜ公式サイトから検索できるのか?についてはまた後ほど。
(21/47)
openSUSEの「パッケージ検索」ページ
URL: http://software.opensuse.org/search
パッケージ名を入力して
「検索」ボタンを押します。
「Show unstable packages」 をクリックすると、
「1 Click Install」が出てきましたね。
mt-daapdについても、細かい設定方法については割愛しますm(_ _)m
3.Case2: 開発環境を構築しよう!
後半のあじぇんだ
1. Subversionサーバーの構築。
2. Open Build Serviceの紹介。(野良ビルドの正体)
3. SUSE Studioで自分だけのライブUSBをつくってみよう!
(24/47)
Subversionサーバを構築しよう
• WebDAVを利用して、http経由でアクセスできるようにします。
• 今回のリポジトリの場所は、「/srv/svn/repos」。
• ここに、複数のリポジトリを作ってみます。
• リポジトリへは「http://(IPアドレス)/svn/repos/xxx」でアクセスします。
/srv svn repo
repo2
repos
「/srv/svn/repos/」 の下に複数のリポジトリを
作成します。
(25/47)
まずはApache/Subversionのインストール
• YaSTから、「ソフトウェア」>「ソフトウェア管理」を選択。
• 以下のソフトウェアをインストールします。
• subversion-server
• subversion
• apache2
• apache2-doc
• apache2-prefork
• libapr1
• libapr-util1
…というのも、なんかちょっとめんどくさいので。。。
(26/47)
「パターン」をインストールしよう。
「パターン」タブ
を選択
「WebおよびLAMPサーバ」 にチェックを入れる。
※subversion、subversion-serverは検索してインストールします。
YaSTからApacheの設定
• YaSTから、「ネットワークサービス」>「HTTPサーバ」を選択。
※初回ウィザードで設定する場合も、本ページ以降を参考にしてください。
待ち受けポートとアドレスの設定
有効
ファイアウォールでポートを開く
(28/47)
Apache サーバモジュールの設定
2.「dav」、「dav_fs」、「dav_svn」 をそれぞれ選択して…
3.「状態の切り替え」ボタンを押下
→ 「有効」へ変更
1.「サーバモジュール」タブを選択
(29/47)
サーバーモジュールが足りない!
「モジュールの追加」 を押下して
「dav_lock」を追加しましょう。
(30/47)
メインホストの設定
• …は、そのままでもいっか。 「メインホスト」タブを選択
ここで、「ドキュメントルート」 などのディレクトリパスを
変更できます。
「サーバ名」、
「サーバ管理者のメールアドレス」 くらいは設定しておきましょう。
※「ホスト」タブではバーチャルホストの設定も可能です。 (31/47)
Subversionリポジトリをつくる
• ここからはCUIです。頑張ってコマンドを入力しましょう!
• コマンド入力はrootユーザで行います。
# mkdir -p /srv/svn/repos/repo # svnadmin create /srv/svn/repos/repo # chown -R wwwrun:www /srv/svn # htpasswd2 -c /srv/svn/svnpasswd (ユーザ名)
1. 「svnadmin create」コマンドでリポジトリを作成し、「www」グループの「wwwrun」ユーザを所有者とします。
2. 「htpasswd2 -c」コマンドでパスワードファイルを作成します。
1
2
(32/47)
SVN-Apache連携ファイルの設定
• 「/etc/apache2/conf.d/subversion.conf」を編集します。
• 既にサンプルが記述されています。参考にしながら修正します。
<Location /svn/repos>
DAV svn
SVNParentPath /srv/svn/repos
# Limit write permission to list of valid users.
<LimitExcept GET PROPFIND OPTIONS REPORT>
# Require SSL connection for password protection.
# SSLRequireSSL
AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /srv/svn/svnpasswd
Require valid-user
</LimitExcept>
</Location>
リポジトリの
親ディレクトリ
サーバアクセス
パスワードファイル
修正が終わったら、「rcapache2 restart 」でApache再起動!
Subversion
リポジトリのURL
それではチェックアウトしてみよう!
• 任意のSubversionクライアントでチェックアウトしてみます。
今回はURLに
「http://(IPアドレス)/svn/repos/repo」 と入力。
チェックアウトできましたか? (34/47)
リポジトリを追加したい場合は…
• 3枚前のスライドと同様に、リポジトリ作成を行うだけです。
# mkdir -p /srv/svn/repos/repo2 # svnadmin create /srv/svn/repos/repo2 # chown -R wwwrun:www /srv/svn/repos/repo2
余談ですが…
最初のコミットはテキストファイルのみをコミットした方がよさそう。。。
(35/47)
野良ビルドの正体とは?
• 「Case1」で「openSUSEでは野良ビルドも公式サイトからダウンロード可能」と書きましたが、それはなぜでしょう?
その理由は…
Open Build Service です。
(36/47)
OpenBuildServiceって?
URL: https://build.opensuse.org/
• ソースコードとspecファイルのみを用意すれば、クラウド上でビルドして、パッケージングまでしてしまうというサービスです。
• openSUSEの主要リポジトリも、全てOpenBuildServiceを用いてビルドされています。
OpenBuildServiceのびっくりなお話。
1. SUSEだけに限らず、MeeGoも利用している。
2. なんと、Debian、Ubuntu、RedHat、Fedora、CentOSのパッケージングまで可能!
3. PPCやARM向けにもコンパイル可能!?
→ ARM向けopenSUSEパッケージを作ってるコミュニティもあります。
(37/47)
本日は時間の都合上、
さわりの部分だけ紹介させていただきますm(_ _)m
最後の総まとめ。ライブUSBの作り方
• SUSEの提供するもう一つのクラウドサービスがあります。
「SUSE Studio」
http://susestudio.com/
• 「誰でもディストリビューター」みたいなサービスです。
(39/47)
SUSE Studioの特徴
• CUIだけの小さなopenSUSEから、本格的なKDEopenSUSE
まで、自分好みのパッケージを選択して、ライブCD/USBが作成可能。
• VMware、VirtualBox、KVM、Xenといった、仮想PCイメージも簡単に作成可能。
• Amazon EC2のイメージだって作成可能。
Novellアカウントだけでなく、
Google、Yahoo、Twitter、facebook、OpenIDの
アカウントでログインが可能なため、
誰でも気軽に試すことができます!
(40/47)
そんじゃあライブUSBを作ってみるぞ~
1.「USB Stick / hard
disk image」を選択 2.「Builid」ボタンを押下
3.「Download」を
クリックしてDL開始!
(実演)SUSE Studioを触ってみよう!
イメージをUSBメモリへ書き込もう
• 前準備
1. 「http://software.opensuse.org/search」から、「SUSE Studio
imagewriter」を検索して、パッケージをインストールします。
2. SUSE Studio からダウンロードしてきたファイル「xxx.tar.gz」を、「tar
xvzf xxx.tgz」コマンドで予め解凍しておきます。
→ 「xxx.raw」というファイルが出てきます。
• 前準備が終わったら、端末を起動し、rootユーザーからimagewriterを起動します。
$ su –
$ imagewriter rootユーザで
起動しましょう!
(43/47)
Imagewriterの実行
• 完了したら…
1. root端末から「fdisk /dev/sdb」コマンドを起動します。
2. 下記の手順で、/dev/sdb1をブート可能状態にします。
$ fdisk /dev/sdb
p ← パーティションテーブルの表示
a ← アクティベート
1 ← アクティベートするパーティションを選択
w ← 書き込み
q ← fdiskの終了
起動したウィンドゥに
先ほど解凍した「xxx.raw」を
放り込みます。
(ドラッグ&ドロップ or ファイル選択) → 「Write」ボタンを押して書き込み開始!
(44/47)
fdiskは
対話型コマンドです。
起動確認。
USBメモリから起動してみましょう!
起動できましたか?
注: 通常のHDDから起動するより、ちょっとだけ時間かかります。
気長に待ちましょう~(^^)
お知らせ) 本日(OSC名古屋)のブースでは、USBメモリから起動したデモ機を展示しています。
時間のある方は触ってみてください。
(但し、時間がない状態でイメージを作ったので、使う分にはパッケージ不足???)
(45/47)
最後にお知らせ。
いかがでしたでしょうか?
尚、本日紹介しましたノウハウ&資料については、
下記の場所で随時公開していきます。
Geeko World
http://www.geeko.jp/
また、毎週土曜22時より、IRC(チャット)のFreenodeにて、
openSUSE定例を行います。(#opensuse-ja チャンネル)
質問事項などは、そこでサポートできれば…と思います。
ご清聴、ありがとうございましたm(_ _)m