NIS – konfigurace primárního serveru

  1. KONFIGURACE PRIMÁRNÍHO SERVERU NIS

    Server NIS je v distribucích Linuxu již k dispozici. Je třeba ho aktivovat. K tomu slouží nástroj ksysv.
    Dále je třeba se ujistit, že je ypserv součastí spouštěcího procesu na úrovni 3 a 5.

    Konfigurace zahrnuje 5-6 kroků:

    • 1) zadání doménového jména
    • 2) spuštění ypserv (spuštění NIS)
    • 3) úprava sestavovacího souboru
    • 4) spuštění ypinit pro vytvoření databází.
    • 5) případná oprava chyb
    • 6) aktualizace tabulek NIS

    1) ZŘÍZENÍ DOMÉNOVÉHO JMÉNA
    se provádí pomocí příkazu domainname. Předpokládejme, že chceme zřídit doménu s názvem lunux:

    domainname lunux

    Dále musíme zajistit, aby tato doména existovala při každém zavedení (restartu) systému. Upravíme soubor /etc/sysconfig/network tak, že do něj vložíme následující řádek:

    NIS_DOMAIN=lunux

    Pozn. U jiných distribucí je třeba upravit skript /etc/rc.d/init.d/ypserv. Nechte si vypsat všechny řádky ve kterých se vyskytuej příkaz domainname. Není li žádný, napište kamkoliv za první řádek:
    domainname lunux

    2) SPUŠTĚNÍ NIS
    service ypserv start
    nebo
    service ypserv restart

    3) ÚPRAVA SESTAVOVACÍHO SOUBORU

    Sestavovací soubor s názvem  Makefile se nachází v adresáři /var/yp/ a obsahuje pokyny pro příkaz make, který se obvykle použív k překladu programů. Nástroj make podle něj zjistí, které soubory se musí přeložit a poté vyvolá program, který překlad provede. Nástroj make je efektivní, protože si můžeme sami stanovit, jaké programy vyvolá.
    Když make zjistí, že se změnilo datum a čas u určitého souboru usoudí z toho, že žento soubor musí být znovu přeložen. Proto je jeho pužití u NIS logické.

    • Nejprve je potřeba nástroj, který dokáže převést sérii běžných textových souborů do databázového formátu.

    • A my pak potřebujeme nástroj, který dokáže všechny změněné soubory převést zpět do textového formátu.

    V souboru /var/yp/Makefile jsou uvedeny

    • všechny soubory, které se sdílí ve službě NIS
    • a některé další parametry jejich sdílení.

      3-1) URČENÍ SEKUNDÁRNÍCH SERVERŮ: NOPUSH
      Chceme – li použít sekundární servery v NIS, musíme nejprve sdělit primárnímu serveru, aby předal sekundárním serverům výsledné tabulky a synchronizoval s nimi data. To se provede změnou hodnoty proměnné NOPUSH na hodnotu false (toto je pouze část výpisu):

      # If we have only one server, we don’t have to push the maps to the
      # slave servers (NOPUSH=true). If you have slave servers, change this
      # to „NOPUSH=false“ and put all hostnames of your slave servers in the file
      # /var/yp/ypservers.
      NOPUSH=true

      3-2) UVEDEME JMÉNA HOSTITELSKÝCH POČÍTAČŮ NAŠICH SEKUNDÁRNÍCH SERVERŮ
      Tento záznam musí být v

      /var/yp/ypservers

      ! Pozor: Každému uvedenému jménu hostitelského počítače musí odpovídat záznam v souboru /etc/hosts

      3-3) VYSVĚTLENÍ OZNAČENÍ NÁZVŮ SOUBORŮ, KTERÉ SE MAJÍ SDÍLET
      Následující část sestavovacího souboru Makefile obsahuje soubory, které jsou přednastaveny pro sdílení prostřednictvím služby NIS. To, že jsou zde uvedeny však neznamená, že se budou automaticky sdílet. Tento seznam pouze označuje názvy souborů pro pozdější použití v sestavovacím souboru. Většina záznamů začíná řetězcem:

      $(YPPWDDIR)

      To je proměnná, která se definuje přímo před tímto úsekem sestavovacího souboru. Implicitní hodnotou této proměnné je /etc To znamná, že všechny výsyty řetězce $(YPPWDDIR) se při spouštění sestavovacího souboru nahradí /etc.

      Z group se tak stane /etc/group, passwd se nahradí /etc/passwd atd. (Proměnná $YPPWDDIR se také nahradí /etc.
      Vypadá to takto (část výpisu):

      # These are the files from which the NIS databases are built. You may edit
      # these to taste in the event that you wish to keep your NIS source files
      # seperate from your NIS server’s actual configuration files.
      #
      GROUP       = $(YPPWDDIR)/group
      PASSWD      = $(YPPWDDIR)/passwd
      SHADOW        = $(YPPWDDIR)/shadow
      GSHADOW     = $(YPPWDDIR)/gshadow
      ADJUNCT     = $(YPPWDDIR)/passwd.adjunct
      #ALIASES     = $(YPSRCDIR)/aliases  # aliases could be in /etc or /etc/mail
      ALIASES     = /etc/aliases
      ETHERS      = $(YPSRCDIR)/ethers     # ethernet addresses (for rarpd)
      BOOTPARAMS  = $(YPSRCDIR)/bootparams # for booting Sun boxes (bootparamd)
      HOSTS       = $(YPSRCDIR)/hosts
      NETWORKS    = $(YPSRCDIR)/networks
      PRINTCAP    = $(YPSRCDIR)/printcap
      PROTOCOLS   = $(YPSRCDIR)/protocols
      PUBLICKEYS  = $(YPSRCDIR)/publickey
      RPC         = $(YPSRCDIR)/rpc
      SERVICES    = $(YPSRCDIR)/services
      NETGROUP    = $(YPSRCDIR)/netgroup
      NETID        = $(YPSRCDIR)/netid
      AMD_HOME    = $(YPSRCDIR)/amd.home
      AUTO_MASTER = $(YPSRCDIR)/auto.master
      AUTO_HOME   = $(YPSRCDIR)/auto.home
      AUTO_LOCAL  = $(YPSRCDIR)/auto.local
      TIMEZONE    = $(YPSRCDIR)/timezone
      LOCALE      = $(YPSRCDIR)/locale
      NETMASKS    = $(YPSRCDIR)/netmasks

      3-4) CO SE SDÍLÍ: TO CO JE ZA POLOŽKOU ALL
      Ve skutečnosti jsou teprve všechny položky  uvedené za položkou all: sdílenými tabulkami:

      all:  passwd group hosts rpc services netid protocols mail \
      # netgrp shadow publickey networks ethers bootparams printcap \
      # amd.home auto.master auto.home auto.local passwd.adjunct \
      # timezone locale netmasks

      Pozn: zpětné lomítko \ znamená, že make považuje celou položku za jediný řádek i když je rozdělena (kvůli čitelnosti) na řádků víc. Znaky # naopak zbytek řádku zakomentují. Tyto položky navíc odpovídají jménům souborů uvedeným v předchozí části sestavovacího souboru. Pokud některé sdílet nechceme (totéž platí při chybovém hlášení), zakomentujeme je znakem # .
      Dále je dobré si uvědomit, že u některých serverů bude třeba některé tabulky přidat nebo ubrat.
      To stačí provést opět znakem #.

      4) spuštění ypinit pro vytvoření databází
      Pozn. Připomínám, že ještě před spuštěním NIS je třeba mít zavedená jména domén pomocí příkazu domainname (viz výš).

      /usr/lib/yp/ypinit -m

      Volba -m sděluje příkazu ypinit, aby ustanovil systém primárním serverem NIS.

      Příklad: Pokud jsme spoustili tento příkaz v systému, který jsme nazvali lunux, vypíše nám toto:

      next host to add: lunux
      next host to add:

      Zde zadáme jména sekundárních serverů NIS.
      Po přádání všech potřebných serverů skončíme klávesovou zkratkou CTRL+D.
      Tím se námi přidané položky uloží do souboru /var/yp/ypservers.
      Až celou činnost dokončíme, příkaz ypinit za nás automaticky spustí program make.

      Začnou se vytvářet tabulky, které se předají námi určeným sekundárním serverům.

      5) KONTROLA SOUBORU MAKEFILE A OPRAVA CHYB

      Chybu v souboru Makefile lze odhalit spuštěním  příkazu make. Zde je seznam některých běžných chyb:

      — bude doplněno —

      6) AKTUALIZACE TABULEK NIS
      Po aktualizaci souborů na hlavním serveru NIS nakonfigurovaných pro sdílení je třeba pro zbylou část naší sítě znovu vytvořit mapovací soubory, které se budou dále replikovat.

      To zajistíme příkazem:

      cd /var/yp;make

    SHRNUTÍ KROKŮ:

    • Pomocí příkazu domainname nastavíme doménové jméno NIS
    • Provedeme podle potřeb případné změny v soubor /var/yp/Makefile
    • Inicializujeme hlavní server pomocí
      /usr/sbin/ypinit -m
      Tím se vytvoří mapovací soubory NIS
    • Po jakékokliv změně v mapovacích souborech musíme po jakékoliv změně spustit příkaz
      cd /var/yp;make
    • Spustíme (nebo restartujeme) server:
      service ypserv start
      nebo
      service ypserv restart
    • ujistíme se, že se doména zadává a služba ypseerv spouští při každém spuštění systmu:
      (viz vložení řádku NIS_DOMAIN výše)

    Popis nastavení klienta NIS lze nalézt v sekci zabývající se nastavení stanic.