Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Kickstartscript - Hostname mitgeben

Frage Linux RedHat, CentOS, Fedora

Mitglied: Hans87

Hans87 (Level 1) - Jetzt verbinden

07.01.2014 um 09:06 Uhr, 3004 Aufrufe, 8 Kommentare, 2 Danke

Hallo,

ich möchte RedHat per kickstartscript installieren, den Hostnamen aber variabel halten.

gibt es eine Möglichkeit diesen bei Aufruf des Scripts mitzugeben?

Finde dazu leider nichts.


Mitglied: certifiedit.net
07.01.2014 um 10:50 Uhr
Hallo Hans,

normalerweise kannst du an jedes Skript einen Parameter eintragen. Hierbei kommt es darauf an, was es für ein Skript ist. Parameterübergabe sollte aber zum Ziel führen.

Beste Grüße,

Christian
Bitte warten ..
Mitglied: Hans87
07.01.2014 um 11:01 Uhr
Hallo,

danke für deine Hilfe,

heißt wenn ich das skript aufrufe einfach ein "--hostname=test1" dranhängen?


Gruß


Hans
Bitte warten ..
Mitglied: certifiedit.net
07.01.2014 um 11:11 Uhr
wenn das skript darauf vorbereitet wurde, ja. Je nachdem musst du darin noch diese Übergabe definieren.
Bitte warten ..
Mitglied: quin83
07.01.2014, aktualisiert um 19:50 Uhr
Hallo,


1. Die "einfache" Lösung für wenige Systeme:

Du kannst den Anaconda Installer mit Kernel-Optionen booten.
Also <Kernel> ... initrd=<Pfad zur initrd> ks=<Pfad zum kickstart File> ip=<ip>::<gateway>:<netmask>:<hostname>:<interface>:<autoconf>
Details siehe http://wwoods.fedorapeople.org/doc/boot-options.html#network
Das musst du halt bei jedem Boot dann im Bootloader ausfüllen.


2. Die "elegantere" Lösung für hunderte Systeme:

Du schreibst im Kickstart File einen Python Codeblock, welcher mittels %pre als Pre-Install Script ausgeführt wird.

Dieser Codeblock macht folgendes:
- Lokale MAC-Adresse auslesen
- Von einem Webserver eine Liste abholen
- In der Liste den Eintrag zur eigenen MAC-Adresse finden
- Konfiguration aus dieser Liste holen (IP, Hostname, etc.)
- Diese Informationen aus der Liste in korrekter Syntax in eine 2te Kickstart Datei (z.B. /tmp/kickstart.network.ks) schreiben

Dann schreibst du im anderem Kickstart-File nur noch:
%include /tmp/kickstart.network.ks

Damit kannst du dann alles in einer zentralen Liste auf einem Server pflegen.
Wir erstellen halt auch noch eine /tmp/kickstart.software.ks und /tmp/kickstart.partitions.ks), das ist ganz nett wenn alles zentral liegt.


Grüße,

Daniel
Bitte warten ..
Mitglied: Hans87
09.01.2014 um 14:00 Uhr
Hallo Daniel,

zunächst danke.

ich verstehe allerdings nicht, wie ich den Anaconda installer mit optionen boote...
Bitte warten ..
Mitglied: quin83
09.01.2014 um 21:29 Uhr
Hallo,

ich verstehe allerdings nicht, wie ich den Anaconda installer mit optionen boote...

Im Prinzip ist der Kernel auf der Installations-CD ein normaler, kleiner Linux Kernel, welcher am Ende des Boot-Vorgangs den Anaconda startet.
Folglich akzeptiert er beim Boot-Vorgang Parameter aus dem Boot-Loader.

Ich gehe davon aus, dass du von einem Installations-Medium bootest.
Das erste was du siehst ist der Boot-Loader mit "Welcome to Red Hat Enterprise 6.4!".
Dort hast du dann mehrere Optionen. Du verwendest wohl die erste "Install or Upgrade an existing system".

Wenn du hier nicht Enter sondern Tab drückst, gelangst du in eine Shell und kannst die Optionen ändern.

Bei der Installation steht "vmlinuz initrd=initrd.img".
vmlinuz ist dabei der Dateiname des Kernels auf der CD.
Das erste Argument teilt dem Kernel mit, dass er die initiale Ramdisk mit den Treibern aus der Datei initrd.img holen soll.
Und hier kannst du nun weitere Dinge angeben.

Bei mir sieht das etwa so aus:
vmlinuz initrd=initrd.img ip=dhcp ks=http://webserver-0815.example.com/rhel64.ks nousbstorage text

ip=dhcp - Das System soll bitte erst mal DHCP machen, die IP wird später über das Kickstart-File gesetzt
ks=<URL> - Hier soll der Anaconda das Kickstart-File runterladen, welches er dann verwendet
text - Installation ohne bunte Bilder, wir sind ja nicht unter Windows ;) Diese Option könnte man auch direkt ins Kickstart File schreiben.

Eine Anleitung mit Bildern findest du hier:
https://access.redhat.com/site/articles/507303
Dieses Thema ist dort "Step 4".

Grüße,

