Automatic System Installations And Change Management. with FAI



Similar documents
Mittwoch, 12. Jänner Grml

Free Software in Valencia The LliureX Project

PARALLELS SERVER 4 BARE METAL README

The Kali Linux Dojo - Rolling Your Own ISOs

II. Installing Debian Linux:

GL-250: Red Hat Linux Systems Administration. Course Outline. Course Length: 5 days

PARALLELS SERVER BARE METAL 5.0 README

Installing Ubuntu Server 9.04

ENTERPRISE LINUX SYSTEM ADMINISTRATION


HTTP-FUSE PS3 Linux: an internet boot framework with kboot

Linux Embedded devices with PicoDebian Martin Noha

Practical Applications of Virtualization. Mike Phillips IAP 2008 SIPB IAP Series

Advanced Linux System Administration on Red Hat

Deploying Ubuntu Server Edition. Training Course Overview. (Ubuntu LTS)

Deploy and Manage Hadoop with SUSE Manager. A Detailed Technical Guide. Guide. Technical Guide Management.

Red Hat System Administration 1(RH124) is Designed for IT Professionals who are new to Linux.

FOG Guide. IPBRICK International. July 17, 2013

SUSE Linux Enterprise Point of Service

Kerrighed / XtreemOS cluster flavour

RedHat (RHEL) System Administration Course Summary

Module I-7410 Advanced Linux FS-11 Part1: Virtualization with KVM

Active Directory - User, group, and computer account management in active directory on a domain controller. - User and group access and permissions.

How to Restore a Linux Server Using Bare Metal Restore

GLS250 "Enterprise Linux Systems Administration"

Red Hat Linux Administration II Installation, Configuration, Software and Troubleshooting

RH033 Red Hat Linux Essentials or equivalent experience with Red Hat Linux..

Diploma in Computer Science

Cluster Lifecycle Management Carlo Nardone. Technical Systems Ambassador GSO Client Solutions

FAI Guide (Fully Automatic Installation)

2. Boot using the Debian Net Install cd and when prompted to continue type "linux26", this will load the 2.6 kernel

DTC & DTC-Xen Running a VPS business with Xen Thomas Goirand, GPLHost CEO. Xen Summit Asia at Intel 2009

RHCSA 7RHCE Red Haf Linux Certification Practice

Amahi Instruction Manual

NOC PS manual. Copyright Maxnet All rights reserved. Page 1/45 NOC-PS Manuel EN version 1.3

Acronis Backup & Recovery 10 Server for Linux. Update 5. Installation Guide

The Linux System. o Updating without touching the user's files and configurations.

Relax and Recover (rear) Workshop

Kickstart & Booking. Kristian Köhntopp, booking.com

Preparing Your Computer for LFS101x. July 11, 2014 A Linux Foundation Training Publication

Deployment - post Xserve

LinMin Bare Metal Provisioning April 15, Functional Overview White Paper

Linux Disaster Recovery best practices with rear

Restoring a Suse Linux Enterprise Server 9 64 Bit on Dissimilar Hardware with CBMR for Linux 1.02

SUSE Manager in the Public Cloud. SUSE Manager Server in the Public Cloud

