Unix Infrastructure Management From Scratch



Similar documents
Making System Administration Easier by Letting the Machines Do the Hard Work, Or, Becoming an Agile Sysadmin

The Puppet Show Managing Servers with Puppet

How To Use 1Bay 1Bay From Awn.Net On A Pc Or Mac Or Ipad (For Pc Or Ipa) With A Network Box (For Mac) With An Ipad Or Ipod (For Ipad) With The

Instructions for Adding a MacOS 10.4.x Client to ASURITE

OnCommand Performance Manager 1.1

(june > this is version 3.025a)

ENTERPRISE LINUX SYSTEM ADMINISTRATION

Addonics T E C H N O L O G I E S. NAS Adapter. Model: NASU Key Features

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

ICANWK401A Install and manage a server

using version control in system administration

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

Verax Service Desk Installation Guide for UNIX and Windows

What is included in the ATRC server support

GL254 - RED HAT ENTERPRISE LINUX SYSTEMS ADMINISTRATION III

ABRAHAM ARCHITECTURE OF A CLOUD SERVICE USING PYTHON TECHNOLOGIES

Integrating Lustre with User Security Administration. LAD 15 // Chris Gouge // 2015 Sep

QuickStart Guide for Client Management. Version 8.7

JAMF Software Server Installation and Configuration Guide for OS X. Version 9.0

Active Directory Integration

VMware vcenter Log Insight Security Guide

Univention Corporate Server. Extended domain services documentation

JAMF Software Server Installation and Configuration Guide for OS X. Version 9.2

VMware vcenter Log Insight Security Guide

JAMF Software Server Installation and Configuration Guide for Linux. Version 9.2

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

Only LDAP-synchronized users can access SAML SSO-enabled web applications. Local end users and applications users cannot access them.

Incremental Backup Script. Jason Healy, Director of Networks and Systems

Moving to Plesk Automation 11.5

Configure Samba with ACL and Active Directory integration Robert LeBlanc BioAg Computer Support, Brigham Young University

WebSpy Vantage Ultimate 2.2 Web Module Administrators Guide

Instructions for Adding a MacOS 10.4.x Server to ASURITE for File Sharing. Installation Section

Using New Relic to Monitor Your Servers

VMware vcenter Log Insight Getting Started Guide

F-Secure Messaging Security Gateway. Deployment Guide

Back Up Linux And Windows Systems With BackupPC

COURCE TITLE DURATION LPI-202 Advanced Linux Professional Institute 40 H.

DocuShare Installation Guide

insync Installation Guide

Disaster Recovery on the Sun Cobalt RaQ 3 Server Appliance with Third-Party Software

DocuShare Installation Guide

Ahsay Replication Server v5.5. Administrator s Guide. Ahsay TM Online Backup - Development Department

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

Step One: Installing Rsnapshot and Configuring SSH Keys

INTRODUCING SAMBA 4 NOW, EVEN MORE AWESOMENESS

Diploma in Computer Science

JAMF Software Server Installation and Configuration Guide for Windows. Version 9.3

Centralized Mac Home Directories On Windows Servers: Using Windows To Serve The Mac

How To Set Up A Macintosh With A Cds And Cds On A Pc Or Macbook With A Domain Name On A Macbook (For A Pc) For A Domain Account (For An Ipad) For Free

Configure thin client settings locally

How To Set Up Egnyte For Netapp Sync For Netapp

Device Log Export ENGLISH

Charles Firth Managing Macs in a Windows World

QuickStart Guide for Managing Computers. Version 9.2

RedHat (RHEL) System Administration Course Summary

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

WHITE PAPER. VERITAS Bare Metal Restore AUTOMATED SYSTEM RECOVERY WITH VERITAS NETBACKUP

TANDBERG MANAGEMENT SUITE 10.0

Migrating to ESXi: How To

USER GUIDE. Snow Inventory Client for Unix Version Release date Document date

JAMF Software Server Installation and Configuration Guide for Linux. Version 9.0

Introducing ZENworks 11 SP4. Experience Added Value and Improved Capabilities. Article. Article Reprint. Endpoint Management

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

Websense Support Webinar: Questions and Answers

VMware vcenter Support Assistant 5.1.1

Secure Linux Administration Conference Bernd Strößenreuther

