wordpress hosting - vpn - cloud - statistiekservice - email

Nieuwe server uitrollen met Satellite 6

Voor het uitrollen van een nieuwe server middels hammer zijn een aantal parameters nodig:

  • environment-id
  • architecture-id
  • domain-id
  • operatingsystem-id
  • partition-table-id

Er dient al een hostgroup aangemaakt te zijn, dat kan via hammer of de WebGUI. Exporteer de benodige settings, voorbeeld:


    export ORG_NAME=Datacenter
    export ORG_LOCATION=Amsterdam
    export ORG_ID=$(hammer --csv organization list --search "${ORG_NAME}"| awk -F, 'FNR == 2 {print $1}')
    export LOCATION_ID=$(hammer --csv location list --search "${ORG_LOCATION}" | awk -F, 'FNR == 2 {print $1}')

    export HOSTGROUP_NAME='rhel-6-x86_64-test'
    export HOSTGROUP_ID=$(hammer --csv hostgroup list --search "name = \"${HOSTGROUP_NAME}\""| awk -F, 'NR==2 {print $1}')

    export DOMAIN_NAME='example.com'
    export HOST_SHORTNAME="test-103"
    export HOST_FQDN="${HOST_SHORTNAME}.${DOMAIN_NAME}"
    export HOST_MAC='52:55:00:54:0b:e1'
    export ROOT_PWD='12345678FOOD'

Nu dit gebeurd is kan hammer worden aangeroepen om de host aan te maken:

     hammer host create --ask-root-password false --build false --hostgroup-id ${HOSTGROUP_ID} --mac ${HOST_MAC} --name "${HOST_SHORTNAME}" --root-password ${ROOT_PWD}

Als de host aangemaakt is moet deze nog gekoppeld worden aan een organistatie en locatie (organization en location). Deze info kunnen we niet via hammer opvragen en gebruiken hier de API voor:

     export HOST_ID=$(hammer host list | grep "${HOST_SHORTNAME}" | awk '{print $1}')

     json_file=$(mktemp)
     cat > ${json_file} <<EOF
     {"organization_id":"$ORG_ID","location_id":"$LOCATION_ID"}
     EOF

     curl -X PUT -k -u admin:securepassword -H 'Content-Type: application/json' -d @${json_file} https://localhost/api/hosts/${HOST_ID}

Gebruik van templates in Satellite 6

Nieuwe servers uitrollen middels een template

Dit valt uiteen in een aantal stappen:

  • koppelen OS aan een template
  • koppelen van partionering aan een OS

Koppelen OS aan een template

Vraag een lijst op met beschikbare templates:

     hammer template list --per-page 9999

NB: De optie --per-page 9999 zorgt ervoor dat we een lijst krijgen i.p.v. een aantal resulaten per pagina.

Een deel van de uitvoer ziet er dan ongeveer zo uit:

     14 | Kickstart default PXELinux          | PXELinux
     16 | Preseed default                     | provision
     17 | Preseed default finish              | finish
     19 | Preseed default iPXE                | iPXE
     18 | Preseed default PXELinux            | PXELinux
     20 | Preseed default user data           | user_data
     1  | PXELinux global default             | PXELinux
     33 | Satellite Finish Default            | finish
     31 | Satellite Kickstart Default         | provision
     32 | Satellite User Data Default         | user_data

We gebruiken even de standaard templates, we hebben in ieder geval template 14 en 31 nodig. Het Kickstart default PXELinux template zorgt voor 't Kickstarten, template 31 Satellite Kickstart Default zorgt oa. voor 't subscription management e.d.

Voor meer info over 't Satellite Kickstart Default template kan worden opgevraagd met:

     hammer template info --id 31

En geeft een uitvoer wat lijkt op:

     Id:                31
     Name:              Satellite Kickstart Default
     Type:              provision
     Operating systems:

Zoals te zien is Operating Systems nog leeg en moet aan dit template nog een OS gekoppeld worden. Dat kan worden gedaan met:

     hammer template update --id 31 --operatingsystem-ids 1

NB: De lijst met beschikbare Operating Systems is op te vragen met hammer os list

Koppelen van partionering aan een OS

Er moeten een aantal parameters gezet worden aan een OS voordat het gebruikt kan worden:

  • partionering
  • architecture
  • default templates
  • installatie medium

Opvragen van de beschikbare partitioneringstemplates:

     hammer partition-table list

