교실에서 LTSP를 사용해 보겠습니다(그럼 2: 안내해 보겠습니다).

18629 단어 UbuntuLTSP

너 안 켜잖아?!



그 1의 마지막에 인기 있는 LTSP의 안내입니다.
이 부근은 네트워크 주위를 조정할 필요가 있다.
차례대로 봅시다.

vboxnet0 인터페이스 보기


우선 VirtualBox 쪽을 살펴보겠습니다.VirtualBox 구성 화면을 열고 네트워크 설정을 통해 호스트 네트워크만 봅니다.vboxnet0 등을 볼 수 있을 것 같습니다. 자세한 상황(오른쪽 나사로 돌아가는 단추)을 열어 확인하면


부트 시 취득한 IP 주소(192.168.56.101/24)는 VirtualBox 측의 DHCP로 취득한 것입니다.따라서 DHCP 서버 기능을 해제(선택 취소)하고 다시 시작하면...

이 경우 DHCP의 답변이 사라집니다.어?LTSP 옆에 DHCP가 없습니까?예.

DHCP 서버 보기


따라서 이번에는 Vagrant가 만든 가상 머신에 대한 검증입니다.
시스템ctl에서 DHCP 서버 상태 확인
ubuntu@ubuntu-xenial:~$ sudo systemctl status isc-dhcp-server.service --no-pager
● isc-dhcp-server.service - ISC DHCP IPv4 server
   Loaded: loaded (/lib/systemd/system/isc-dhcp-server.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Thu 2017-10-19 04:31:42 JST; 25min ago
     Docs: man:dhcpd(8)
 Main PID: 8385 (code=exited, status=1/FAILURE)

Oct 19 04:31:42 ubuntu-xenial sh[8385]: Not configured to listen on any interfaces!
Oct 19 04:31:42 ubuntu-xenial sh[8385]: If you think you have received this message due to a bug rather
Oct 19 04:31:42 ubuntu-xenial sh[8385]: than a configuration issue please read the section on submitting
Oct 19 04:31:42 ubuntu-xenial sh[8385]: bugs on either our web page at www.isc.org or in the README file
Oct 19 04:31:42 ubuntu-xenial sh[8385]: before submitting a bug.  These pages explain the proper
Oct 19 04:31:42 ubuntu-xenial sh[8385]: process and the information we find helpful for debugging..
Oct 19 04:31:42 ubuntu-xenial sh[8385]: exiting.
Oct 19 04:31:42 ubuntu-xenial systemd[1]: isc-dhcp-server.service: Main process exited, code=exited, status=1/FAILURE
Oct 19 04:31:42 ubuntu-xenial systemd[1]: isc-dhcp-server.service: Unit entered failed state.
Oct 19 04:31:42 ubuntu-xenial systemd[1]: isc-dhcp-server.service: Failed with result 'exit-code'.
아이고, 안 움직였어.DHCP 서버가 움직이지 않으면 설정을 확인합니다.
여기서 조심해!LTSP 환경을 도입할 때 DHCP 서버의 구성 파일은 알려진 것/etc/dhcp/dhcpd.conf이 아니라 /etc/ltsp/dhcpd.conf입니다.
DHCP 서버가 이미 있으면 빠른 해커나 시스템d 덮어쓰기가 필요하지만 나중에 다시 해야 합니다.우선 이 미니 환경에서 달리는 것이 중요하다.
현황의dhcpd.봐봐, conf.
 ubuntu@ubuntu-xenial:/etc/ltsp$ cat /etc/ltsp/dhcpd.conf.dist
 ... 
 subnet 192.168.67.0 netmask 255.255.255.0 {
     range 192.168.67.20 192.168.67.250;
     option domain-name "example.com";
     option domain-name-servers 192.168.67.1;
     option broadcast-address 192.168.67.255;
     option routers 192.168.67.1;
     next-server 192.168.67.1;
 #    get-lease-hostnames true;
     option subnet-mask 255.255.255.0;
     option root-path "/opt/ltsp/i386";
     if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" 
 {
         filename "/ltsp/i386/pxelinux.0";
     } else {
         filename "/ltsp/i386/nbi.img";
     }
 }
아이고, 인터넷이 또 안 되겠네.Vagrant의 초기 설정은 192.168.33.10/24입니다.
Vagrantfile 발췌
  # Create a private network, which allows host-only access to the machine
  # using a specific IP.
  config.vm.network "private_network", ip: "192.168.33.10"
그래서 조정한다.67 33으로 바꾸면 당분간은 될 것 같습니다.
DHCP 범위 조정
ubuntu@ubuntu-xenial:~$ sed -e 's/67/33/g' /etc/ltsp/dhcpd.conf
...
authoritative;

subnet 192.168.33.0 netmask 255.255.255.0 {
    range 192.168.33.20 192.168.33.250;
    option domain-name "example.com";
    option domain-name-servers 192.168.33.1;
    option broadcast-address 192.168.33.255;
    option routers 192.168.33.1;
    next-server 192.168.33.1;
#    get-lease-hostnames true;
    option subnet-mask 255.255.255.0;
    option root-path "/opt/ltsp/i386";
    if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" {
        filename "/ltsp/i386/pxelinux.0";
    } else {
        filename "/ltsp/i386/nbi.img";
    }
}
# いけそうなので置換する
ubuntu@ubuntu-xenial:~$ sed -i.bak -e 's/67/33/g' /etc/ltsp/dhcpd.conf
...
authoritative;