MarkLogic Server. Installation Guide for All Platforms. MarkLogic 8 February, Copyright 2015 MarkLogic Corporation. All rights reserved.

Configuring MailArchiva with Insight Server

Migration of Windows Intranet domain to Linux Domain Moving Linux to a Wider World

Amahi Instruction Manual

CYAN SECURE WEB HOWTO. NTLM Authentication

DESLock+ Basic Setup Guide Version 1.20, rev: June 9th 2014

Advanced Linux System Administration Knowledge GNU/LINUX Requirements

Plesk 11 Manual. Fasthosts Customer Support

How to Configure IDMU on the Oracle ZFS Storage Appliance

1. Product Information

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

System Admin Module User Guide. Schmooze Com Inc.

Integrating Mac OS X 10.6 with Active Directory. 1 April 2010

Enterprise Manager. Version 6.2. Installation Guide

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

CN=Monitor Installation and Configuration v2.0

Online Backup Client User Manual Linux

# Windows Internet Name Serving Support Section: # WINS Support - Tells the NMBD component of Samba to enable its WINS Server ; wins support = no

Chapter 1 - Web Server Management and Cluster Topology

Identity Management based on FreeIPA

Penetration Testing LAB Setup Guide

SVN Authentication and Authorization

SUSE Manager 1.2.x ADS Authentication

Centrify Suite 2012 Express

PARALLELS SERVER BARE METAL 5.0 README

Installing Management Applications on VNX for File

Ubuntu Sever Administration

CUIT UNIX Standard Operating Environment and Security Best Practices

OS Installation Guide Red Hat Linux 9.0

Dual Bay Home Media Store. User Manual

Transcription:

Unix Infrastructure Management From Scratch Mike Renfro Tennessee Technological University Tennessee Higher Education IT Symposium 2008 Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 1 / 52

Why bother? Wall s Three Great Virtues Three Great Virtues of a Programmer (or Sysadmin) Larry Wall Laziness Impatience Hubris Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 2 / 52

Why bother? Wall s Three Great Virtues Laziness Laziness The quality that makes you go to great effort to reduce overall energy expenditure. It makes you write labor-saving programs that other people will find useful, and document what you wrote so you don t have to answer so many questions about it. I m a part-time systems administrator. I don t have time to sit at individual systems and answer the same installation questions over and over. I don t have time to babysit installing applications on a few dozen systems, either. Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 3 / 52

Why bother? Wall s Three Great Virtues Impatience Impatience The anger you feel when the computer is being lazy. This makes you write programs that don t just react to your needs, but actually anticipate them. Or at least pretend to. Of course all you systems should stay current on security updates. Yes, you, too. What makes you think you re different from the other systems in this cluster? And don t email me 20 log anomalies I don t care about; just the ones I do care about. Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 4 / 52

Why bother? Wall s Three Great Virtues Hubris Hubris Excessive pride, the sort of thing Zeus zaps you for. Also the quality that makes you write (and maintain) programs that other people won t want to say bad things about. I ll be honest. I want to look better than the average administrator, and better than I ve looked in the past. If one of my systems drops a hard drive, I want to replace it, reboot the system from the network, and maybe stick around a bit longer to configure it for automated updates (but if I can go home and configure that remotely, even better). And when it s done updating, I want my users to be unable to tell the system s been reinstalled. Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 5 / 52

Components of a Managed Infrastructure The groundwork for bare-bones installations Version control The gold server Host install tools Ad hoc change tools Ensuring a consistent domain Directory servers Time synchronization Authentication servers Network file servers File replication servers After the initial installation Client file access Client OS and security updates Client configuration management Client application management Email Printing Monitoring Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 6 / 52

Components of a Managed Infrastructure The Groundwork for Bare-Bones Installations Version Control You need this. You ll be writing a lot of code that will describe how you want your systems configured. You ll be keeping a central repository of configuration files, configuration templates, and other important data. You want to be able to track changes when something breaks down the road. Unless there s already a compatible repository in-house, the simplest route is probably to set up a simple Subversion repository on the gold server s local filesystem, and back it up regularly. Wikipedia has a comparison of revision control software. Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 7 / 52

