Ansible: Up and Running

Automating Configuration Management and Deployment the Easy Way

Ansible: Up and Running

Among the many configuration management tools available, Ansible has some distinct advantages—it’s minimal in nature, you don’t need to install anything on your nodes, and it has an easy learning curve. With this updated second edition, you’ll learn how to be productive with this tool quickly, whether you’re a developer deploying code to production or a system administrator looking for a better automation solution. Authors Lorin Hochstein and René Moser show you how to write playbooks (Ansible’s configuration management scripts), manage remote servers, and explore the tool’s real power: built-in declarative modules. You’ll discover that Ansible has the functionality you need—and the simplicity you desire. Manage Windows machines, and automate network device configuration Manage your fleet from your web browser with Ansible Tower Understand how Ansible differs from other configuration management systems Use the YAML file format to write your own playbooks Work with a complete example to deploy a non-trivial application Deploy applications to Amazon EC2 and other cloud platforms Create Docker images and deploy Docker containers with Ansible This book is best read start to finish, with later chapters building on earlier ones. Because it’s written in a tutorial style, you can follow along on your own machine. Most examples focus on web applications.

The Art of Capacity Planning

Scaling Web Resources in the Cloud

The Art of Capacity Planning

In their early days, Twitter, Flickr, Etsy, and many other companies experienced sudden spikes in activity that took their web services down in minutes. Today, determining how much capacity you need for handling traffic surges is still a common frustration of operations engineers and software developers. This hands-on guide provides the knowledge and tools you need to measure, deploy, and manage your web application infrastructure before you experience explosive growth. In this thoroughly updated edition, authors Arun Kejariwal (MZ) and John Allspaw provide a systematic, robust, and practical approach to capacity planning—rather than theoretical models—based on their own experiences and those of many colleagues in the industry. They address the vast sea change in web operations, especially cloud computing. Understand issues that arise on heavily trafficked websites or mobile apps Explore how capacity fits into web/mobile app availability and performance Use tools for measuring and monitoring computer performance and usage Turn measurement data into robust forecasts and learn how trending fits into the planning process Examine related deployment concepts: installation, configuration, and management automation Learn how cloud autoscaling enables you to scale your app’s capacity up or down

Security Automation with Ansible 2

Leverage Ansible 2 to automate complex security tasks like application security, network security, and malware analysis

Security Automation with Ansible 2

Automate security-related tasks in a structured, modular fashion using the best open source automation tool available About This Book Leverage the agentless, push-based power of Ansible 2 to automate security tasks Learn to write playbooks that apply security to any part of your system This recipe-based guide will teach you to use Ansible 2 for various use cases such as fraud detection, network security, governance, and more Who This Book Is For If you are a system administrator or a DevOps engineer with responsibility for finding loop holes in your system or application, then this book is for you. It's also useful for security consultants looking to automate their infrastructure's security model. What You Will Learn Use Ansible playbooks, roles, modules, and templating to build generic, testable playbooks Manage Linux and Windows hosts remotely in a repeatable and predictable manner See how to perform security patch management, and security hardening with scheduling and automation Set up AWS Lambda for a serverless automated defense Run continuous security scans against your hosts and automatically fix and harden the gaps Extend Ansible to write your custom modules and use them as part of your already existing security automation programs Perform automation security audit checks for applications using Ansible Manage secrets in Ansible using Ansible Vault In Detail Security automation is one of the most interesting skills to have nowadays. Ansible allows you to write automation procedures once and use them across your entire infrastructure. This book will teach you the best way to use Ansible for seemingly complex tasks by using the various building blocks available and creating solutions that are easy to teach others, store for later, perform version control on, and repeat. We'll start by covering various popular modules and writing simple playbooks to showcase those modules. You'll see how this can be applied over a variety of platforms and operating systems, whether they are Windows/Linux bare metal servers or containers on a cloud platform. Once the bare bones automation is in place, you'll learn how to leverage tools such as Ansible Tower or even Jenkins to create scheduled repeatable processes around security patching, security hardening, compliance reports, monitoring of systems, and so on. Moving on, you'll delve into useful security automation techniques and approaches, and learn how to extend Ansible for enhanced security. While on the way, we will tackle topics like how to manage secrets, how to manage all the playbooks that we will create and how to enable collaboration using Ansible Galaxy. In the final stretch, we'll tackle how to extend the modules of Ansible for our use, and do all the previous tasks in a programmatic manner to get even more powerful automation frameworks and rigs. Style and approach This comprehensive guide will teach you to manage Linux and Windows hosts remotely in a repeatable and predictable manner. The book takes an in-depth approach and helps you understand how to set up complicated stacks of software with codified and easy-to-share best practices.

