CentOS をネットワークインストールする。その3 xinetd ではなく systemd を

CentOS7 をネットワークインストールする。その2 PXEサーバ

で色々やってみたのですがうまくインストールできませんでした。

そこで疑問に思ったことが一つあります。当初ネットを検索してPXEでのインストール方法を探したところ皆 xinetd を使ってるんです。

www.unixmen.com

tapira.hatenablog.com

HowTos/PXE/PXE Setup - CentOS Wiki ←公式のWikiですら xinetd。

CentOS7 をネットワークインストールする。その2 でも言及したんですが、xinetdはCentOS7ではレガシー行きになって、替わりにSystemdになったんじゃないの?と。

そこであらためて検索したところ、次のブログを見つけました。

nothen.com.ar

欲しかった内容そのままの記事ですね。

4 May, 2015 in Linux by Eric Nothen
There are tons of articles on the internet about configuring a PXE server, most of them unnecessary long and complex. Moreover, they all focus on using Xinetd. As you know, Xinetd is a daemon that LET’S JUST LEAVE WIKIPEDIA EXPLAIN IT:
インターネット上にはPXEサーバ設定に関する沢山の記事がありますが、そのほとんどが不必要に長くて複雑です。その上、それらはすべて Xinetd を使用することに焦点を置いています。ご存じの通り、Xinetd はデーモンです--ウィキペディアにそのまま説明してもらいましょう:

 xinetd - Wikipedia この場では日本語Wikipdeia から引用
 >xinetdは、Unixオペレーティングシステムで動作するオープンソースのスーパーサーバ型デーモンで、インターネットベースの接続性を管理する。inetdをよりセキュアに拡張したバージョンである。<

Well, at least the English version of this article includes a brief explanation of how Xinetd allows for on-demand services. That is, avoid running services while they are not receiving connections. So all cool with Xinetd, but truth is that because of its limitations, it’s being used less and less these days.
まあ、少なくともこの記事(Wikipedia)の英語版は、xinetd がオンデマンドサービス(ftpサーバ、telnetサーバ等の代わりに接続要求を待ちうけ、要求があれば各サービスを起動する。接続要求を受信していない間はサービスを起動しない)を可能にする方法の簡単な説明が含まれています。だから、すべて xinetd でもかまわないのですが、その機能の限界を理由として、近頃では次第に利用されなくなっています。

In modern operating systems, like CentOS/RHEL7, and since Fedora 15 (released almost 4 years ago!), Systemd can not only replace Xinetd’s functionality, but also add some features of its own, like centralization of logs and status monitoring. Systemd deserves a whole article on its own (or several), but before I write about that, I need to do proper research (?), so I’ll leave that for another time.
CentOS / RHEL7 などの最新のオペレーティングシステムFedora 15 以降(ほぼ4年前にリリース!)では、Systemd は Xinetd の機能を置き換えるだけでなく、ログの集約やステータス監視のように、独自のいくつかの機能を追加します。"Systemd" だけで丸ごと一つの(または複数の)記事を書くに値しますが、それには事前に相応の研究を行う必要があります(?)ので、またの機会に。

Back to PXE, I was surprised to see that even Red Hat, on their official RHEL7 documentation (here), uses Xinetd to run tftp and provide PXE service, something completely unnecessary, as I’m about to display, ladies and gentlemen (?).
PXEに戻りましょう。私は Red Hat の公式 RHEL7 ドキュメント(こちら)でさえ、TFTPを実行し PXE サーバを準備するのに Xinetd を使用していることに驚きました。完全に不必要なものです。今から私がお見せしましょう。皆様?(用意はいいですか?)

翻訳に自信はありません。が、この上記記事に沿って行ったらインストールできました。数点変更した部分がありますが、とりあえず今日はここまで。詳細はまた来週記載します。 

CentOS7 をネットワークインストールする。その4

CentOS7 をネットワークインストールする。その2 PXEサーバ

CentOS7 をネットワークインストールする。その1 VMware の続き。

 

  • Windows上のVMwareにCentOS7をインストール→そのCentOS7でPXEサーバを構築する→もう一台の空のPCをPXEブートしCentOSをインストールする、という手順を取ってます。
  • ただ、今回は結局インストール失敗してます。次回の その3 その4 まで行って成功しました。以下はそれまでの経緯というか、私は基本的なこともまだ知らないので一歩一歩メモのつもりで書いてます。

Linuxを導入する一番の目的は貧乏なので無料のOSを入れたいということです。素直にWindows8のバンドル版でも買ったほうが費用対効果が上回るだろうと思います。でもやる(今までに何度も挑戦したがそのたびに挫折。月日も流れインストールも以前より簡単になったろうと再々……挑戦)。現状は初心者に毛が生えた程度ですが、順次学んでいきます。

 