Components of a Managed Infrastructure The Groundwork for Bare-Bones Installations The Gold Server Serves files out via NFS, http, rsync, or whatever protocol your configuration management software uses. Passive. Clients contact the gold server to pull down updates, rather than it pushing updates out to the clients. Not mission-critical. If it dies, configuration changes don t happen, but all clients continue to run in their current state. Often the OS installation server, the patch server, and the sysadmin server, but not always. Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 8 / 52

Components of a Managed Infrastructure The Groundwork for Bare-Bones Installations Host Install Tools Unattended installation of a vanilla operating environment is the goal May or may not want to include security updates at this point Add dependencies to allow the client to contact the gold server on reboot Probably want to use vendor-supplied installation tools (e.g. Debian preseeding, Redhat kickstart, Solaris Jumpstart) Probably don t want to use a system image (especially if you have a several hardware models or architectures) Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 9 / 52

Components of a Managed Infrastructure The Groundwork for Bare-Bones Installations Ad hoc Change Tools Traditional tools were rsh, rcp, and rdist Current preferences often include ssh or dsh If we do everything else right, we never use these for administration: only for troubleshooting, diagnostics, and forcing an immediate update from the gold server. Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 10 / 52

Components of a Managed Infrastructure Ensuring a Consistent Domain Directory Servers Maps hostnames to IP addresses, usernames to UIDs, group names to GIDs May be your responsibility to maintain, or you may leech off a larger organization Think long-term. Get CNAME entries in DNS for infrastructure roles: cvs for the version control server, gold for the gold server, etc., even if they point to the same physical systems at first. Then you don t have to edit your scripts and definitions if you expand or rearrange your servers. Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 11 / 52

Components of a Managed Infrastructure Ensuring a Consistent Domain Time Synchronization If you don t synchronize all your system clocks: make acts funny when run over NFS tar complains about timestamps from the future You may have race conditions or other weirdness if you need multiple systems to coordinate on a particular task Kerberos just won t work Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 12 / 52

Components of a Managed Infrastructure Ensuring a Consistent Domain Time Synchronization Just use NTP. Use the campus NTP if possible. Avoid any sync method that jumps the clock on a running system, rather than slowly adjusting it to a proper value. Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 13 / 52

Components of a Managed Infrastructure Ensuring a Consistent Domain Authentication Servers Users like having a single username and password. If you can leech off an existing authentication database (LDAP, Kerberos, Active Directory, NIS, etc.), do it. Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 14 / 52

Components of a Managed Infrastructure Ensuring a Consistent Domain Network File Servers Consider offering multiple methods to access the same files: NFS for Unix systems on a protected network segment, SMB or Appletalk elsewhere. Don t forget backup and restoration, too. Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 15 / 52

Components of a Managed Infrastructure Ensuring a Consistent Domain File Replication Servers Propagates master configuration files (or any other files) to clients. Caching filesystems are one option for homogenous infrastructures. Checkouts from a version control system are another option. Update and syncing programs like sup or rsync are another. You may need a way to automatically restart services after their config files change. Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 16 / 52

Components of a Managed Infrastructure After the Initial Installation Client File Access Users and applications like a consistent namespace for files. If you can t be 100% consistent, at least be consistent within a particular system type. May use /apps as the main tree for software, full of links to real programs stored in /local/apps or /remote/apps as needed. Don t forget about access to users home directories, too. Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 17 / 52

Components of a Managed Infrastructure After the Initial Installation Client OS and Security Updates This step desperately needs to be both automated and capable of being run unattended. Options include: Makefile that runs patch scripts in a well-defined order, and touches files to prevent patches from being run more than once. Vendor-supplied tools Free tools that use lower-level vendor-supplied tools Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 18 / 52

Components of a Managed Infrastructure After the Initial Installation Client Configuration Management Everything that makes a client unique. Also, everything that a client has in common with other clients in a group (web servers) or in a common administrative domain. Includes configuration files, which services should be running, local users, locally-installed software. Can use a homegrown system, but it s probably worth using an existing tool. Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 19 / 52

Components of a Managed Infrastructure After the Initial Installation Client Application Management End-user applications, usually third-party. Use native packaging formats (.deb,.rpm,.pkg) when possible. If multiple versions of a package are needed, you can install each to /opt/package/version and use symlinks in the default path to set a default version. Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 20 / 52

Components of a Managed Infrastructure After the Initial Installation Email Just use SMTP. Open as few ports as possible just because a system needs to email cron output doesn t mean it has to listen for outside emails. Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 21 / 52

