95 lines
3.3 KiB
ReStructuredText
95 lines
3.3 KiB
ReStructuredText
============================
|
|
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 |
|
|
+====================+================+=================+
|
|
| sysdb server | boot00-test | boot00 |
|
|
+--------------------+----------------+-----------------+
|
|
| puppet server | puppet00-test | puppet01 |
|
|
+--------------------+----------------+-----------------+
|
|
| repository server | repo00-test | repo00 |
|
|
+--------------------+----------------+-----------------+
|
|
|
|
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: `<http://repo00.psi.ch/el7/>`_.
|
|
|
|
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.
|
|
|