Linux仮想マシンでVMware Toolsではなくopen-vm-toolsを使う | 仮想(VMware & Hyper-V)/クラウド・エンジニア技術ブログ

最近VMware社からは、ESXiにバンドルされているVMware Toolsではなく、各Linuxディストリビューションからリリースされているopen-vm-toolsの利用が推奨されています。

<中略>

現在、最新のCentOS 7 デスクトップ版では標準でopen-vm-toolsが搭載されています。

確かに、入ってました。

$ rpm -qa | grep open-vm-tools
open-vm-tools-9.10.2-4.el7.x86_64
open-vm-tools-desktop-9.10.2-4.el7.x86_64

なのにホスト・クライアント間のコピペができなくて困っていたのですが、別の日に起動したらできたので…再起動が必要だっただけかな?

  • NHMでVMWareのコピーを作り、以後そちらを使う。(いずれはVagrantとかDockerとか使えるようになりたいです)

CentOS7 PXE Boot を参考に以下進めます。

  • 追加のソフトウェア(tftp,xinetdなど)をインストールする。

端末(CUI)ではなくGUIでインストールしてみようと思う。が、ドロップメニューにはSoftwareUpdateのみで、ソフトウェアインストーラーらしきものが見当たらない。CentOS6まではあったけどなぁ…。変わりに[アプリケーション][システムツール]に[アプリケーションマネージャー]なるものがあるな。が、中を見ても何か違う気がする。

どうやら gnome-packagekit というものをインストールする必要がある?

 

CentOS でソフトウェアの追加・更新をGUIで行う - clock-up-blog

# yum -y install gnome-packagekit

・結果

>>パッケージ gnome-packagekit-3.14.3-5.el7.x86_64 はインストール済みか最新バージョンです 何もしません。

 

あれ。入ってるとのこと。どこだよ。

 

もう一度[アプリケーションマネージャー]を見てみる。

[システム][その他]に[GNOME パッケージ:システムにインストールされたパッケージの追加と削除]てのがある。これかな。あ、これだ。 

f:id:demandosigno:20160309213410j:plain

  • tftpのインストール
    [アプリケ
    ーション][システムツール][Software][Servers][ネットワークインフラストラクチャサーバー][tftp-server-5.2-*]を選択。→パッケージキットGUIが落ちる…。
    というわけでCUIで。
    # yum install tftp-server
    # rpm -qa | grep tftp
    tftp-server-5.2-11.el7.x86_64 

f:id:demandosigno:20160309213435j:plain

