「Debian」カテゴリーアーカイブ

Debianディスクレスクライアントの構築(クライアント編)

サーバの設定がほぼ終わったら、クライアントのインストールを進めていきます。クライアント側ではDebian live CDを起動し、作業を進めていきます。

  1. Debian live DVDの入手
    DVDのisoイメージはここからダウンロードしました。書き込みソフトを使ってブートDVDを作成します。
  2. 起動と初期設定
    DVDを作成したらlive環境を起動します。user, live でログイン後、”sudo bash”でrootになって作業します。設定をssh経由で他のPCから行いたかったので、ssh-serverとdebootconfigをインストールします。
    もちろんGUI環境でも同様の設定は可能です。

    # apt-get update
    # apt-get install nfs-common
    # apt-get install openssh-server
    # apt-get install debootconfig
    

    sshサーバを設定し、起動します。
    sshdの設定ファイルは2行変更しました。
    /etc/ssh/sshd_config

    PermitRootLogin yes
    PasswordAuthentication yes

    sshサーバを起動します。

    # service ssh start
  3. nfsサーバに最小限のDebian環境を構築する
    nfsでReadyNASの共有をマウントしてDebianの必要なファイルを配置します。
    まずnfs rootディレクトリをマウントします。さらにnfsでbootに必要なファイルをtftpboot共有にコピーするためにtftpboot共有もマウントしておきます。

    # mount -t nfs 192.168.1.3:/data/nfsroot64 /mnt
    # mount -t nfs 192.168.1.3:/data/tftpboot /mnt/boot

    マウントできたらdebootstrapを使って環境を構築します。(時間のかかる作業です)

    # /usr/sbin/debootstrap --arch amd64 jessie /mnt http://ftp.jp.debian.org/debian

    構築が終わったら必要な設定をしていきます。まずnfsroot環境に構築に必要なパッケージをインストールします。(カーネルのバージョンはupdateすると変わることがあるので注意)

    # chroot /mnt /usr/bin/apt-get update
    # chroot /mnt /usr/bin/apt-get install nfs-common
    # chroot /mnt /usr/bin/apt-get install linux-image-3.16.0-4-amd64
    # chroot /mnt /usr/bin/apt-get install initramfs-tools
    # chroot /mnt /usr/bin/apt-get install syslinux
    

    ネットワークの設定とrootfsのマウントはDHCPで設定されるので、その他の設定をしていきます。
    この先の作業はchrootして/mntをルートディレクトリとして作業します。

    # chroot /mnt /bin/bash

    pxebootに必要なファイルのコピー

    # cd /boot
    # wget http://ftp.jp.debian.org/debian/dists/jessie/main/installer-amd64/current/images/netboot/pxelinux.0
    # mkdir /boot/pxelinux.cfg

    pxebootの設定ファイルを/boot/pxelinux.cfg内に作成します。
    クライアントのMACアドレスごとに設定できます。MACアドレスに対応するファイルが存在しない場合は”default”が使われます。ネットブートするクライアントのMACアドレスは”98:4b:e1:08:86:90″なので、設定ファイル名は”01-98-4b-e1-08-86-90″です。先頭に01-をつけてMACアドレスをハイフンで結んだものになります。このとき16進数のアルファベットは小文字でなければなりません。(大文字にしてしまい、しばらくはまった)設定は以下の通りです。
    /boot/pxelinux.cfg/01-98-4b-e1-08-86-90

    default Debian
    prompt 1
    timeout 10
    label Debian
    kernel vmlinuz-3.16.0-4-amd64
    append rw initrd=initrd.img-3.16.0-4-amd64 root=/dev/nfs ip=dhcp nfsroot=192.168.1.3:/data/nfsroot64

    ここまででネットブート環境は整いました。

  4. 細かな設定
    リブートしpxeでの起動を確認します。この後は通常のインストールと同様に設定をしていきます。(手順は省略)
    ・ホスト名
    ・タイムゾーン
    ・ロケール
    など...

Debianディスクレスクライアントの構築(サーバ編)

ReadyNAS 104をDebianディスクレスクライアントのサーバにします。ReadNASに必要な機能tftpサーバ、DHCPサーバ、NFSサーバの3つです。この機能をReadyNASにインストールします。

  1. NFSサーバ
    ReadyNASのGUIから設定します。新しい共有を作成し、NFSを有効にしてローカルネットワークからrootアクセスを有効にします。
    nfs1nfs2
  2. TFTPサーバ
    sshでログインしてインストールします。

    # apt-get install tftpd-hpa

    今回は”tftpboot”の共有を作り、nfsで編集できるようにします。共有はnfsサーバと同じよう要領で作成しておきます。
    次に設定ファイルを編集します。編集するファイルは”/etc/default/tftpd-hpa”です。

    TFTP_USERNAME="tftp"
    TFTP_DIRECTORY="/data/tftpboot"
    TFTP_ADDRESS="0.0.0.0:69"
    TFTP_OPTIONS="--secure -c -s --ipv4"
    

    tftpサーバを起動しておきます。さらに、起動時に自動起動するように設定します。

    # service tftpd-hpa start
    # update-rc.d tftpd-hpa enable
    
  3. DHCPサーバ
    オプションをMACアドレスごとに変えたいのでisc-dhcpdをインストールします。

    # apt-get install isc-dhcp-server
    

    設定ファイルは以下の通りにしました。
    /etc/dhcp/dhcpd.conf

    default-lease-time 600;
    max-lease-time 7200;
    subnet 192.168.1.0 netmask 255.255.255.0 {
            range dynamic-bootp 192.168.1.100 192.168.1.200;
            option broadcast-address 192.168.1.255;
            option domain-name-servers 192.168.1.1;
            option domain-name "example.org";               
            option routers 192.168.1.1;
    }
    host microserver01 { 
            hardware ethernet       98:4B:E1:08:86:90;
            fixed-address           192.168.1.26;
            next-server             192.168.1.3;
            filename                "pxelinux.0";
    }
    

    isc-dhcp-serverを起動し、さらに起動時に自動起動するようように設定します。

    # service isc-dhcp-server start
    # update-rc.d isc-dhcp-server enable
    
  4. TFTPサーバに必要なファイルを配置する
    TFTPから起動するのに必要なファイルはクライアントにsyslinuxをインストールしてからtftpディレクトリにコピーします。