How To Recover From A Disaster On Linux (Amd64) On A Hard Disk Drive (Amd32) On An Uniden (Amd66) Or A Hard Drive (Oranium) On Your Computer (Orren) On The Same Computer (

LOCKSS on LINUX. CentOS6 Installation Manual 08/22/2013

From Idea to Working Deployment:

Red Hat Network Satellite (On System z) 18-JUNE CAVMEN Meeting

Penetration Testing LAB Setup Guide

Installing Ubuntu LTS with full disk encryption

HARFORD COMMUNITY COLLEGE 401 Thomas Run Road Bel Air, MD Course Outline CIS INTRODUCTION TO UNIX

HP-UX System and Network Administration for Experienced UNIX System Administrators Course Summary

VMTurbo Operations Manager 4.5 Installing and Updating Operations Manager

Embedded Asterisk. A Crazy Man s Approach to VoIP. Terry Dunlap. 5/12/2007 terrydunlap.com

Setting Up a CLucene and PostgreSQL Federation

Windows Template Creation Guide. How to build your own Windows VM templates for deployment in Cloudturk.

W H I T E P A P E R. Best Practices for Building Virtual Appliances

Table of Contents. Introduction. Audience. At Course Completion. Prerequisites

LOCKSS on LINUX. Installation Manual and the OpenBSD Transition 02/17/2011

SIRIS. Bare Metal Restore Guide

An Oracle White Paper July Oracle VM 3: Building a Demo Environment using Oracle VM VirtualBox

1. Product Information

Online Backup Client User Manual Linux

System deployment and bare metal recovery by Clonezilla

virtualization.info Review Center SWsoft Virtuozzo (for Windows) //

CS197U: A Hands on Introduction to Unix

EMC Avamar. Backup Clients User Guide. Version REV 02

Installing an open source version of MateCat

EXi PREP. Solaris 10. System Administration. llllllllllllllll. Bill Calkins. ULB Darmstadt

Oracle VM Server Recovery Guide. Version 8.2

Over-the-top Upgrade Guide for Snare Server v7

A Better Approach to Backup and Bare-Metal Restore: Disk Imaging Technology

Khóa học Enterprise Linux System Administration

Linux Overview. The Senator Patrick Leahy Center for Digital Investigation. Champlain College. Written by: Josh Lowery

Table of Contents of the Debian GNU/Linux Administrator Handbook

RecoveryVault Express Client User Manual

Novell Identity Manager Resource Kit

A Highly Versatile Virtual Data Center Ressource Pool Benefits of XenServer to virtualize services in a virtual pool

EXPLORING LINUX KERNEL: THE EASY WAY!

Linux Disaster Recovery as a Service (with rear)

DRBL and Clonezilla The deployment and restoration system

Week Overview. Running Live Linux Sending from command line scp and sftp utilities

Linux System Administration on Red Hat

Cloud.com CloudStack Community Edition 2.1 Beta Installation Guide

Acronis Backup & Recovery 10 Server for Linux. Installation Guide

Linux Backups. Russell Adams Linux Backups p. 1

CA arcserve Unified Data Protection Agent for Linux

Oracle Linux 7: System Administration Ed 1 NEW

Linux for UNIX Administrators

Acronis Disk Director 11 Advanced Server. Quick Start Guide

Online Backup Client User Manual

Using VMware Player. VMware Player. What Is VMware Player?

MODULE 1. INSTALLING SUSE LINUX ENTERPRISE SERVER 1. BASIC NOTIONS ON INSTALLATION PROCEDURES

Planning for an Amanda Disaster Recovery System

The BackTrack Successor

Article. Well-distributed Linux Clusters, Virtual Guests and Nodes. Article Reprint

Acronis Backup & Recovery 10 Advanced Server Virtual Edition. Installation Guide

The Ten Minute Guide to Setting Up a Linux Web Server

Transcription:

Automatic System Installations And Change Management with FAI

Speaker

Henning Sprang

OpenSource consultant, developer, author

Interests

Systems management Software development QA and testing Virtualization

FAI Team member

About system installations

Do You...

...use FAI already?

Another auto-installer or config management tool?

wonder how to rebuilt/restore configurations?

manually tinkered and tweaked over long time

Exactly, really

quick

Disk images

Create templates from ``proper'' installations

Copy when needed and adjust them as needed

Pros

low learning cost Simple and fast implementation: cp/rsync/tar/dd

Cons

Inflexible - the smallest change requires rebuilding the image Still manual work needed to get a installed system Storage cost linear to number of different configurations

Configuration with shell scripts

Manual work replaced by shell scripts

Pros

Much lower storage cost Higher flexibility Tailor made

Cons

Full-blown development project (you'll realize after a while) You solve every problem on your own, instead of reusing work of others

Use available Auto-Installer

Anaconda / Kickstart: Fedora-based

Autoyast: SuSE-based

Nlite/Unattend: Windows in many flavours

FAI: Debian-based, Fedora-based, SuSE-based, Windows experimental, Solaris possible

Others: Solaris Jumpstart RedHat Cobbler/Koan

About FAI

Why FAI?

Shellscript-based Simple, Flexible, easy to extend

Community support by seasoned "`Installers"'

Diverse client- and serverdistributions

Multiple installation types and system updates

Can be used for real hardware and virtualization systems

One-Step-Install bare metal to fully working system

Easily integrate other tools CFEngine Puppet Custom scripts

History

Started 1999 by Thomas Lange at the University of cologne

Base idea: structured and planned installation

Plan your installation, and FAI installs your plan

Part of the Debian Distribution

Today about 10 active developers, small but nice community

Since 2005 softupdates from Henning Glawe included

Who is using it for what?

EDF uses FAI (with GOSA) for some research clusters

LiMux in Munich: installs/updates 400(to be 14000) clients/servers

Multiple top 500 High Performance Clusters

Small home networks starting from 2 systems

GRML admin live CD built with FAI

Functionality

Overview

FAI classes

A class defines system properties and actions to be taken

Class-assignment with simple texfile, database, or scripts

Systems can be assigned to multiple classes combined at will

Server-distribution:

Debian-based Dependencies: Perl, NFS, TFTP, debootstrap So, easy to port!

Target-distributions:

Debian, Redhat, Ubuntu, Suse, Mandriva

Different installation types (networked, CD/USB, chroot)

Integrated versioning with subversion, CVS, git

System updates

Installation types

Network installation with central install server

Client/Server architecture

Directly calling dirinstall for chroots (Can be easy integrated into xen-tools, ganeti,...)

With grml-live: Live-CD generation!

The installation/update process

Most important FAI "tasks" (steps of installation)

defclass: Class definition(assignment) for the target system

partition: guess what?! :)

extrbase: Unpack a minimal base image

debconf: apply Debconf preseedings

instsoft: Software package installation

Configure: Run configuration scripts

savelog: Push logfiles on the install Server

Usage details

Considerations and Planning

Installation

Decide the matching install type (net/cd/dirinstall)

Plan your installation

Use cases Network and environment Software-packages Additional files and config adjustments Acess control, Identity Management,...

Using mirrors of Internet software repositories

Updates

How and when should which patches be applied?

Testing processes how do I know the effect of a patch/update?

Mirrors of security update repositories?

Automatic (scheduled, timebased) or manually started?

Setup and configuration

Installation on Debian: apt-get install fai-quickstart

Adjust install server setup in /etc/fai

fai.conf: LOGUSER=fai, LOGPROTO=ssh (for Logging via ssh) apt/sources.list: use local mirror if available make-fai-nfsroot.conf: local mirror for debootstrap

FAI server is configured! Now create NFSroot: fai-setup / make-fai-nfsroot

For PXE-Boot: fai-chboot to set boot-kernel, -options

Without PXE / Installation from CD: fai-cd

Infrastructure services for network install

DNS entry for server and clients

DHCP config: Host/IP/MAC as usual

some FAI-specific stuff: option root-path "/srv/fai/nfsroot..." server-name "faiserver"; # boot-server next-server 172.20.2.64; # tftp server: kernel filename "pxelinux.0";

System configurations

Configurations for installation are stored in FAI configspace

Simple text files and scripts

requirements from installation plan are reflected here

Example included in /usr/share/doc/fai/examples/simple

Default location: /srv/fai/config

Contents of configspace

class disk_config basefiles debconf package_config scripts files hooks

Adjust configspace: class

class contains class- and variable definitions/assignments

Simplest way: assign classes based on hostnames

Some sample classes: FAISERVER, GNOME, DEMO, XORG

Any script can be used to assign classes

E.G.: check specific hardware, MAC or IP, disk size,...

Adjust configspace: basefiles

Minimal base images for non-debian distributions and special uses

Task "extrbase" checks this directory for matching images

Images named by classes

You could also put an image here and skip the rest :)

