Kickstart pozwala na przeprowadzanie w pełni zautomatyzowanych, wstępnie skonfigurowanych, nienadzorowanych instalacji systemów RHEL i CentOS na wielu maszynach równolegle. Metoda wymaga dostarczenia programowi instalacyjnemu pliku konfiguracyjnego. Plik taki został utworzony przez instalator systemu w momencie jego instalowania i znajduje się w katalogu domowym root: ~/anaconda-ks.cfg
. Plik ten albo kopiujemy ręcznie i edytujemy aby był zgodny z naszymi potrzebami albo do jego wygenerowania korzystamy z programu system-config-kickstart. Jeżeli go nie mamy to instalujemy:
1 |
# yum install system-config-kickstart |
Plikowi konfiguracyjnemu kickstart nadajemy nazwę np. ks.cfg
. Możemy plik zwalidować programem ksvalidator:
1 |
# ksvalidator ks.cfg |
Po uruchomieniu instalatora z płyty czy pendrive pojawia się menu GRUB. W menu tym klikamy na klawisz TAB i dopisujemy dodatkowe parametry:
1 |
vmlinuz initrd=initrd.img ks=http://IP_Serwera/ks.cfg |
Np.
Trzeba pamiętać o tym, że w sieci musi działać serwer dhcp, który przyzna naszemu świeżo instalowanemu serwerowi konfigurację IP. Jeżeli serwer otrzyma z dhcp także adres serwera DNS to zamiast adresu IP serwera, z którego będzie pobierany plik ks.cfg może być także nazwa domenowa (fqdn). Możliwe jest także wskazanie adresu URL do serwera FTP lub NFS.
Jeżeli natomiast w sieci nie działa serwer DHCP adres IP świeżo instalowanego serwera trzeba wpisać ręcznie bo w przeciwnym wypadku instalator nie pobierze przez nie skkonfigurowaną sieć pliku ks.cfg.
1 |
vmlinuz initrd=initrd.img ks=http://A.B.C.D/ks.cfg ip=A.B.C.E netmask=255.X.Y.Z gateway=A.B.C.F |
np.
Instalacja wirtualnej maszyny w środowisku KVM z kickstart.
Załóżmy, że na maszynie z uruchomioną platformą KVM mamy plik konfiguracyjny kickstart /var/ftp/pub/ks2.cfg
, który chcemy wykorzystać do zautomatyzowanej instalacji wirtualki. Plik ks2.cfg
posiada następującą zawartość:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
lang en_US keyboard --vckeymap=us --xlayouts='us' network --bootproto=static --device=eth0 --ip=192.168.0.120 --netmask=255.255.255.0 --gateway=192.168.0.1 --ipv6=auto --activate --hostname=server2.example.com rootpw --iscrypted $6$ah1lE4adlnmNP7Bg$FwfTfXfDUyoN.QONQNU0gN8vukCCvdbSlX5Du3IzeZXhF7KDR7vXlRWXsGwGOnE407V/2Aq7/7a78H.D601w.. auth --enableshadow --passalgo=sha512 reboot timezone America/Toronto --isUtc firstboot --disable eula --agreed ignoredisk --only-use=vda zerombr clearpart --all --initlabel --drives=vda bootloader --location=mbr --boot-drive=vda part /boot --fstype="xfs" --ondisk=vda --size=500 part pv.16 --fstype="lvmpv" --ondisk=vda --size=9739 volgroup vg00 --pesize=4096 pv.16 logvol swap --fstype="swap" --size=500 --name=swap --vgname=vg00 logvol /home --fstype="xfs" --size=300 --name=home --vgname=vg00 logvol / --fstype="xfs" --size=9230 --name=root --vgname=vg00 user --groups=wheel --name=user1 -- password=$6$uHOiMAtuLcsyfCUB$R9vvAxTXYs3Vh0axmsVp/cEGdvylgBZc327kmmgV.JuLefz/BFnE1ODiypG6d9SyHb9INRUUTZYhsVorfmhqC0 --iscrypted --gecos="user1" xconfig --startxonboot %packages @base @core @desktop-debugging @dial-up @fonts @gnome-desktop @guest-agents @guest-desktop-agents @input-methods @internet-browser @multimedia @print-client @x11 %end |
Na serwerze FTP plikowi nadaliśmy wcześniej odpowiedni kontekst SELinux aby nie było problemów z jego pobraniem:
1 |
# chcon –t public_content_t /var/ftp/pub/ks2.cfg |
Instalacja wirtualnej maszyny:
1 2 3 4 |
<span class="crayon-sy"># </span>virt<span class="crayon-o">-</span>install <span class="crayon-e ">--name=</span>centos7<span class="crayon-e "> --memory=</span>1024 <span class="crayon-o">--</span>vcpus<span class="crayon-o">=</span>2 --os-variant-cetnos7.0 \ <span class="crayon-o">--</span>disk <span class="crayon-r">path</span><span class="crayon-o">=</span><span class="crayon-o">/</span>var<span class="crayon-o">/</span>lib<span class="crayon-o">/</span>libvirt<span class="crayon-o">/</span>images<span class="crayon-o">/</span>centos<span class="crayon-sy">.</span>img<span class="crayon-sy">,</span>size<span class="crayon-o">=</span>10 \ --location=/var/lib/libvirt/images/CentOS-7.0-1406-x86_64-Minimal.iso \ --extra-args=ftp://192.168.0.100/pub/ks2.cfg |
Nowy serwer zostanie zrestartowany automatycznie po zakończeniu instalacji.
Więcej informacji można znaleźć na stronach:
- https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/5/html/Installation_Guide/ch-kickstart2.html
- https://www.centos.org/docs/5/html/Installation_Guide-en-US/ch-kickstart2.html
- https://wiki.centos.org/TipsAndTricks/KickStart