うむ。入ってる。GUIなんていらんかったんや!

  • TFTPサーバの設定(# vi /etc/xinetd.d/tftp)
  • xinetd起動

[root@tako ~]# systemctl start xinetd.service
Failed to start xinetd.service: Unit xinetd.service failed to load: No such file or directory.

入ってないのか。

TFTPのインストールと設定 - adsaria mood

tftpdはxinetdから起動されるので、tftp-serverパッケージを導入する際に、xinetdが未導入であれば依存解決によりxinetdも同時にインストールされる。

とのことだが…。 
$ yum deplist tftp-server
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: www.ftp.ne.jp
* extras: www.ftp.ne.jp
* updates: www.ftp.ne.jp
パッケージ : tftp-server.x86_64 5.2-12.el7
依存性 : /bin/sh
provider: bash.x86_64 4.2.46-19.el7
依存性 : libc.so.6(GLIBC_2.15)(64bit)
provider: glibc.x86_64 2.17-106.el7_2.4
依存性 : libnsl.so.1()(64bit)
provider: glibc.x86_64 2.17-106.el7_2.4
依存性 : libwrap.so.0()(64bit)
provider: tcp_wrappers-libs.x86_64 7.6-77.el7
依存性 : rtld(GNU_HASH)
provider: glibc.x86_64 2.17-106.el7_2.4
provider: glibc.i686 2.17-106.el7_2.4
依存性 : systemd-units
provider: systemd.x86_64 219-19.el7_2.4

xinetdはないぞ。ん?systemd そういやCentOS7(RHEL7)からなんか変わってたな。

「Systemd」を理解する ーシステム起動編ー | ギークを目指して
http://equj65.net/tech/systemd-boot/
xinetdが「レガシー UNIX の互換性」グループに入れられてたのはそういうことか。

なぜ #vi /etc/xinetd.d/tftp は元からあったんだろう?

f:id:demandosigno:20160309221754j:plain

[root@tako ~]# yum install xinetd
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
(中略)
インストール:
xinetd.x86_64 2:2.3.15-12.el7
完了しました!

[root@tako ~]# rpm -qa | grep xinetd

xinetd-2.3.15-12.el7.x86_64
[root@tako ~]# systemctl status xinetd
● xinetd.service - Xinetd A Powerful Replacement For Inetd
Loaded: loaded (/usr/lib/systemd/system/xinetd.service; enabled; vendor preset: enabled)
Active: inactive (dead)
[root@tako ~]# systemctl start xinetd.service (systemctlコマンドの利用においては、サービス名の「.service」を省略することもできる)

[root@tako ~]# systemctl status xinetd
● xinetd.service - Xinetd A Powerful Replacement For Inetd
Loaded: loaded (/usr/lib/systemd/system/xinetd.service; enabled; vendor preset: enabled)
Active: active (running) since 水 2016-03-09 22:24:21 JST; 4s ago
Process: 8716 ExecStart=/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 
(中略)
Hint: Some lines were ellipsized, use -l to show in full.

  • PXEサーバのインストール

[root@tako ~]# yum install syslinux syslinux-tftpboot
[root@tako ~]# rpm -qa | grep syslinux
syslinux-4.05-12.el7.x86_64
syslinux-tftpboot-4.05-12.el7.x86_64

CentOS7 PXE Boot

これで/tftpbootにPXE関連のファイルが一式でインストールされます。

# ls /tftpboot/ がない。
# ls /var/lib/tftpboot/ があった。上記TFTPサーバの設定(# vi /etc/xinetd.d/tftp)が間違ってるというか反映されてないようだ。なぜ。xinetdをインストールしてから設定ファイルを編集すべきだったか。

うまくいかない。どんどこエラー。

・PXEはあきらめて会社でCD-ROMを焼いてインストールしようとした。がこのPCのCD-ROMがいつのまにか壊れてたぽい…もうやだ。

・そもそもXinetdてなんや!Systemdになったんちゃうんか!

CentOS7 をネットワークインストールする。その3 xinetd ではなく systemd を

行けた!が、インストール途中で止まる。

・どうやらCentOS7はAMDだとアウトぽい。

・CentOS6でその先に進めた。がまたブラックアウト。そういえばビデオカードGeforce製でこいつが引っかかってるかも。

vmlinux initrd.img initrd=initrd.img ip=dhcp ksdevice=link repo=http://ftp.jaist.ac.jp/pub/Linux/CentOS/6.7/os/x86_64/ に続けて xdriver=vesa nomodeset と記載することでその先に進めた。残りはまた今度…。頼むよ。

CentOS7 をネットワークインストールする。その1 VMware

Linux をパソコンにインストールする過程をメモします。使用者が比較的多くてネットで調べやすいということでCentOSにしました。

 

下記ページで無料配布されているマニュアルを見て行いました。

www.linuxmaster.jp

 

マニュアルには

  • 守るべき事その1 本マニュアルで紹介している環境を用意する。
マニュアルでは、CentOS を使用して学習を進めますが、それを守らず、Fedora CoreUbuntu といった、違う Linux、または違うバージョンで実施する人がいます。しかし、Linux は環境が違えば結果が違ってきます。違う環境で本マニュアルの内容を実行しても必ずエラーになります。くれぐれも注意してください。
絶対条件として、本マニュアルと同じ Linux とバージョンを用意してください。

  • 守るべき事その2 本マニュアルの手順どおりに実施する。
本マニュアルで紹介している手順を厳守して学習をしてください。手順が抜けていたり、飛ばしてしまうと、それが原因で後々必ずエラーになります。
意味があって、マニュアルに掲載してある順番で手順を作成しています。最初は意味が解らなくても、本マニュアルの手順を厳守してください。 

と記載されています。とても重要なことだと思います。

 

ただ、私のパソコン環境は次の通りとなり、マニュアルのようにCDイメージを用意できませんでした。

  • Windowsパソコン1台。OSなしのパソコン1台←これにLinuxを入れたい。
  • 双方ともにCD-ROMしかついていない。よってOSイメージをCDやDVDに焼いてインストールディスクを作成することができない。
  • USBブート可能であるが、USBメモリを持っていない。
  • PXEブート可能である。

そこで

  1. WindowsパソコンにVMwareをインストールする。
  2. VMwareCentOSをインストールする。
  3. VMware上のCentOSをPXEサーバにし、CentOSのイメージファイルを置く。
  4. 空のPCからPXEサーバにブートイメージを読みに行き、空PCにCentOSをインストールする。

という手順を取ることにしました。

 

1と2については上記「CentOS7.1サーバー構築マニュアル」と付属の「VMware Playerで作る仮想Linux環境構築マニュアル」を読んで進めます。

3と4については「CentOS7 をネットワークインストールする。その2」で記載します。

最初の一歩は始めること

三日坊主の克服に役に立ちそうな記事をまとめておきます。

 

今回の題名「最初の一歩は始めること」は下記ページ Fine Software Writingsさんの記事名そのままです。

 

最初の一歩は始めること(Jason Zimdars)Fine Software Writings

 

射撃しつつ前進 Joel on Software

 

togetter.com

dotinstall.com

 

ダニエル・ピンク 「やる気に関する驚きの科学」 | TED Talk | TED.com

/* -----codeの行番号----- */