subnet 192.168.33.0 netmask 255.255.255.0 {
    range 192.168.33.20 192.168.33.250;
    option domain-name "example.com";
    option domain-name-servers 192.168.33.1;
    option broadcast-address 192.168.33.255;
    option routers 192.168.33.1;
    next-server 192.168.33.1;
#    get-lease-hostnames true;
    option subnet-mask 255.255.255.0;
    option root-path "/opt/ltsp/i386";
    if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" {
        filename "/ltsp/i386/pxelinux.0";
    } else {
        filename "/ltsp/i386/nbi.img";
    }
}
지금 검사를 다시 시작하면 우선 DHCP 서버가 실행됩니다.
DHCP 서버 시작 및 확인
ubuntu@ubuntu-xenial:~$ sudo systemctl restart isc-dhcp-server.service
ubuntu@ubuntu-xenial:~$ sudo systemctl status isc-dhcp-server.service
● isc-dhcp-server.service - ISC DHCP IPv4 server
   Loaded: loaded (/lib/systemd/system/isc-dhcp-server.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2017-10-19 05:07:57 JST; 4s ago
     Docs: man:dhcpd(8)
 Main PID: 1816 (dhcpd)
    Tasks: 1
   Memory: 9.1M
      CPU: 12ms
   CGroup: /system.slice/isc-dhcp-server.service
           └─1816 dhcpd -user dhcpd -group dhcpd -f -4 -pf /run/dhcp-server/dhcpd.pid -cf /etc/ltsp/dhcpd.conf

Oct 19 05:07:57 ubuntu-xenial dhcpd[1816]: Sending on   LPF/enp0s8/08:00:27:96:cd:c7/192.168.33.0/24
Oct 19 05:07:57 ubuntu-xenial dhcpd[1816]:
Oct 19 05:07:57 ubuntu-xenial dhcpd[1816]: No subnet declaration for enp0s3 (10.0.2.15).
Oct 19 05:07:57 ubuntu-xenial dhcpd[1816]: ** Ignoring requests on enp0s3.  If this is not what
Oct 19 05:07:57 ubuntu-xenial dhcpd[1816]:    you want, please write a subnet declaration
Oct 19 05:07:57 ubuntu-xenial dhcpd[1816]:    in your dhcpd.conf file for the network segment
Oct 19 05:07:57 ubuntu-xenial dhcpd[1816]:    to which interface enp0s3 is attached. **
Oct 19 05:07:57 ubuntu-xenial dhcpd[1816]:
Oct 19 05:07:57 ubuntu-xenial dhcpd[1816]: Sending on   Socket/fallback/fallback-net
Oct 19 05:07:57 ubuntu-xenial dhcpd[1816]: Server starting service.
또한 Vagrant 설정에서 일반적인 NAT 통신(enp0s3) 및private_네트워크 (enp0s8) 라는 두 개의 인터페이스에서 실행됩니다.따라서 서브넷이 일치하지 않는 enp0s3에 대해 무시된 메시지를 추가한 것을 발견할 수 있을 것 같지만 신경 쓰지 마세요.마음에 드는 사람은 고쳐 쓰세요/etc/default/isc-dhcp-server.
이렇게 하면 DHCP 서버가 작동합니다. LTCP 클라이언트를 시작하고 상황을 보십시오.

DHCP 서버 응답, 192.168.33.20 이(가) 발견되었습니다.받은 데이터에 따라 PXELinux 부트 로더가 시작됩니다. 그러나 가져올 수 없습니다.
소스를 가져오는 것이 이상하기 때문에 서버는 Vagrant VM에서 제공하는 192.168.33.10이 아니라 192.168.33.1입니다.수정해 주세요.
수정점 192.168.33.1 후 서버 재부팅
ubuntu@ubuntu-xenial:~$ sed -e 's/33.1;/33.10;/g' /etc/ltsp/dhcpd.conf
...
authoritative;

subnet 192.168.33.0 netmask 255.255.255.0 {
    range 192.168.33.20 192.168.33.250;
    option domain-name "example.com";
    option domain-name-servers 192.168.33.10;
    option broadcast-address 192.168.33.255;
    option routers 192.168.33.10;
    next-server 192.168.33.10;
#    get-lease-hostnames true;
    option subnet-mask 255.255.255.0;
    option root-path "/opt/ltsp/i386";
    if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" {
        filename "/ltsp/i386/pxelinux.0";
    } else {
        filename "/ltsp/i386/nbi.img";
    }
}