Adjust configspace: disk_config

detailed control over partitions and mounting

new tool includes lvm and raid setups

hard sizes or ranges

# example of new config file for setup-storage # # <type> <mountpoint> <size> <fs type> <mount options> <misc options> disk_config disk1 disklabel:msdos primary / 250 ext3 rw,errors=remount-ro logical swap 200-1000 swap rw logical /var 600-1300 ext3 rw createopts="-m 5" \ tuneopts="-c 0 -i 0" logical /tmp 100-1G ext3 rw createopts="-m 0" \ tuneopts="-c 0 -i 0" logical /usr 1G-8G ext3 rw logical /home 100-50% ext3 rw,nosuid createopts="-m 1" \ tuneopts="-c 0 -i 0"

Adjust configspace: debconf

Presets for package install scripts

Only for dpkg-based distributions

Works analog to Debian Installer

Adjust configspace: package_config

Contents: files named by class names

Purpose: Define packages to be installed

Supports many installation methods:

install (apt-get) aptitude taskinst (Debian tasks=package collections) urpmi (mandriva) yumi (Fedora) y2i (SuSE y2pmsh) yast (SuSE yast -i)

Example package_config/demo from simple examples: PACKAGES aptitude fortune-mod fortunes rstat-client #rstatd rusers rusersd # only when also class XORG is defined PACKAGES aptitude XORG bb frozen-bubble xpenguins