Components of a Managed Infrastructure After the Initial Installation Printing CUPS is a flexible printing system, compatible with JetDirect, Internet Printing Protocol, LPD, and Windows shares. Consider offering every printer available, and then setting a default printer based off the user s location. Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 22 / 52

Components of a Managed Infrastructure After the Initial Installation Monitoring Central syslog server logcheck to notify about log anomalies Nagios for notifications of service or host problems Ganglia for trends of cluster performance and usage Cacti for trends of anything you can get into SNMP Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 23 / 52

Our Implementation The Goals Consistent user experience across all systems of a particular type (e.g., Solaris workstation, Debian cluster node, Ubuntu workstation) bonus if we can make things consistent across system types, as well Authentication and authorization using existing Active Directory Restricting access to selected users in the Active Directory (primarily faculty, staff, graduate students) Less-stressed sysadmins Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 24 / 52

Our Implementation The Groundwork for Bare-Bones Installations Version Control We had an existing Apache Subversion server, so we just made a repository for the gold server s data. Excerpts from Apache s httpd.conf and AuthzSVNAccessFile are attached at the end of the handouts. Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 25 / 52

Our Implementation The Groundwork for Bare-Bones Installations The Gold Server Virtual server with 128 MB RAM, 10 GB disk Four open ports: ssh, Nagios plugin, rsync, and puppetmaster Puppetmaster s configuration files are a Subversion working copy Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 26 / 52

Our Implementation The Groundwork for Bare-Bones Installations Host Install Tools (Debian) Existing Debian DHCP server extended to allow PXE booting All current PCs supported PXE Debian preseed configurations take up 2-4 KB per system type, and can be shared across architectures. In our case, three configurations describe nearly 100 nodes (everything except the main file server and ftp server). Debian systems PXE boot, grab configurations from FTP server, install minimal operating system and Puppet client from FTP server, and reboot. Under 10 minutes from initial powerup to login prompt on a Dell Opteron server, including formatting 650 GB of disk. Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 27 / 52

Our Implementation The Groundwork for Bare-Bones Installations Host Install Tools (Solaris) Existing Debian DHCP/PXE server extended with Solaris configuration options Upgraded firmware on older Solaris workstations to allow PXE booting (good riddance to rarpd, bootparamd, and friends) Solaris Jumpstart configurations are a few KB each. Only one architecture in place for Solaris, so changes required for multiple architectures are untested. Solaris systems PXE boot; grab configurations from NFS server; install operating system, security updates, and Puppet client from NFS server; and reboot. Takes a few hours, due to larger operating system selection and inefficiencies in pkgadd. Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 28 / 52

Our Implementation The Groundwork for Bare-Bones Installations Ad hoc Change Tools All clients had secure shell servers installed on them as part of the host installation stage. The gold server also has dsh (Dancer s shell / distributed shell) installed, which basically loops ssh runs over multiple systems in defined groups. The gold server keeps a master repository of client ssh keys. As soon as a client checks in via puppet s internal certificate authority, the puppet client can pull its key down and restart the ssh server. Users don t notice when a system has been reinstalled, since its key (effectively) never changed. The clients also install root@gold s public key into their root authorized key file, allowing dsh or ssh to connect without password prompts. Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 29 / 52

Our Implementation Ensuring a Consistent Domain Directory Servers For DNS, we use the campus DNS server. nsswitch C library that allows username, password, and other lookups to query local files, network databases, etc. pam Pluggable Authentication Modules for Linux, Solaris, and others. Authorization libraries for flat files, remote systems, etc. winbind Samba component that generates Unix UIDs from Active Directory RIDs Avoid local storage of account information for regular users. ch208r:~# getent passwd mwr -s files ch208r:~# getent passwd mwr -s winbind mwr:*:6723:5513:mwr:/home/cae/mwr:/usr/bin/scponly Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 30 / 52

Our Implementation Ensuring a Consistent Domain /etc/pam.d/common-account (for Debian systems) account sufficient pam_unix.so account required pam_listfile.so onerr=fail \ sense=allow file=/etc/security/users.conf item=user account required pam_winbind.so Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 31 / 52

Our Implementation Ensuring a Consistent Domain Time Synchronization Using campus NTP server. NTP configuration controlled by puppet configuration management software. Puppet class for managing NTP is attached at the end of the handouts. Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 32 / 52

