Practical Linux System Administration: A Guide to Installation, Configuration, and Management
- Length: 246 pages
- Edition: 1
- Language: English
- Publisher: O'Reilly Media
- Publication Date: 2023-05-30
- ISBN-10: 1098109031
- ISBN-13: 9781098109035
- Sales Rank: #4655558 (See Top 100 Books)
This essential guide covers all aspects of Linux system administration, from user maintenance, backups, filesystem housekeeping, storage management, and network setup to hardware and software troubleshooting and some application management. It’s both a practical daily reference manual for sysadmins and IT pros and a handy study guide for those taking Linux certification exams.
You’ll turn to it frequently, not only because of the sheer volume of valuable information it provides but because of the real-world examples within and the clear, useful way the information is presented. With this book at your side, you’ll be able to:
- Install Linux and perform initial setup duties, such as connecting to a network
- Navigate the Linux filesystem via the command line
- Install software from repositories and source and satisfy dependencies
- Set permissions on files and directories
- Create, modify, and remove user accounts
- Set up networking
- Format and mount filesystems
- Perform basic troubleshooting on hardware and software
- Create and manage logical volumes
- Work with SELinux
- Manage a firewall and iptables
- Shut down, reboot, and recover a system
- Perform backups and restores
inside front cover Practical Automation with PowerShell Copyright dedication brief contents contents front matter preface acknowledgments about this book Who should read this book? How this book is organized: A roadmap About the code liveBook discussion forum about the author about the cover illustration Part 1. 1 PowerShell automation 1.1 What you’ll learn in this book 1.2 Practical automation 1.2.1 Automation goal 1.2.2 Triggers 1.2.3 Actions 1.2.4 Maintainability 1.3 The automation process 1.3.1 Building blocks 1.3.2 Phases 1.3.3 Combining building blocks and phases 1.4 Choosing the right tool for the job 1.4.1 Automation decision tree 1.4.2 No need to reinvent the wheel 1.4.3 Supplemental tools 1.5 What you need to get started today Summary 2 Get started automating 2.1 Cleaning up old files (your first building blocks) 2.1.1 Your first function 2.1.2 Returning data from functions 2.1.3 Testing your functions 2.1.4 Problems to avoid when adding functions to scripts 2.1.5 Brevity versus efficiency 2.1.6 Careful what you automate 2.1.7 Putting it all together 2.2 The anatomy of PowerShell automation 2.2.1 When to add functions to a module 2.2.2 Creating a script module 2.2.3 Module creation tips Summary Part 2. 3 Scheduling automation scripts 3.1 Scheduled scripts 3.1.1 Know your dependencies and address them beforehand 3.1.2 Know where your script needs to execute 3.1.3 Know what context the script needs to execute under 3.2 Scheduling your scripts 3.2.1 Task Scheduler 3.2.2 Create scheduled tasks via PowerShell 3.2.3 Cron scheduler 3.2.4 Jenkins scheduler 3.3 Watcher scripts 3.3.1 Designing watcher scripts 3.3.2 Invoking action scripts 3.3.3 Graceful terminations 3.3.4 Folder watcher 3.3.5 Action scripts 3.4 Running watchers 3.4.1 Testing watcher execution 3.4.2 Scheduling watchers Summary 4 Handling sensitive data 4.1 Principles of automation security 4.1.1 Do not store sensitive information in scripts 4.1.2 Principle of least privilege 4.1.3 Consider the context 4.1.4 Create role-based service accounts 4.1.5 Use logging and alerting 4.1.6 Do not rely on security through obscurity 4.1.7 Secure your scripts 4.2 Credentials and secure strings in PowerShell 4.2.1 Secure strings 4.2.2 Credential objects 4.3 Storing credentials and secure strings in PowerShell 4.3.1 The SecretManagement module 4.3.2 Set up the SecretStore vault 4.3.3 Set up a KeePass vault 4.3.4 Choosing the right vault 4.3.5 Adding secrets to a vault 4.4 Using credentials and secure strings in your automations 4.4.1 SecretManagement module 4.4.2 Using Jenkins credentials 4.5 Know your risks Summary 5 PowerShell remote execution 5.1 PowerShell remoting 5.1.1 Remote context 5.1.2 Remote protocols 5.1.3 Persistent sessions 5.2 Script considerations for remote execution 5.2.1 Remote execution scripts 5.2.2 Remote execution control scripts 5.3 PowerShell remoting over WSMan 5.3.1 Enable WSMan PowerShell remoting 5.3.2 Permissions for WSMan PowerShell remoting 5.3.3 Execute commands with WSMan PowerShell remoting 5.3.4 Connect to the desired version of PowerShell 5.4 PowerShell remoting over SSH 5.4.1 Enable SSH PowerShell remoting 5.4.2 Authenticating with PowerShell and SSH 5.4.3 SSH environment considerations 5.4.4 Execute commands with SSH PowerShell remoting 5.5 Hypervisor-based remoting 5.6 Agent-based remoting 5.7 Setting yourself up for success with PowerShell remoting Summary 6 Making adaptable automations 6.1 Event handling 6.1.1 Using try/catch blocks for event handling 6.1.2 Creating custom event handles 6.2 Building data-driven functions 6.2.1 Determining your data structure 6.2.2 Storing your data 6.2.3 Updating your data structure 6.2.4 Creating classes 6.2.5 Building the function 6.3 Controlling scripts with configuration data 6.3.1 Organizing your data 6.3.2 Using your configuration data 6.3.3 Storing your configuration data 6.3.4 Do not put cmdlets into your configuration data Summary 7 Working with SQL 7.1 Setting your schema 7.1.1 Data types 7.2 Connecting to SQL 7.2.1 Permissions 7.3 Adding data to a table 7.3.1 String validation 7.3.2 Inserting data to a table 7.4 Getting data from a table 7.4.1 SQL where clause 7.5 Updating records 7.5.1 Passing pipeline data 7.6 Keeping data in sync 7.6.1 Getting server data 7.7 Setting a solid foundation Summary 8 Cloud-based automation 8.1 Chapter resources 8.2 Setting up Azure Automation 8.2.1 Azure Automation 8.2.2 Log Analytics 8.2.3 Creating Azure resources 8.2.4 Authentication from Automation runbooks 8.2.5 Resource keys 8.3 Creating a hybrid runbook worker 8.3.1 PowerShell modules on hybrid runbook workers 8.4 Creating a PowerShell runbook 8.4.1 Automation assets 8.4.2 Runbook Editor 8.4.3 Runbook output 8.4.4 Interactive Cmdlets 8.5 Security considerations Summary 9 Working outside of PowerShell 9.1 Using COM objects and .NET Framework 9.1.1 Importing Word objects 9.1.2 Creating a Word document 9.1.3 Writing to a Word document 9.1.4 Adding tables to a Word document 9.2 Building tables from a PowerShell object 9.2.1 Converting PowerShell objects to tables 9.2.2 Converting PowerShell arrays to tables 9.3 Getting web data 9.3.1 API keys 9.4 Using external applications 9.4.1 Calling an external executable 9.4.2 Monitoring execution 9.4.3 Getting the output 9.4.4 Creating Start-Process wrapper function 9.5 Putting it all together Summary 10 Automation coding best practices 10.1 Defining the full automation 10.1.1 Structuring your automation 10.2 Converting a manual task to an automated one 10.3 Updating structured data 10.4 Using external tools 10.4.1 Finding installed applications 10.4.2 Call operators 10.5 Defining parameters 10.6 Making resumable automations 10.6.1 Determining code logic and functions 10.7 Waiting for automations 10.8 Think of the next person 10.8.1 Do not overcomplicate it 10.8.2 Comment, comment, comment 10.8.3 Include help and examples on all scripts and functions 10.8.4 Have a backup plan 10.9 Do not forget about the presentation Summary Part 3. 11 End-user scripts and forms 11.1 Script frontends 11.1.1 SharePoint trial tenant 11.2 Creating a request form 11.2.1 Gathering data 11.2.2 Creating a SharePoint form 11.3 Processing requests 11.3.1 Permissions 11.3.2 Monitoring for new requests 11.3.3 Processing the request 11.4 Running PowerShell script on end-user devices 11.4.1 Custom Git install 11.4.2 Running as system versus the user 11.4.3 Using Active Setup with PowerShell Summary 12 Sharing scripts among a team 12.1 Sharing a script 12.1.1 Creating a gist 12.1.2 Editing a gist 12.1.3 Sharing a gist 12.1.4 Executing a gist 12.2 Creating a shared module 12.2.1 Uploading the module to a GitHub repository 12.2.2 Giving access to the shared module 12.2.3 Installing the shared module 12.3 Updating a shared module 12.3.1 Make the module self-update 12.3.2 Creating a pull request 12.3.3 Testing the self-update Summary 13 Testing your scripts 13.1 Introduction to Pester 13.2 Unit testing 13.2.1 BeforeAll 13.2.2 Creating tests 13.2.3 Mocks 13.3 Advanced unit testing 13.3.1 Web scraping 13.3.2 Testing your results 13.3.3 Mocking with parameters 13.3.4 Unit vs. integration tests 13.4 Integration testing 13.4.1 Integration testing with external data 13.5 Invoking Pester tests Summary 14 Maintaining your code 14.1 Revisiting old code 14.1.1 Test before changing 14.1.2 Updating the function 14.1.3 Post update test 14.2 Automating your testing 14.2.1 Creating a GitHub workflow 14.3 Avoiding breaking changes 14.3.1 Parameter changes 14.3.2 Output changes Summary Appendix. Development environment set up A.1 Development machine A.1.1 Clone the book repository A.2 Automation Server A.2.1 Set up Jenkins A.3 Linux environment index
Donate to keep this site alive
How to download source code?
1. Go to: https://www.oreilly.com/
2. Search the book title: Practical Linux System Administration: A Guide to Installation, Configuration, and Management
, sometime you may not get the results, please search the main title
3. Click the book title in the search results
3. Publisher resources
section, click Download Example Code
.
1. Disable the AdBlock plugin. Otherwise, you may not get any links.
2. Solve the CAPTCHA.
3. Click download link.
4. Lead to download server to download.