Containerization with Ansible 2

Implement container management, deployment, and orchestration within the Ansible ecosystem

Containerization with Ansible 2

Automate the container lifecycle from image build through cloud deployment using the automation language you already know. About This Book Use Ansible Container as an integral part of your workflow to increase flexibility and portability. Manage the container life cycle using existing Ansible roles and automate the entire container build, deployment and management process. A step-by-step guide that will get you up and running from building a simple container image to deploying a complex, multi-container app in the cloud. Who This Book Is For This book is aimed at DevOps engineers, administrators and developers who already have some familiarity with writing and running Ansible playbooks, and want to learn how to use Ansible to implement containerization. What You Will Learn Increase your productivity by using Ansible roles to define and build images Learn how to work with Ansible Container to manage, test, and deploy your containerized applications. Increase the flexibility and portability of your applications by learning to use Ansible Discover how you can apply your existing Ansible roles to the image build process Get you up and running from building a simple container image to deploying a complex, multi-container app in the cloud. Take an indepth look at the architecture of Ansible Container, and learn how to build re-usable container images, reliably and efficiently. In Detail Today many organizations are adopting containerization and DevOps methodologies to improve the flexibility and reliability of deploying new applications. Building custom application containers often means leveraging brittle and oftentimes complex Dockerfiles that can lead to cumbersome, multi-layered containers. Ansible Container brings a new workflow for managing the development of containers from development all the way through to production. The goal of this book is to get you up and running with Ansible Container so that you can create container images from Ansible roles, run containers locally, and deploy them to the cloud. We'll progress from a simple, single container application, to a complex application consisting of multiple, connected containers. You'll learn how to run the application locally, how to deploy it to an OpenShift cluster running locally, and how to deploy it to a Kubernetes cluster running in the cloud. Along the way, you'll see how to use roles to define each image or micro-service, and how to share your completed project with the Ansible community. Next, you will be able to take full advantage of Ansible Container, and use it to automate the container lifecycle in your own projects. By the end of this book,you will gain mastery of the Ansible Container platform by building complex multi-container projects ready for deployment into production. Style and approach This book will walk you through Ansible Containerization from building a simple container image to deploying a complex, multi-container app in the cloud. You will get an in-depth understanding of how to effectively manage containers using Ansible 2.

DevOps Automation Cookbook

DevOps Automation Cookbook

