Preface xxi Acknowledgments xxviiAbout the Authors xxixIntroduction xxxi Chapter 1: Installation 1Get Ubuntu 2Boot Screen 3Disk Partitioning 5Server Roles 13Installer Console 15Reboot the System 16 Chapter2: Essential System Administration 17Basic Command-Line Administration 18Ubuntu Boot Process 24File System Hierarchy 39Networking 45 Chapter3: Package Management 51Introduction to Package Management 52Debian Packages 60Package Management in Ubuntu 63Making Your Own Packages 77 Chapter4: Automated Ubuntu Installs 83Preseeding 84Kickstart 104PXE Boot Server Deployment 111Customize Automated Installs 118 Chapter5: Guide to Common Ubuntu Servers 125DNS Server 126Web Server 135Mail Server 144POP/IMAP Server 156OpenSSH Server 158DHCP Server 160Database Server 163File Server 172Edubuntu and LTSP 179LTSP Server Configurations 184 Chapter6: Security 199General Security Principles 200Sudo 201AppArmor 206SSH Security 210Firewalls 214Intrusion Detection 226Incident Response 232 Chapter7: Backups 237Backup Principles 238Drive Imaging 240Database Backups 242BackupPC 247 Chapter8: Monitoring 265Local Monitoring Tools 266Ganglia 271Nagios 278 Chapter9: Virtualization 295KVM 296VMware Server 313Ubuntu Enterprise Cloud 324 Chapter10: Fault Tolerance 333Fault Tolerance Principles 334RAID 335LVM 361Ethernet Bonding 364Clusters 369 Chapter11: Troubleshooting 391General Troubleshooting Philosophy 392Localhost Troubleshooting 395Network Troubleshooting 408Hardware Troubleshooting 417 Chapter12: Rescue and Recovery 421Ubuntu Recovery Mode 422Ubuntu Server Recovery CD 427Ubuntu Desktop Live CD 431 Chapter13: Help and Resources 441Paid Support from Canonical 442Forums 443Internet Relay Chat 444Mailing Lists 447Online Documentation 448Localhost Documentation 449Local Community Teams 450Other Languages 451Tech Answers System (Launchpad) 451Bug Reporting 451Summary 453 Chapter14: Basic Linux Administration 455Shell Globs 456Pipes and Redirection 458File Permissions and Ownership 464Linux File Types 466At and Cron 470 Appendix: Cool Tips and Tricks 477Avoid That grep Command in grep Output 477Shortcut to a Command Path 478Wipe a Drive in One Line 478Run a Command Over and Over 479Make a Noise When the Server Comes Back Up 479Search and Replace Text in a File 479find and exec Commands 480Bash Commands with Too Many Arguments 480Use Your Bash History 481Are These Files Identical? 481Go Back to Your Previous Directory 481Find Out Who Is Tying Up a File System You Want to Unmount 482Send a Test E-mail Using telnet 482Easy SSH Key Sharing 483Get the Most Out of Dig 484 Index 487
Kyle Rankin is a systems architect for Quinstreet, Inc., the current president of the North Bay Linux Users' Group, the author of Knoppix Hacks, Knoppix Pocket Reference, Linux Multimedia Hacks, and Ubuntu Hacks, and he has contributed to a number of other O'Reilly books. Kyle is also a columnist for Linux Journal and has had articles featured in PC Magazine, TechTarget, and other publications. Benjamin Mako Hill is a Seattle native working out of Boston, Massachusetts. Mako is a long-time free software developer and advocate. He was part of the founding Ubuntu team, one of the first employees of Canonical, Ltd., and lead author of The Official Ubuntu Book. In addition to some technical work, his charge at Canonical was to help grow the Ubuntu development and user community during the project's first year. Mako is currently a fellow at the MIT Center for Future Civic Media and a researcher and Ph.D. candidate at the MIT Sloan School of Management. Mako has continued his involvement with Ubuntu as a member of the Community Council governance board, through development work, and through projects such as this book.