# 変更が大丈夫そうなので適用して再起動
ubuntu@ubuntu-xenial:~$ sudo sed -i.bak -e 's/33.1;/33.10;/g' /etc/ltsp/dhcpd.conf
ubuntu@ubuntu-xenial:~$ sudo systemctl restart isc-dhcp-server.service
ubuntu@ubuntu-xenial:~$ sudo systemctl status isc-dhcp-server.service
● isc-dhcp-server.service - ISC DHCP IPv4 server
   Loaded: loaded (/lib/systemd/system/isc-dhcp-server.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2017-10-19 05:16:27 JST; 2s ago
     Docs: man:dhcpd(8)
 Main PID: 1842 (dhcpd)
    Tasks: 1
   Memory: 9.1M
      CPU: 10ms
   CGroup: /system.slice/isc-dhcp-server.service
           └─1842 dhcpd -user dhcpd -group dhcpd -f -4 -pf /run/dhcp-server/dhcpd.pid -cf /etc/ltsp/dhcpd.conf

Oct 19 05:16:27 ubuntu-xenial dhcpd[1842]: Sending on   LPF/enp0s8/08:00:27:96:cd:c7/192.168.33.0/24
Oct 19 05:16:27 ubuntu-xenial dhcpd[1842]:
Oct 19 05:16:27 ubuntu-xenial dhcpd[1842]: No subnet declaration for enp0s3 (10.0.2.15).
Oct 19 05:16:27 ubuntu-xenial dhcpd[1842]: ** Ignoring requests on enp0s3.  If this is not what
Oct 19 05:16:27 ubuntu-xenial dhcpd[1842]:    you want, please write a subnet declaration
Oct 19 05:16:27 ubuntu-xenial dhcpd[1842]:    in your dhcpd.conf file for the network segment
Oct 19 05:16:27 ubuntu-xenial dhcpd[1842]:    to which interface enp0s3 is attached. **
Oct 19 05:16:27 ubuntu-xenial dhcpd[1842]:
Oct 19 05:16:27 ubuntu-xenial dhcpd[1842]: Sending on   Socket/fallback/fallback-net
Oct 19 05:16:27 ubuntu-xenial dhcpd[1842]: Server starting service.

이번에는 192.168.33.10이 지났지만 서류가 없다고 불평했다.
패스를 보니 i386으로 나타났다.이번에는 64분이니까amd64입니다.다시 쓰는 거야.
```bash:i386 → amd64
ubuntu@ubuntu-xenial:~$ sudo sed -e 's/i386/amd64/'/etc/ltsp/dhcpd.conf
...
authoritative;
subnet 192.168.33.0 netmask 255.255.255.0 {
range 192.168.33.20 192.168.33.250;
option domain-name "example.com";
option domain-name-servers 192.168.33.10;
option broadcast-address 192.168.33.255;
option routers 192.168.33.10;
next-server 192.168.33.10;
...
option subnet-mask 255.255.255.0;
option root-path "/opt/ltsp/amd64";
if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient"{
filename "/ltsp/amd64/pxelinux.0";
} else {
filename "/ltsp/amd64/nbi.img";
}
}

문제가 없는 것 같아서 적용합니다.


ubuntu@ubuntu-xenial:~$ sudo sed -i.bak -e 's/i386/amd64/'/etc/ltsp/dhcpd.conf
ubuntu@ubuntu-xenial:~$ sudo systemctl restart isc-dhcp-server.service
ubuntu@ubuntu-xenial:~$ sudo systemctl status isc-dhcp-server.service
● isc-dhcp-server.service - ISC DHCP IPv4 server
Loaded: loaded (/lib/systemd/system/isc-dhcp-server.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2017-10-19 05:20:31 JST; 4s ago
Docs: man:dhcpd(8)
Main PID: 1880 (dhcpd)
Tasks: 1
Memory: 9.1M
CPU: 11ms
CGroup:/system.slice/isc-dhcp-server.service
└─1880 dhcpd -user dhcpd -group dhcpd -f -4 -pf/run/dhcp-server/dhcpd.pid -cf/etc/ltsp/dhcpd.conf
...
이번에는요?

자, 커널이 불러왔습니다. initrd.img를 읽고 있는데...
그러나 유감스럽게도 원격 디스크 이미지를 읽을 때 경직되어 이동할 수 없습니다. (몇 분 동안 방치하면 initrd 내장된 케이스가 이동합니다...그래야 합니다.)


네, 비상 케이스가 작동했습니다.
루트 이미지를 가져올 수 없는 이유는 무엇입니까dhcpd.conf.
dhcpd.conf 발췌
    if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" {
        filename "/ltsp/amd64/pxelinux.0";
    } else {
        filename "/ltsp/amd64/nbi.img";
    }
LTSP 가 부팅되는 동안 DHCP 는 2 번 (이상?)이동
첫 번째는 OS 시작 전 PXE 상황입니다.
  • 먼저 OS가 시작되기 전의 PXE 환경입니다.이때 클라이언트가 서버에 vendor-class-identifier 식별 정보를 전송하고 PXEClient 이면 PXE가 리눅스로 로더를 부트합니다pxelinux.0
  • .
  • 시작 후 initrd(initramfs)에서 DHCP를 다시 실행하기 때문에 클라이언트의 값이 다릅니다.그래서 /ltsp/amd64/nbi.img 돌려줄게
  • 그래서 두 번째 때 실패했어요.대처해./etc/ltsp/dhcpd.conf 에서
              filename "/opt/ltsp/images/amd64.img";
    
    되돌아오는 파일을 존재하는 파일로 바꾸면 됩니다.이렇게 움직였어.

    아이고, 혼란스러워... 아, 일단 움직이면 돼, 여기서부터.
    경품: 왠지 모르게 개작dhcpd.conffilename도 움직이지 않을 때가 있다.뒤로 스크롤을 해보면 왜 IP를 다시 얻었는지 얄미운 192.168.56.0/24를 얻었다.이 경우 Vagrant VM을 포함하여 일시적으로 모두 중지하고 VirtualBox를 종료하고 다시 시작하는 것이 좋습니다.아무래도 내장형 DHCP 서버가 남아 있는 것 같군요.
    그래서 당분간 여기까지.이 모니터 관리자(LDM)를 일찌감치 철수시켰기 때문에 로그인 화면만 나오면 먼저 승리한다.

    좋은 웹페이지 즐겨찾기