Over 120 recipes covering key automation techniques through code management and virtualization offered by modern Infrastructure as a Service About This Book Use some of the powerful tools that have emerged to enable systems administrators and developers to take control and automate the management, monitoring, and creation of complex infrastructures Covers some of the most exciting technologies available to DevOps engineers, and demonstrates multiple techniques for using them A hands-on guide filled with clear examples and multiple methodologies to demonstrate the various DevOps tools available Who This Book Is For If you are a systems administrator or developer who is keen to employ DevOps techniques to help with the day-to-day complications of managing complex infrastructures, then this book is for you. No prior knowledge of DevOps tools is required. What You Will Learn Manage, use, and work with code in the Git version management system Manage the life cycle of hosts, from creation to on-going management, using Puppet Razor Create hosts automatically using a simple combination of TFTP, DHCP, and pre-seeds Implement virtual hosts using the ubiquitous VMware ESXi hypervisor Control configuration using the powerful and popular Ansible configuration management system Develop powerful, consistent, and portable containers using Docker Track trends, discover data, and monitor key systems using InfluxDB, syslog, and Sensu Deal efficiently with powerful cloud infrastructures using the Amazon AWS Infrastructure as a Service and the Heroku Platform as a Service In Detail There has been a recent explosion in tools that allow you to redefine the delivery of infrastructure and applications, using a combination of automation and testing to deliver continuous deployment. DevOps has garnered interest from every quarter, and is rapidly being recognized as a radical shift, as large as the Agile movement for the delivery of software. This book takes a collection of some of the coolest software available today and shows you how to use it to create impressive changes to the way you deliver applications and software. It tackles the plethora of tools that are now available to enable organizations to take advantage of the automation, monitoring, and configuration management techniques that define a DevOps-driven infrastructure. Starting off with the fundamental command-line tools that every DevOps enthusiast must know, this book will guide you through the implementation of the Ansible tool to help you facilitate automation and perform diverse tasks. You will explore how to build hosts automatically with the creation of Apt mirrors and interactive pre-seeds, which are of the utmost importance for Ubuntu automation. You will also delve into the concept of virtualization and creating and manipulating guests with ESXi. Following this, you will venture into the application of Docker; learn how to install, run, network, and restore Docker containers; and also learn how to build containers in Jenkins and deploy apps using a combination of Ansible, Docker, and Jenkins. You will also discover how to filter data with Grafana and the usage of InfluxDB along with unconventional log management. Finally, you will get acquainted with cloud infrastructure, employing the Heroku and Amazon AWS platforms. By tackling real-world issues, this book will guide you through a huge variety of tools, giving new users the ability to get up and running and offering advanced users some interesting recipes that may help with existing issues. Style and approach This book has an easy-to-follow approach to both introducing the wide range of available DevOps tools and working with them. Each recipe is lavishly sprinkled with example code and uses clear instructions to easily allow you to see how you can both implement the solutions, and more importantly, tailor them to your unique needs.

Zabbix: Enterprise Network Monitoring Made Easy

Zabbix: Enterprise Network Monitoring Made Easy

Learn how to gather detailed statistics and data with this one-stop, comprehensive course along with hands-on recipes to get your infrastructure up and running with Zabbix. About This Book Monitor your network and deploy impressive business solutions with Zabbix Get practical recipes to automate your Zabbix infrastructure and create impressive graphs Integrate, customize, and extend your monitoring solutions with external components and software. Who This Book Is For This course is for System Administrators who have been managing and monitoring infrastructure. You do not need any knowledge about Zabbix. What You Will Learn Efficiently collect data from a large variety of monitoring objects Organize your data in graphs, charts, maps, and slide shows Write your own custom probes and monitoring scripts to extend Zabbix Configure Zabbix and its database to be high available and fault-tolerant Automate repetitive procedures using Zabbix's API FInd out how to monitor SNMP devices Manage hosts, users, and permissions while acting upon monitored conditions Set up your Zabbix infrastructure efficiently Customize the Zabbix interface to suit your system needs Monitor your VMware infrastructure in a quick and easy way with Zabbix In Detail Nowadays, monitoring systems play a crucial role in any IT environment. They are extensively used to not only measure your system's performance, but also to forecast capacity issues. This is where Zabbix, one of the most popular monitoring solutions for networks and applications, comes into the picture. With an efficient monitoring system in place, you'll be able to foresee when your infrastructure runs under capacity and react accordingly. Due to the critical role a monitoring system plays, it is fundamental to implement it in the best way from its initial setup. This avoids misleading, confusing, or, even worse, false alarms that can disrupt an efficient and healthy IT department. This course is for administrators who are looking for an end-to-end monitoring solution. It will get you accustomed with the powerful monitoring solution, starting with installation and explaining the fundamentals of Zabbix. Moving on, we explore the complex functionalities of Zabbix in the form of enticing recipes. These recipes will help you to gain control of your infrastructure. You will be able to organize your data in the form of graphs and charts along with building intelligent triggers for monitoring your network proactively. Toward the end, you will gain expertise in monitoring your networks and applications using Zabbix. This Learning Path combines some of the best that Packt has to offer in one complete, curated package. It includes content from the following Packt products: Zabbix Network Monitoring-Second Edition Zabbix Cookbook Mastering Zabbix-Second Edition Style and approach This course is a compact practical guide that starts from the fundamentals of Zabbix and takes you all the way to building a monitoring solution that gathers data from a large variety of systems. Along the way, we will discuss the low-level operational details that should benefit you even if you have used Zabbix for a while. It also follows a step-by-step approach that is easy to follow, full of engaging examples, and will help you apply the theory to practice.