Our Implementation Ensuring a Consistent Domain Authentication Servers pam krb5 PAM module that looks up passwords via Kerberos. Compatible with Active Directory. auth sufficient pam_unix.so nullok_secure auth required pam_krb5.so use_first_pass Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 33 / 52

Our Implementation Ensuring a Consistent Domain Network File Servers Dell PowerEdge 2950, PowerVault MD1000, PowerVault 124T-LTO3, Debian GNU/Linux 4.0 NFS access provided by regular nfsd, SMB access provided by Samba, Appletalk access provided by netatalk Amanda for backups and restores Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 34 / 52

Our Implementation Ensuring a Consistent Domain File Replication Servers This role has generally been replaced by application packaging and configuration management tools. Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 35 / 52

Our Implementation After the Initial Installation Client File Access Disk space has grown at a much faster rate than software bloat (at least in my case). Therefore, most packages are installed locally. Application packaging ensures identical paths. Configuration management tools take care of deciding which packages to install, and how to mount central file server stores. Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 36 / 52

Our Implementation After the Initial Installation Client OS and Security Updates For Debian, cron-apt runs apt-get update and apt-get upgrade to grab new security and major release updates. No new packages get installed, only new versions of existing packages. This also gets new versions of end-user applications. For Solaris, pca (Patch Check Advanced) runs nightly, grabbing new patches from Sunsolve. Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 37 / 52

Our Implementation After the Initial Installation Client Configuration Management Puppet http://puppet.reductivelabs.com/ Open source system for automating system administration tasks. Written in Ruby, but Ruby knowledge not required for use. Most extensive support for Linux, Solaris, OS X, and BSD; lesser support for AIX, HP-UX, and other Unixes. Lead developer (Luke Kanies) in Nashville, available for training, support, and services. Puppet handles everything in configuration management : distributing the right configuration files; starting, stopping, reloading, enabling, and disabling services; managing local users; managing packaged software; managing cron jobs; etc. The Puppet class for managing NTP at the end of the handouts is a decent introduction to the basics. Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 38 / 52

Our Implementation After the Initial Installation Client Application Management (Debian) Converted large binary-only software (ANSYS, MATLAB, Abaqus, etc.) to.deb format in a local package repository. To protect non-free packages from unauthorized access, root on clients connects to the repository as an unprivileged user via ssh, and copies packages down as needed. No http or ftp access required. ssh keys for this are distributed by puppet. Puppet natively supports apt-get for Debian packages. Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 39 / 52

Our Implementation After the Initial Installation Client Application Management (Solaris) Using Blastwave sites for free software. Local Blastwave repository for non-free packages to be added in the future. Puppet natively supports pkg-get for Blastwave packages. Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 40 / 52

Our Implementation After the Initial Installation Email ssmtp installed on most Debian systems. sendmail only listening on loopback interface on all Solaris systems. Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 41 / 52

Our Implementation After the Initial Installation Printing To be done later. So far, the major infrastructure management is still on systems that don t need to print. Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 42 / 52

Our Implementation After the Initial Installation Monitoring Monitoring is running, to various degrees of integration. Syslog, logcheck, and Ganglia are more integrated than Nagios and Cacti. Puppet manifests do exist that automatically add hosts and services to Nagios as they re defined, though. Ganglia Cacti Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 43 / 52

For More Information Mike Renfro, renfro@tntech.edu http://infrastructures.org/ http://puppet.reductivelabs.com/ http: //blogs.cae.tntech.edu/mwr/infrastructure-management/ Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 44 / 52

Version Control Apache Configuration for Subversion Listing 1: Excerpt from httpd.conf < Location /svn > DAV svn SVNParentPath / usr / local / svn AuthzSVNAccessFile / etc / apache2 / AuthzSVN Satisfy Any Require valid - user AuthLDAPEnabled on AuthLDAPAuthoritative on AuthType Basic AuthName " CAE Subversion Repository " AuthLDAPBindDN cn=netauth, cn=users,dc=cae,dc=tntech,dc=edu AuthLDAPBindPassword REDACTED AuthLDAPURL ldap :// BDC :389/ cn=users,dc=cae,dc=tntech,dc=edu?\ samaccountname? sub? </ Location > Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 45 / 52

