Files
gitea-pages/admin-guide/deployment/infrastructure.rst
2023-05-10 16:55:50 +02:00

3.4 KiB

Deploying the infrastructure

Introduction

The deployment infrastructure is composed of:

  • one sysdb server;
  • one puppet server;
  • one repository server.

We currently have two infrastructures in place, one for testing and the other for production, with the following hostnames:

Role testing host production host
boot server sysdb server
boot.psi.ch sysdb.psi.ch
puppet server puppet00-test puppet01
repository server
repos.psi.ch

The Sysdb Server

The sysdb server is a server running HTTP(S) services needed by other components of the deployment infrastructure, specifically to:

  • setup (add/remove/modify) the hosts managed by the system;
  • get the iPXE file for the managed hosts;
  • get the Kickstart file for the managed hosts.

The code for these services is avaiable at https://git.psi.ch/linux-infra-software/sysdb.

the Puppet Server

The puppet server is a rather standard puppet master, configured to use sysdb informations as ENC.

The Repo Server

The service that provides clones of different repositories (RHEL, Puppetlabs, Google Chrome) plus some internally developed ones for specific products (eg. GPFS).

You can reach the production one at: https://repos.psi.ch/rhel7/.

Deployment of an infrastructure server

The procedure is not fully automated and completely documented.

The reference repo server is https://git.psi.ch/linux-infra/bootstrap.

The installation of an infrastructure server uses:
  • ETH repositories (since the repo server is not assumed to be available)
  • PXE only and static kickstart file (since the boot server is not supposed to be available)

After the installation, inside /root/bootstrap/instcode there is a script for each server, called {puppet,boot,repo}-server. The script should be run manually and some user interaction is needed.

Before to install you need to have: - a copy of the ssh root user keys and ssh server keys - a Red Hat Satellite Key. You can get it via the RHN Satellite Account at ETH

So to install eg. puppet00-test the procedure would be:

  • ensure on the Satellite web site that the system is not present (Systems-> Overview page)
  • copy the kickstart on /afs/psi.ch/project/linux/www/kickstart/configs/linux-infra/
  • copy the pxe in /afs/psi.ch/service/linux/tftpboot/pxelinux.cfg/
  • install the server booting from network
  • after the installation the server will stop
  • reboot it
  • login on the server
  • copy the ssh key
  • enter the /root/bootstrap/instcode directory
  • optionally change the branch
  • run ./puppet-server

Please note that in some cases the ETH repo used during the installation is not properly working.

In the case you are not redeploying the repo server, then it can be used instead of the ETH one, changing properly the PXE and the kickstart file.