Mastering Ubuntu Server

Master the art of deploying, configuring, managing, and troubleshooting Ubuntu Server 18.04, 2nd Edition

Mastering Ubuntu Server

Get up-to-date with the finer points of Ubuntu Server using this comprehensive guide Key Features A practical easy-to-understand book that will teach you how to deploy, maintain and troubleshoot Ubuntu Server Get well-versed with newly-added features in Ubuntu 18.04. Learn to manage cutting-edge technologies such as virtualization, containers, Nextcloud and more Book Description Ubuntu Server has taken the data centers by storm. Whether you're deploying Ubuntu for a large-scale project or for a small office, it is a stable, customizable, and powerful Linux distribution that leads the way with innovative and cutting-edge features. For both simple and complex server deployments, Ubuntu's flexible nature can be easily adapted to meet to the needs of your organization. With this book as your guide, you will learn all about Ubuntu Server, from initial deployment to creating production-ready resources for your network. The book begins with the concept of user management, group management, and filesystem permissions. Continuing into managing storage volumes, you will learn how to format storage devices, utilize logical volume management, and monitor disk usage. Later, you will learn how to virtualize hosts and applications, which will cover setting up KVM/QEMU, as well as containerization with both Docker and LXD. As the book continues, you will learn how to automate configuration with Ansible, as well as take a look at writing scripts. Lastly, you will explore best practices and troubleshooting techniques when working with Ubuntu Server that are applicable to real-world scenarios. By the end of the book, you will be an expert Ubuntu Server administrator who is well-versed in its advanced concepts. What you will learn Manage users, groups, and permissions Encrypt and decrypt disks with Linux Unified Key Setup (LUKS) Set up SSH for remote access, and connect it to other nodes Add, remove, and search for packages Use NFS and Samba to share directories with other users Get to know techniques for managing Apache and MariaDB Explore best practices and troubleshooting techniques Get familiar with scripting Automate server deployments with Ansible Who this book is for This book is intended for readers with intermediate or advanced-beginner skills with Linux, who would like to learn all about setting up servers with Ubuntu Server. This book assumes that the reader knows the basics of Linux, such as editing configuration files and running basic commands.

Kubernetes Operators

Automating the Container Orchestration Platform

Kubernetes Operators

Operators are a way of packaging, deploying, and managing Kubernetes applications. A Kubernetes application doesn’t just run on Kubernetes; it’s composed and managed in Kubernetes terms. Operators add application-specific operational knowledge to a Kubernetes cluster, making it easier to automate complex, stateful applications and to augment the platform. Operators can coordinate application upgrades seamlessly, react to failures automatically, and streamline repetitive maintenance like backups. Think of Operators as site reliability engineers in software. They work by extending the Kubernetes control plane and API, helping systems integrators, cluster administrators, and application developers reliably deploy and manage key services and components. Using real-world examples, authors Jason Dobies and Joshua Wood demonstrate how to use Operators today and how to create Operators for your applications with the Operator Framework and SDK. Learn how to establish a Kubernetes cluster and deploy an Operator Examine a range of Operators from usage to implementation Explore the three pillars of the Operator Framework: the Operator SDK, the Operator Lifecycle Manager, and Operator Metering Build Operators from the ground up using the Operator SDK Build, package, and run an Operator in development, testing, and production phases Learn how to distribute your Operator for installation on Kubernetes clusters

Learning DevOps: Continuously Deliver Better Software

Learning DevOps: Continuously Deliver Better Software