En een stukje van de uitvoer kan er dan zo uit zien:

     7  | Kickstart default            | Redhat

En om deze partitie info te koppelen aan de hiervboven gekozen template 31:

    hammer os set-default-template --id 1 --config-template-id 31
    hammer os  add-ptable --id 1 --ptable-id 7

Als nu de info wordt opgevraagd van het configuratie template 31 met hammer os info --id 1

     Id:                 1
     Full name:          RedHat 6.5
     Release name:
     Family:             Redhat
     Name:               RedHat
     Major version:      6
     Minor version:      5
     Partition tables:
         Kickstart default
     Default templates:
         Satellite Kickstart Default (provision)
     Architectures:
         x86_64
     Installation media:
         Example_Org/Library/Red_Hat_6_Server_Kickstart_x86_64_6_5
     Templates:
         Satellite Kickstart Default (provision)
     Parameters:

 

 

 

 

 

Tips gebruik Satellite 6

Hammer

Gebruik van hammer zonder telkens username / wachtwoord in te geven:

  ~/.hammer/cli_config.yml

    :foreman:
       :host: 'https://localhost'
       :username: '<username>'
       :password: '<password>'

Let op om geen <TAB>'s te gebruiken maar spatie's, yml files gaan niet goed om met <TAB> 's

NIeuwe organisatie aanmaken

  hammer organization create --name=Datacentre --label=Datacentre
  hammer organization add-user --user=admin --name=Datacentre

Nieuwe locatie aanmaken

  hammer location create --name=Amsterdam
  hammer location add-user --name=Amsterdam --user=admin
  hammer location add-organization --name=Amsterdam --organization=Datacentre

Time-out opgeven voor hammer API

Edit /etc/hammer/cli.modules.d/foreman.yml

  :foreman:
     # Enable/disable foreman commands
     :enable_module: true

     # Your foreman server address
     :host: 'https://localhost/'

     # Check API documentation cache status on each request
     #:refresh_cache: false

    # API request timeout. Set to -1 for no timeout
    :request_timeout: -1 # in seconden

Quick tips:

Opvragen repository die aan een bepaalde organsitie of organisatie-id: 

  hammer repository list --organization-id=x

Opvragen van locaties:

  hammer location list

Meer info over een locatie

  hammer location info --id=x

Welke versie's OS zijn beschikbaar

  hammer os list

Welke templates zijn er beschikbaar:

 hammer template list --per-page 9999

 

 

 

 

 

Installatie vanaf het netwerk via PXE boot

Om vanaf het netwerk een pc of server te installeren zijn een aantal zaken nodig:

  1. Een aangepaste configuratie van een DHCP server
  2. Installatie tftpd server
  3. Installatie van het syslinux package
  4. Kickstartfile
  5. Software repository

DHCP server

Het booten vanaf het netwerk begint met, in dit geval, de aanwezigheid van een DHCP server die naast het uitdelen van een ipadres ook zo geconfigureerd is dat het ipadres van de server waarvan geboot kan worden aangegeven wordt. Daarnaast wordt de naam van het bestand opgegeven waarvan geboot wordt.

Aan een werkende DHCP server worden de volgende twee regels toegevoegd:


next-server 172.28.1.103;
filename "pxelinux.0";

Hierna moet uiteraard de DHCP server worden herstart: service dhcpd restart

Installatie tftpd server

Met yum install tftpd-server kan de installatie worden uitgevoerd. Daarna moet de tftpd server die via xinetd wordt gestart nog worden ge-enabled. Dit wordt gedaan door in /etc/xinet.d in tftp disabled van yes op no te zetten.
Herstart hierna de xinetd service door service xinetd restart

Installatie syslinux package

Dat is eenvoudig:yum install syslinux

Hierna moeten menu.c32 en pxelinux.0 nog naar de tftpd werkdirectory gecopyeerd worden:


cp /usr/share/syslinux/menu.c32 /var/lib/tftpd
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpd

Kickstartfile

De kickstartfile kan eenvoudig worden aangemaakt vanuit Satellite: Overview -> Manage Kickstarts -> Create a new kickstart profile

Software repository

Als vanuit Satellite een kickstart profiel wordt aangemaakt kan dat alleen op basis van beschikbare software channels. Hierdoor is gewaarborgd dat de benodige software (distributie met rpm’s) aanwezig is.