{"id":1167,"date":"2017-05-17T17:39:56","date_gmt":"2017-05-17T15:39:56","guid":{"rendered":"http:\/\/miroslaw.borodziuk.eu\/?p=1167"},"modified":"2017-07-02T20:20:26","modified_gmt":"2017-07-02T18:20:26","slug":"automatyczna-instalacja-systemu-dzieki-kickstart","status":"publish","type":"post","link":"http:\/\/miro.borodziuk.eu\/index.php\/2017\/05\/17\/automatyczna-instalacja-systemu-dzieki-kickstart\/","title":{"rendered":"Automatyczna instalacja systemu dzi\u0119ki Kickstart"},"content":{"rendered":"<p><em>Kickstart<\/em> pozwala na przeprowadzanie w pe\u0142ni zautomatyzowanych, wst\u0119pnie skonfigurowanych, nienadzorowanych instalacji system\u00f3w RHEL i CentOS na wielu maszynach r\u00f3wnolegle. Metoda wymaga dostarczenia programowi instalacyjnemu pliku konfiguracyjnego. Plik taki zosta\u0142 utworzony przez instalator systemu w momencie jego instalowania i znajduje\u00a0 si\u0119 w katalogu domowym root: <code>~\/anaconda-ks.cfg<\/code>. Plik ten albo kopiujemy r\u0119cznie i edytujemy aby by\u0142 zgodny z naszymi potrzebami albo do jego wygenerowania korzystamy z programu <em>system-config-kickstart<\/em>. <!--more-->Je\u017celi go nie mamy to instalujemy:<\/p>\n<pre># yum install system-config-kickstart<\/pre>\n<p>Plikowi konfiguracyjnemu <em>kickstart<\/em> nadajemy nazw\u0119 np. <code>ks.cfg<\/code>.\u00a0 Mo\u017cemy plik zwalidowa\u0107 programem <em>ksvalidator<\/em>:<\/p>\n<pre># ksvalidator ks.cfg<\/pre>\n<p>Po uruchomieniu instalatora z p\u0142yty czy pendrive pojawia si\u0119 menu GRUB. W menu tym klikamy na klawisz TAB i dopisujemy dodatkowe parametry:<\/p>\n<pre class=\"\">vmlinuz initrd=initrd.img ks=http:\/\/IP_Serwera\/ks.cfg<\/pre>\n<p>Np.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1175 size-full\" src=\"http:\/\/miroslaw.borodziuk.eu\/wp-content\/uploads\/kickstart2-1.jpg\" alt=\"\" width=\"638\" height=\"478\" srcset=\"http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/kickstart2-1.jpg 638w, http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/kickstart2-1-300x225.jpg 300w\" sizes=\"(max-width: 638px) 100vw, 638px\" \/><\/p>\n<p>Trzeba pami\u0119ta\u0107 o tym, \u017ce w sieci musi dzia\u0142a\u0107 serwer dhcp, kt\u00f3ry przyzna naszemu \u015bwie\u017co instalowanemu serwerowi konfiguracj\u0119 IP. Je\u017celi serwer otrzyma z dhcp tak\u017ce adres serwera DNS to zamiast adresu IP serwera, z kt\u00f3rego b\u0119dzie pobierany plik ks.cfg mo\u017ce by\u0107 tak\u017ce nazwa domenowa (fqdn). Mo\u017cliwe jest tak\u017ce wskazanie adresu URL do serwera FTP lub NFS.<\/p>\n<p>Je\u017celi natomiast w sieci nie dzia\u0142a serwer DHCP adres IP \u015bwie\u017co instalowanego serwera trzeba wpisa\u0107 r\u0119cznie bo w przeciwnym wypadku instalator nie pobierze przez nie skkonfigurowan\u0105 sie\u0107 pliku ks.cfg.<\/p>\n<pre class=\"\">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<\/pre>\n<p>np.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1176 size-full\" src=\"http:\/\/miroslaw.borodziuk.eu\/wp-content\/uploads\/kickstart3.jpg\" alt=\"\" width=\"639\" height=\"476\" srcset=\"http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/kickstart3.jpg 639w, http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/kickstart3-300x223.jpg 300w\" sizes=\"(max-width: 639px) 100vw, 639px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #3366ff;\">Instalacja wirtualnej maszyny w \u015brodowisku KVM z kickstart.<\/span><\/p>\n<p>Za\u0142\u00f3\u017cmy, \u017ce na maszynie z uruchomion\u0105 platform\u0105 KVM mamy plik konfiguracyjny <em>kickstart<\/em> <code> \/var\/ftp\/pub\/ks2.cfg<\/code>, kt\u00f3ry chcemy wykorzysta\u0107 do zautomatyzowanej instalacji wirtualki. Plik <code>ks2.cfg<\/code> posiada nast\u0119puj\u0105c\u0105 zawarto\u015b\u0107:<span style=\"color: #808080;\"><code><\/code><\/span><\/p>\n<p><span style=\"color: #808080;\"><code><\/code><\/span><\/p>\n<pre class=\"lang:sh decode:true \">lang en_US\r\nkeyboard --vckeymap=us --xlayouts='us'\r\nnetwork --bootproto=static --device=eth0 --ip=192.168.0.120 --netmask=255.255.255.0\r\n--gateway=192.168.0.1 --ipv6=auto --activate --hostname=server2.example.com\r\nrootpw --iscrypted\r\n$6$ah1lE4adlnmNP7Bg$FwfTfXfDUyoN.QONQNU0gN8vukCCvdbSlX5Du3IzeZXhF7KDR7vXlRWXsGwGOnE407V\/2Aq7\/7a78H.D601w..\r\nauth --enableshadow --passalgo=sha512\r\nreboot\r\ntimezone America\/Toronto --isUtc\r\nfirstboot --disable\r\neula --agreed\r\nignoredisk --only-use=vda\r\nzerombr\r\nclearpart --all --initlabel --drives=vda\r\nbootloader --location=mbr --boot-drive=vda\r\npart \/boot --fstype=\"xfs\" --ondisk=vda --size=500\r\npart pv.16 --fstype=\"lvmpv\" --ondisk=vda --size=9739\r\n\r\nvolgroup vg00 --pesize=4096 pv.16\r\nlogvol swap --fstype=\"swap\" --size=500 --name=swap --vgname=vg00\r\nlogvol \/home --fstype=\"xfs\" --size=300 --name=home --vgname=vg00\r\nlogvol \/ --fstype=\"xfs\" --size=9230 --name=root --vgname=vg00\r\nuser --groups=wheel --name=user1 --\r\npassword=$6$uHOiMAtuLcsyfCUB$R9vvAxTXYs3Vh0axmsVp\/cEGdvylgBZc327kmmgV.JuLefz\/BFnE1ODiypG6d9SyHb9INRUUTZYhsVorfmhqC0\r\n--iscrypted --gecos=\"user1\"\r\nxconfig --startxonboot\r\n%packages\r\n@base\r\n@core\r\n@desktop-debugging\r\n@dial-up\r\n@fonts\r\n@gnome-desktop\r\n@guest-agents\r\n@guest-desktop-agents\r\n@input-methods\r\n@internet-browser\r\n@multimedia\r\n@print-client\r\n@x11\r\n%end<\/pre>\n<p>&nbsp;<\/p>\n<p>Na serwerze FTP plikowi nadali\u015bmy wcze\u015bniej odpowiedni kontekst <em>SELinux<\/em> aby nie by\u0142o problem\u00f3w z jego pobraniem:<\/p>\n<pre> # chcon \u2013t public_content_t \/var\/ftp\/pub\/ks2.cfg<\/pre>\n<p>Instalacja wirtualnej maszyny:<\/p>\n<pre id=\"crayon-591b2ab81a832829641414-1\" class=\"crayon-line\"><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 \\\r\n<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 \\\r\n--location=\/var\/lib\/libvirt\/images\/CentOS-7.0-1406-x86_64-Minimal.iso \\\r\n--extra-args=ftp:\/\/192.168.0.100\/pub\/ks2.cfg<\/pre>\n<p>Nowy serwer zostanie zrestartowany automatycznie po zako\u0144czeniu instalacji.<\/p>\n<p>Wi\u0119cej informacji mo\u017cna znale\u017a\u0107 na stronach:<\/p>\n<ul>\n<li><a href=\"https:\/\/access.redhat.com\/documentation\/en-US\/Red_Hat_Enterprise_Linux\/5\/html\/Installation_Guide\/ch-kickstart2.html\">https:\/\/access.redhat.com\/documentation\/en-US\/Red_Hat_Enterprise_Linux\/5\/html\/Installation_Guide\/ch-kickstart2.html<\/a><\/li>\n<li>https:\/\/www.centos.org\/docs\/5\/html\/Installation_Guide-en-US\/ch-kickstart2.html<\/li>\n<li><a href=\"https:\/\/wiki.centos.org\/TipsAndTricks\/KickStart\">https:\/\/wiki.centos.org\/TipsAndTricks\/KickStart<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Kickstart pozwala na przeprowadzanie w pe\u0142ni zautomatyzowanych, wst\u0119pnie skonfigurowanych, nienadzorowanych instalacji system\u00f3w RHEL i CentOS na wielu maszynach r\u00f3wnolegle. Metoda wymaga dostarczenia programowi instalacyjnemu pliku konfiguracyjnego. Plik taki zosta\u0142 utworzony przez instalator systemu w momencie jego instalowania i znajduje\u00a0 si\u0119 w katalogu domowym root: ~\/anaconda-ks.cfg. Plik ten albo kopiujemy r\u0119cznie i edytujemy aby by\u0142 zgodny &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/miro.borodziuk.eu\/index.php\/2017\/05\/17\/automatyczna-instalacja-systemu-dzieki-kickstart\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Automatyczna instalacja systemu dzi\u0119ki Kickstart&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":1168,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[45],"tags":[],"_links":{"self":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/1167"}],"collection":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/comments?post=1167"}],"version-history":[{"count":17,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/1167\/revisions"}],"predecessor-version":[{"id":1443,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/1167\/revisions\/1443"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/media\/1168"}],"wp:attachment":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/media?parent=1167"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/categories?post=1167"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/tags?post=1167"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}