Learn to use some of the most exciting and powerful tools to deliver world-class quality software with continuous delivery and DevOps About This Book Get to know the background of DevOps so you understand the collaboration between different aspects of an IT organization and a software developer Deploy top-quality software and ensure software maintenance and release management with this practical guide This course covers some of the most exciting technology available to DevOps engineers, and demonstrates multiple techniques for using them Real-world and realistic examples are provided to help you as you go about the implementation and adoption of continuous delivery and DevOps Who This Book Is For This course is for developers who want to understand how the infrastructure that builds today's enterprises works, and how to painlessly and regularly ship quality software. What You Will Learn Set up and familiarize yourself with all the tools you need to be efficient with DevOps Design an application that is suitable for continuous deployment systems with DevOps in mind Test the code using automated regression testing with Jenkins Selenium Managing the lifecycle of hosts, from creation to ongoing management using Puppet Razor Find out how to manage, use, and work with Code in the Git version management system See what traps, pitfalls, and hurdles to look out for as you implement continuous delivery and DevOps In Detail Harness the power of DevOps to boost your skill set and make your IT organization perform better. If you're keen to employ DevOps techniques to better your software development, this course contains all you need to overcome the day-to-day complications of managing complex infrastructures the DevOps way. Start with your first module – Practical DevOps - that encompasses the entire flow from code from testing to production. Get a solid ground-level knowledge of how to monitor code for any anomalies, perform code testing, and make sure the code is running smoothly through a series of real-world exercise, and develop practical skills by creating a sample enterprise Java application. In the second module, run through a series of tailored mini-tutorials designed to give you a complete understanding of every DevOps automation technique. Create real change in the way you deliver your projects by utilizing some of the most commendable software available today. Go from your first steps of managing code in Git to configuration management in Puppet, monitoring using Sensu, and more. In the final module, get to grips with the continuous delivery techniques that will help you reduce the time and effort that goes into the delivery and support of software. This Learning Path combines some of the best that Packt has to offer in one complete, curated package. It includes content from the following Packt products: Practical DevOps by Joakim Verona DevOps Automation Cookbook by Michael Duffy Continuous Delivery and DevOps : A Quickstart Guide - Second Edition by Paul Swartout Style and approach This course is an easy to follow project based guide for all those with a keen interest in deploying world-class software using some of the most effective and remarkable technologies available.

Effective DevOps with AWS

Implement continuous delivery and integration in the AWS environment, 2nd Edition

Effective DevOps with AWS

Scale and maintain outstanding performance in your AWS-based infrastructure using DevOps principles Key Features Implement continuous integration and continuous deployment pipelines on AWS Gain insight from an expert who has worked with Silicon Valley's most high-profile companies Implement DevOps principles to take full advantage of the AWS stack and services Book Description The DevOps movement has transformed the way modern tech companies work. Amazon Web Services (AWS), which has been at the forefront of the cloud computing revolution, has also been a key contributor to the DevOps movement, creating a huge range of managed services that help you implement DevOps principles. Effective DevOps with AWS, Second Edition will help you to understand how the most successful tech start-ups launch and scale their services on AWS, and will teach you how you can do the same. This book explains how to treat infrastructure as code, meaning you can bring resources online and offline as easily as you control your software. You will also build a continuous integration and continuous deployment pipeline to keep your app up to date. Once you have gotten to grips will all this, we'll move on to how to scale your applications to offer maximum performance to users even when traffic spikes, by using the latest technologies, such as containers. In addition to this, you'll get insights into monitoring and alerting, so you can make sure your users have the best experience when using your service. In the concluding chapters, we'll cover inbuilt AWS tools such as CodeDeploy and CloudFormation, which are used by many AWS administrators to perform DevOps. By the end of this book, you'll have learned how to ensure the security of your platform and data, using the latest and most prominent AWS tools. What you will learn Implement automatic AWS instance provisioning using CloudFormation Deploy your application on a provisioned infrastructure with Ansible Manage infrastructure using Terraform Build and deploy a CI/CD pipeline with Automated Testing on AWS Understand the container journey for a CI/CD pipeline using AWS ECS Monitor and secure your AWS environment Who this book is for Effective DevOps with AWS is for you if you are a developer, DevOps engineer, or you work in a team which wants to build and use AWS for software infrastructure. Basic computer science knowledge is required to get the most out of this book.