Version Control Apache Configuration for Subversion [ groups ] cae - admins = mwr, jls [ goldserver :/] @cae - admins = rw Listing 2: Excerpt from AuthzSVN Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 46 / 52

Bare Minimum Puppet Example Bare Minimum Puppet Example # / etc / puppet / manifests / site. pp import " classes /*" node default { include sudo } # / etc / puppet / manifests / classes / sudo. pp class sudo { file { "/ etc / sudoers ": owner => " root ", group => " root ", mode => 440, } } Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 47 / 52

NTP Class for Puppet NTP Class for Puppet (packaging, configuration) class ntp { $ntppackage = $operatingsystem? { Solaris => " SUNWntpu ", default => " ntp " } package { $ntppackage : ensure => installed, provider => $operatingsystem? { Solaris => " sun ", default => " apt " } } file { ntpconf : path => $operatingsystem? { Solaris => "/ etc / inet / ntp. conf ", default => "/ etc / ntp. conf " }, owner => root, group => root, mode => 644, source => " puppet :/// files / apps / ntp / ntp. conf ", require => Package [ $ntppackage ], } Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 48 / 52

NTP Class for Puppet NTP Class for Puppet (service) } service { ntp : ensure => $virtual? { vmware => stopped, xenu => stopped, default => running }, enable => $virtual? { vmware => false, xenu => false, default => true }, subscribe => [ Package [ $ntppackage ], File [ ntpconf ]] } Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 49 / 52

Puppet run example Puppet run example ch208i :~# puppetd - vt -- factsync -- server gold. cae. tntech. edu info : Loading fact virtual notice : Starting Puppet client version 0.23.1 info : Retrieving facts info : Loading fact virtual info : Config is up to date info : // ch208i. cae. tntech. edu / baseclass / ntp / File [ ntpconf ]: \ Filebucketed to puppet with sum \ afbf118cee5c7900d2d6e4856a30a581 notice : // ch208i. cae. tntech. edu / baseclass / ntp / File [ ntpconf ]/ source\ : replacing from source puppet :// gold. cae. tntech. edu / files /\ apps / ntp / ntp. conf with contents { md5 }2\ bdf28b5071d9403296e48d4aa5032ef info : // ch208i. cae. tntech. edu / baseclass / ntp / File [ ntpconf ]: \ Scheduling refresh of Service [ ntp ] notice : // ch208i. cae. tntech. edu / baseclass / ntp / Service [ ntp ]: \ Triggering refresh from 1 dependencies notice : Finished configuration run in 7.96 seconds Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 50 / 52

Storing sytem-wide ssh keys Storing system-wide ssh keys Storing these in a system-wide known hosts file means an end to The authenticity of host foo can t be established. Are you sure you want to continue connecting (yes/no)? # / etc / puppet / manifests / classes /ssh - keys. pp class ssh - keys { sshkey { " ch208a. cae. tntech. edu ": alias => [ " cvs. cae. tntech. edu ", " cvs ", " ch208a ", \ " 149.149.254.1 " ], type => "ssh - rsa ", key => " AAAAB3Nz... s8h8mbhn0 =", ensure => present ; } } Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 51 / 52

Installing JRE on Debian Installing JRE on Debian # / etc / puppet / modules / jre5 / manifests / init. pp class jre5 { package { "sun - java5 - jre ": require => File ["/ var / cache / debconf / jre5. seeds "], responsefile => "/ var / cache / debconf / jre5. seeds ", ensure => latest ; } file { "/ var / cache / debconf / jre5. seeds ": source => " puppet :/// jre5 / jre5. seeds ", ensure => present ; } } # / etc / puppet / modules / files / jre5. seeds sun - java5 - bin shared / accepted -sun -dlj -v1-1 boolean true sun - java5 - jre shared / accepted -sun -dlj -v1-1 boolean true sun - java5 - jre sun - java5 - jre / jcepolicy note sun - java5 - jre sun - java5 - jre / stopthread boolean true sun - java5 - bin shared / error -sun -dlj -v1-1 error sun - java5 - jre shared / error -sun -dlj -v1-1 error sun - java5 - bin shared / present -sun -dlj -v1-1 note sun - java5 - jre shared / present -sun -dlj -v1-1 note Mike Renfro (TTU) Unix Infrastructures From Scratch ITS 2008 52 / 52