Adjust Configspace: scripts #!/bin/bash #!/bin/perl #!/usr/bin/cfagent

scripts to be executed after package installation

Usually shell-, Perl- and cfengine-scripts

Need for others? just install Interpreter in the NFS-Root

Naming scheme: <CLASSNAME>/<NUMBER>-<SCRIPTNAME>

Number defines order of execution

SCRIPTNAME arbitrary just for readability

scripts example:. -- AMD64 `-- 99-discover-bug -- DEMO -- 10-misc `-- 30-demo -- FAIBASE -- 10-misc -- 30-interface `-- 40-misc -- FAISERVER -- 10-conffiles `-- 20-copy-mirror -- GRUB `-- 10-setup `-- LAST `-- 50-misc

Adjust configspace: files

Structure of a filesystem, starting with /

classbased copy/unpack

For usage with fcopy/ftar

Copy single files explicitly, or recursive from /

ftar unpacks an archive

Target file=directory

actually copied source file=classname

sample: -- etc -- X11 -- xorg.conf -- ATI -- NVIDIA -- apache2 -- conf.d -- debian-mirror.conf --FAISERVER -- fai -- fai.conf -- FAISERVER -- FAI_SOFTUPDATE_CLIENT

Adjust configspace: hooks

Naming scheme: <TASKNAME>.<CLASSNAME>[.source]

Execution before the according task

Examples: partition.xenu instsoft.faibase savelog.last.source

Do the installation

Depending on chosen install type

Boot via PXE Bootfloppy install-cd USB Stick

fai dirinstall <TARGETDIR> into mounted blockdevice

Call dirinstall from xen-tools, Ganeti,...

Run grml-live

Depending on number of packages it takes 3-30 minutes

(automatic)restart with production configuration

Functionality tests

Advanced stuff Outlook

Support stuff for more distributions: fai-distributions

GOSA as LDAP and FAI GUI

Automatic Tests of the installed systems

hooks/scripts could check files and configurations Crucible Test Framework

No LDAP? Management-Tool/lightweight GUI without GOSA

better configspace layout

Comparison with Puppet

LIMITED VALIDITY

I Only scratched Puppet's surface yet!

But I try to be unbiased

I actually like puppet quite well

The Points

Puppet has data encryption functionality! can distribute secrets!

FAI has a simpler file copying structure Could be emulated with some code in puppet.

Puppet: only "configuration" FAI: also partition and base install

FAI has multiple specific logs Puppet logs into syslog

FAI: config files + scripts Puppet: everything is a script (most config-filish - found some strange syntax skimming through)

Puppet: advanced client/server config push FAI: (scripted) ssh into amanged host, additional tool

FAI is a bit more mature - no youth problems

Puppet has some more advanced distribution abstractions

FAI is still lacking a nice Logo and website :)

BOTH: cool tools that you should use!

Can work together well and easy

Conclusions

FAI is a powerful tool for

Automatic installation

System-Change-Management

Structured approach required

Expect some learning curve on the way

The Big Reward: less worries about...

getting a config cloned setting up new machines restoring after a crash changing configs on multiple systems

Further information: http://www.informatik.uni-koeln.de/fai/ http://faiwiki.informatik.uni-koeln.de/ IRC-Channel #fai at OFTC-Network linux-fai-users and linux-fai-devel mailing list Commercial Support: multiple companies and freelancers

ADVERTISEMENT: to learn more or implement CALL ME! :)

Contact henning@sprang.de http://www.sprang.de/

THANKS FOR LISTENING!

QUESTIONS?