Daniel
Bitte warten ..
Mitglied: Hans87
10.01.2014 um 11:17 Uhr
aber ich kann wenn ich tab gedrückt habe unten in der Zeile nicht am Ende eingeben (also nach dem ks=http://........../rhel64.ks) hostname=testname ....

oder?

die maschine hat dann nämlich als name dhcp-ipadresse...

auch mit einem %pre skript im Kickstart skript komme ich nicht ans ziel... dieses sieht so aus:

%pre
#!/bin/bash

###Hostname
exec < /dev/tty6 > /dev/tty6
chvt 6
clear
echo ""
echo "# One short question! #"
echo ""
echo -n "Please enter the hostname for this machine (hostname): "
read hostn
hostname $hostn
echo -e "NETWORKING=yes\nHOSTNAME=$hostn" > /etc/sysconfig/network
echo "You have selected $hostn. Press enter to continue or ctrl alt del to restart"
read
###Go back to tty1##
exec < /dev/tty1 > /dev/tty1
chvt 1
%end


und oben im kickstartscript bei network habe ich dann folgendes stehen:

network --hostname=${hostn}


die fertige Maschine heißt dann allerdings ${hostn}


kann mir das einer erklären bzw sagen was ich da falsch mache?
Bitte warten ..
Mitglied: quin83
10.01.2014, aktualisiert um 20:45 Uhr
Hallo,

ich glaube wir reden leicht an einander vorbei.

Man muss zwischen 2 Konfigurationen unterscheiden:

1. Anaconda
Anaconda besteht aus 2 Teilen:
- Anaconda Stage 1: Das ist der Installations-Kernel und die Treiber-Geschichte. Stage 1 prüft noch das Medium und konfiguriert das Netzwerk, dann ist Stage 2 dran.
- Anaconda Stage 2: Das ist der eigentliche Installer, welcher die Installation durchführt.

Wenn du nun Anaconda Stage 1 bootest, wird dort das Netzwerk konfiguiert.
Es kann ja sein, dass du deine Installationsquelle (Stage 2) nicht auf dem Medium, sondern auf einem HTTP / NFS / FTP Server liegen hast.
Oder auch das Kickstart-File, welches du angegeben hast. Dafür muss das Netzwerk verfügbar sein, damit das abgerufen werden kann.

=> Die Netzwerk-Konfiguration, welche im Anaconda aktiv ist, kann über die Kernel-Optionen beim Boot beeinflusst werden.
=> Diese Netzwerk-Konfiguration kann eine vollständig andere sein, als später im installierten System aktiv ist.


2. Das Installierte System
Bei der Installation werden die Einstellungen aus dem Kickstart-File verwendet.
(Ich bin mir nicht sicher, aber ich glaube wenn man dort nichts konfiguriert, wird die Konfiguration von Anaconda Stage 1 übernommen.)
Folglich musst du für dein Szenario im Kickstart-File einen Eintrag für den Hostnamen haben.


Ich mache das z.B. so, dass das System bootet und erst mal per DHCP im Netzwerk hängt. (Weg des geringsten Widerstands)
Dann wird von einem Webserver das Kickstart-File abgeholt und das %pre Script ausgeführt.
Damit liegen dann die Infos für das Zielsystem vor (Hostname, statische IP, Partitioniertung, Installationsumfang), welche vom %pre Script in ein endgültiges, 2tes, 3tes und 4tes Kickstart-File geschrieben werden.
Diese neuen Kickstart-Files werden dann per %include eingebunden. Dann startet die Installation.


Zu deinen Fragen:

echo -n "Please enter the hostname for this machine (hostname): "
read hostn
hostname $hostn
echo -e "NETWORKING=yes\nHOSTNAME=$hostn" > /etc/sysconfig/network

Alles schön und gut, aber damit konfigurierst du die Laufzeitumgebung des bereits gestarteten Anaconda.
Nach dem Reboot geht diese Einstellung einfach nur verloren.

network --hostname=${hostn}
Ein Kickstart File ist kein Shell-Script, daher werden Variablen nicht unterstützt.


Vorschlag 1:

Im Script:
echo -n "Please enter the hostname for this machine (hostname): "
read hostn
echo "network --hostname=${hostn}" > /tmp/kickstart-hostname.ks

und dann
%include /tmp/kickstart-hostname.ks

Ich bin mir hier jetzt aber nicht sicher, ob --hostname=xyz als einziger Parameter funktioniert, oder ob "network" die gesamte Konfiguration "--ip", "--gateway", etc. in einer Zeile erwartet.
Müsste man testen.


Vorschlag 2:

Da das Kickstart-File nur ein simples Text-File ist, könnte es auch mit PHP auf einem Webserver erzeugt werden.
Du legst dir ein PHP Script auf den Webserver, welcher das File abhängig von den Parametern generiert.
Dann startest du Anaconda z.B. mit:


Bei Fragen immer gern.

Grüße,

Daniel
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
Hostname bzw IP-Adresse in Excel eintragen (12)

Frage von EgonFrenz zum Thema Batch & Shell ...

Exchange Server
Exchange 2010 - Autodiscover - externer Hostname - NTLM (13)

Frage von SLUN127 zum Thema Exchange Server ...

Batch & Shell
TCP IP Druckerport auf Win 7 Client von IP ändern auf DNS Hostname (9)

Frage von pixel0815 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...