{"id":7642,"date":"2024-05-31T17:51:36","date_gmt":"2024-06-01T00:51:36","guid":{"rendered":"https:\/\/ioflood.com\/blog\/?p=7642"},"modified":"2024-05-31T17:51:36","modified_gmt":"2024-06-01T00:51:36","slug":"install-etcd-linux","status":"publish","type":"post","link":"https:\/\/ioflood.com\/blog\/install-etcd-linux\/","title":{"rendered":"Etcd Quickstart Guide | Installation and Usage on Linux"},"content":{"rendered":"<div class=\"wp-block-image\">\n<figure class=\"alignright size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/ioflood.com\/blog\/wp-content\/uploads\/2024\/05\/Depiction-of-engineers-setting-up-etcd-on-Linux-in-an-IOFLOOD-datacenter-to-optimize-distributed-systems-300x300.jpg\" alt=\"Depiction of engineers setting up etcd on Linux in an IOFLOOD datacenter to optimize distributed systems\" width=\"300\" height=\"300\" title=\"\"><\/figure>\n<\/div>\n<p>Enhancing system reliability and fault tolerance on Linux servers at <a class=\"wp-editor-md-post-content-link\" href=\"https:\/\/ioflood.com\/\">IOFLOOD<\/a> is important to maintain the infrastructure of our customer&#8217;s <a class=\"wp-editor-md-post-content-link\" href=\"https:\/\/ioflood.com\/bare-metal-cloud-server.php\">dedicated servers<\/a>. While working to improve our systems, we have found that installing etcd alleviates the process of managing shared configuration data and coordinating distributed applications. This article aims to share our tips and processes so that others may implement a resilient and highly available distributed key-value store.<\/p>\n<p><strong>In this guide, we will navigate the process of installing <code>etcd<\/code> on your Linux system.<\/strong> We are going to provide you with installation instructions for Debian, Ubuntu, CentOS, and AlmaLinux, delve into how to compile <code>etcd<\/code> from the source, and install a specific version. Finally, we will show you how to use the <code>etcd<\/code> command and ascertain that the correctly installed version is in use.<\/p>\n<p>Let&#8217;s get started with the step-by-step etcd installation on your Linux system!<\/p>\n<h2>TL;DR: How Do I Install etcd on Linux?<\/h2>\n<blockquote><p>\n  You can install <code>etcd<\/code> on Linux by downloading the latest release from GitHub. You can extract the downloaded file using the command <code>tar -xvf etcd-vX.Y.Z-linux-amd64.tar.gz<\/code>. After extraction, move the <code>etcd<\/code> and <code>etcdctl<\/code> binaries to <code>\/usr\/local\/bin<\/code> using the command <code>sudo mv etcd etcdctl \/usr\/local\/bin\/<\/code>.\n<\/p><\/blockquote>\n<pre><code class=\"language-bash line-numbers\"># Download the latest release\nwget https:\/\/github.com\/etcd-io\/etcd\/releases\/download\/v3.5.0\/etcd-v3.5.0-linux-amd64.tar.gz\n\n# Extract the tarball\ntar -xvf etcd-v3.5.0-linux-amd64.tar.gz\n\n# Move the binaries\nsudo mv etcd-v3.5.0-linux-amd64\/etcd* \/usr\/local\/bin\/\n\n# Verify the installation\netcd --version\n\n# Output:\netcd Version: 3.5.0\nGit SHA: Not provided (use .\/build instead)\nGo Version: go1.16.3\nGo OS\/Arch: linux\/amd64\n<\/code><\/pre>\n<p>This is a basic way to install <code>etcd<\/code> on Linux, but there&#8217;s much more to learn about installing and using <code>etcd<\/code>. Continue reading for more detailed information and advanced usage scenarios.<\/p>\n<h2>How to Install etcd on Linux<\/h2>\n<p>Etcd is a distributed key-value store that provides a reliable way to store data across a cluster of machines. It\u2019s primarily used in distributed systems to hold and manage configuration details and service discovery. It is a core component in Kubernetes for storing and replicating all cluster data.<\/p>\n<p>Now, let&#8217;s get into how to install etcd on Linux using different package managers.<\/p>\n<h3>Installing etcd using APT<\/h3>\n<p>For Debian-based systems like Ubuntu, we use the Advanced Packaging Tool (APT) to install etcd. Here&#8217;s a step-by-step guide:<\/p>\n<pre><code class=\"language-bash line-numbers\"># Update your system\nsudo apt-get update\n\n# Install etcd\nsudo apt-get install etcd-server\n\n# Verify the installation\netcd --version\n\n# Output:\netcd Version: 3.2.26\nGit SHA: 8cb03b6\nGo Version: go1.10.4\nGo OS\/Arch: linux\/amd64\n<\/code><\/pre>\n<p>This will install etcd on your Linux system and you can verify its installation by checking the version.<\/p>\n<h3>Installing etcd using YUM<\/h3>\n<p>For RHEL-based systems like CentOS or AlmaLinux, we use the Yellowdog Updater, Modified (YUM) to install etcd. Here&#8217;s a step-by-step guide:<\/p>\n<pre><code class=\"language-bash line-numbers\"># Update your system\nsudo yum update\n\n# Install etcd\nsudo yum install etcd\n\n# Verify the installation\netcd --version\n\n# Output:\netcd Version: 3.3.11\nGit SHA: 2fb27896e\nGo Version: go1.10.3\nGo OS\/Arch: linux\/amd64\n<\/code><\/pre>\n<p>This will install etcd on your Linux system and you can verify its installation by checking the version. Remember, the version might differ based on the repository of your Linux distribution.<\/p>\n<h3>Installing etcd using DNF<\/h3>\n<p>For Fedora-based systems, we use the Dandified YUM (DNF) to install etcd. Here&#8217;s a step-by-step guide:<\/p>\n<pre><code class=\"language-bash line-numbers\"># Update your system\nsudo dnf update\n\n# Install etcd\nsudo dnf install etcd\n\n# Verify the installation\netcd --version\n\n# Output:\netcd Version: 3.3.10\nGit SHA: 27fc7e2\nGo Version: go1.11.2\nGo OS\/Arch: linux\/amd64\n<\/code><\/pre>\n<p>This will install etcd on your Linux system and you can verify its installation by checking the version. Remember, the version might differ based on the repository of your Linux distribution.<\/p>\n<h2>Installing etcd from Source Code<\/h2>\n<p>If you prefer to install etcd directly from its source code, you can do so by cloning the etcd repository and building it using Go. This method requires Go to be installed on your system.<\/p>\n<p>Here&#8217;s how you can do it:<\/p>\n<pre><code class=\"language-bash line-numbers\"># Install Go\nsudo apt install golang\n\n# Verify Go installation\ngo version\n\n# Output:\ngo version go1.16.3 linux\/amd64\n\n# Clone the etcd repository\ngit clone https:\/\/github.com\/etcd-io\/etcd.git\n\n# Switch to the etcd directory\ncd etcd\n\n# Build etcd\nmake\n\n# Verify the installation\nbin\/etcd --version\n\n# Output:\netcd Version: 3.5.0\nGit SHA: Not provided (use .\/build instead)\nGo Version: go1.16.3\nGo OS\/Arch: linux\/amd64\n<\/code><\/pre>\n<h2>Installing Different Versions of etcd<\/h2>\n<p>Different versions of etcd can be installed depending on your requirements. You might need to install a specific version due to software compatibility, feature availability, or stability reasons.<\/p>\n<h3>Installing Specific Versions from Source<\/h3>\n<p>You can checkout to a specific version of etcd using git and then build it. Here&#8217;s an example of how to install version 3.3.10:<\/p>\n<pre><code class=\"language-bash line-numbers\">cd etcd\n\ngit checkout v3.3.10\n\nmake\n\nbin\/etcd --version\n\n# Output:\netcd Version: 3.3.10\nGit SHA: 27fc7e2\nGo Version: go1.10.3\nGo OS\/Arch: linux\/amd64\n<\/code><\/pre>\n<h3>Installing Specific Versions using Package Managers<\/h3>\n<p>You can also install a specific version of etcd using package managers like apt and yum. However, the available versions might be limited based on the repository of your Linux distribution.<\/p>\n<h4>Using apt<\/h4>\n<pre><code class=\"language-bash line-numbers\">sudo apt install etcd-server=3.2.26\n\netcd --version\n\n# Output:\netcd Version: 3.2.26\nGit SHA: 8cb03b6\nGo Version: go1.10.4\nGo OS\/Arch: linux\/amd64\n<\/code><\/pre>\n<h4>Using yum<\/h4>\n<pre><code class=\"language-bash line-numbers\">sudo yum install etcd-3.3.11\n\netcd --version\n\n# Output:\netcd Version: 3.3.11\nGit SHA: 2fb27896e\nGo Version: go1.10.3\nGo OS\/Arch: linux\/amd64\n<\/code><\/pre>\n<h3>Version Comparison<\/h3>\n<p>Different versions of etcd come with their own set of features, improvements, and bug fixes. Here&#8217;s a brief comparison:<\/p>\n<table>\n<thead>\n<tr>\n<th>Version<\/th>\n<th>Key Features<\/th>\n<th>Go Version<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>3.2.26<\/td>\n<td>Stable, widely used<\/td>\n<td>go1.10.4<\/td>\n<\/tr>\n<tr>\n<td>3.3.11<\/td>\n<td>Improved performance, added features<\/td>\n<td>go1.10.3<\/td>\n<\/tr>\n<tr>\n<td>3.3.10<\/td>\n<td>Improved performance, added features<\/td>\n<td>go1.11.2<\/td>\n<\/tr>\n<tr>\n<td>3.5.0<\/td>\n<td>Latest, comes with the newest features and improvements<\/td>\n<td>go1.16.3<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Basic Usage of etcd<\/h2>\n<p>Once you&#8217;ve installed etcd, you can start using it. Here are some basic commands to get you started:<\/p>\n<h3>Using etcd<\/h3>\n<pre><code class=\"language-bash line-numbers\"># Start etcd\netcd\n\n# Output:\n2021-09-30 10:43:09.276629 I | etcdmain: etcd Version: 3.2.26\n2021-09-30 10:43:09.276663 I | etcdmain: Git SHA: 8cb03b6\n2021-09-30 10:43:09.276669 I | etcdmain: Go Version: go1.10.4\n2021-09-30 10:43:09.276674 I | etcdmain: Go OS\/Arch: linux\/amd64\n2021-09-30 10:43:09.276680 I | etcdmain: setting maximum number of CPUs to 4, total number of available CPUs is 4\n<\/code><\/pre>\n<p>This command starts etcd. You&#8217;ll see logs that indicate etcd is running.<\/p>\n<h3>Verifying the Installation<\/h3>\n<p>You can verify the installation of etcd by checking its version:<\/p>\n<pre><code class=\"language-bash line-numbers\">etcd --version\n\n# Output:\netcd Version: 3.2.26\nGit SHA: 8cb03b6\nGo Version: go1.10.4\nGo OS\/Arch: linux\/amd64\n<\/code><\/pre>\n<p>This command will display the installed version of etcd along with the Go version used to build it.<\/p>\n<h2>Installing etcd with Docker<\/h2>\n<p>Docker provides an alternative method to install etcd. It&#8217;s a platform that allows you to automate the deployment, scaling, and management of applications using containerization. Here&#8217;s how you can install etcd using Docker:<\/p>\n<pre><code class=\"language-bash line-numbers\"># Pull the latest etcd image\nsudo docker pull quay.io\/coreos\/etcd\n\n# Run an etcd container\nsudo docker run -d -p 2379:2379 -p 2380:2380 --name etcd quay.io\/coreos\/etcd\n\n# Verify the installation\nsudo docker exec etcd \/bin\/sh -c \"ETCDCTL_API=3 etcdctl version\"\n\n# Output:\netcdctl version: 3.5.0\nAPI version: 3.5\n<\/code><\/pre>\n<p>This will pull the latest etcd image from Docker Hub and run it in a new container. You can verify the installation by checking the version of etcd inside the container.<\/p>\n<h2>Installing etcd with Kubernetes<\/h2>\n<p>Kubernetes is an open-source platform for managing containerized applications. If you&#8217;re running a Kubernetes cluster, you can install etcd using a Kubernetes Deployment or a StatefulSet. Here&#8217;s an example of how to install etcd using a Kubernetes Deployment:<\/p>\n<pre><code class=\"language-bash line-numbers\"># Create a deployment.yaml file\n\ncat &lt;&lt;EOF &gt; deployment.yaml\napiVersion: apps\/v1\nkind: Deployment\nmetadata:\n  name: etcd\nspec:\n  replicas: 1\n  selector:\n    matchLabels:\n      app: etcd\n  template:\n    metadata:\n      labels:\n        app: etcd\n    spec:\n      containers:\n      - name: etcd\n        image: quay.io\/coreos\/etcd\n        ports:\n        - containerPort: 2379\nEOF\n\n# Create the Deployment\nkubectl apply -f deployment.yaml\n\n# Verify the Deployment\nkubectl get pods -l app=etcd\n\n# Output:\nNAME                    READY   STATUS    RESTARTS   AGE\netcd-7b8f6d49f7-qw4k7   1\/1     Running   0          1m\n<\/code><\/pre>\n<p>This will create a Kubernetes Deployment that runs an etcd container. You can verify the Deployment by checking the status of the pod.<\/p>\n<h2>Comparison of Installation Methods<\/h2>\n<p>Different methods of installing etcd have their own advantages and disadvantages. Here&#8217;s a brief comparison:<\/p>\n<table>\n<thead>\n<tr>\n<th>Method<\/th>\n<th>Advantages<\/th>\n<th>Disadvantages<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Package Manager<\/td>\n<td>Easy, quick, managed by the system<\/td>\n<td>Limited versions, not always up-to-date<\/td>\n<\/tr>\n<tr>\n<td>Source Code<\/td>\n<td>Latest version, more control<\/td>\n<td>Requires Go, more steps<\/td>\n<\/tr>\n<tr>\n<td>Docker<\/td>\n<td>Isolated, easy to manage and update<\/td>\n<td>Requires Docker, not as integrated with the system<\/td>\n<\/tr>\n<tr>\n<td>Kubernetes<\/td>\n<td>Scalable, managed by Kubernetes<\/td>\n<td>Requires Kubernetes, more complex<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Choose the method that best fits your needs and environment. If you&#8217;re just getting started with etcd, using a package manager might be the easiest option. If you need the latest version or more control, installing from source code might be better. If you&#8217;re using Docker or Kubernetes, installing etcd using these platforms could provide additional benefits.<\/p>\n<h2>Common etcd Install Issues<\/h2>\n<p>While installing etcd on Linux, you might encounter some common issues. Here, we discuss these issues and provide solutions to ensure a smooth installation process.<\/p>\n<h3>Issue: Unable to Locate Package<\/h3>\n<p>This error occurs when the package manager can&#8217;t find the etcd package in its repositories. Here&#8217;s an example of this error:<\/p>\n<pre><code class=\"language-bash line-numbers\">sudo apt install etcd-server\n\n# Output:\nReading package lists... Done\nBuilding dependency tree\nReading state information... Done\nE: Unable to locate package etcd-server\n<\/code><\/pre>\n<p><strong>Solution:<\/strong> Update your package manager&#8217;s repository and try again. If the issue persists, consider adding a repository that contains the etcd package.<\/p>\n<h3>Issue: Incorrect etcd Version<\/h3>\n<p>Sometimes, you might find that the installed version of etcd is not what you expected. This could be due to the package manager installing an outdated version, or you might have multiple versions of etcd installed.<\/p>\n<p><strong>Solution:<\/strong> Check the version of etcd using <code>etcd --version<\/code>. If it&#8217;s not the version you want, consider installing etcd from source or using Docker to get the specific version you need.<\/p>\n<h3>Issue: etcd Service Not Starting<\/h3>\n<p>After installing etcd, you might encounter issues with starting the etcd service. This could be due to various reasons, such as incorrect configuration or port conflicts.<\/p>\n<p><strong>Solution:<\/strong> Check the status of the etcd service using <code>systemctl status etcd<\/code>. Look at the logs to identify any issues. Ensure that the ports etcd uses (typically 2379 and 2380) are not being used by other services.<\/p>\n<h2>Considerations for Using etcd<\/h2>\n<p>When using etcd, there are several considerations to keep in mind:<\/p>\n<ol>\n<li><strong>Security:<\/strong> etcd stores sensitive data, so it&#8217;s crucial to secure your etcd installation. Consider using SSL\/TLS for client-server communication and peer-to-peer communication.<\/p>\n<\/li>\n<li>\n<p><strong>Backup:<\/strong> Regularly back up your etcd data to prevent data loss. You can use the <code>etcdctl snapshot save<\/code> command to create a snapshot of the etcd data.<\/p>\n<\/li>\n<li>\n<p><strong>Performance:<\/strong> Monitor the performance of etcd using metrics exposed by the etcd server. You can use tools like Prometheus and Grafana for this purpose.<\/p>\n<\/li>\n<li>\n<p><strong>Updates:<\/strong> Regularly update etcd to benefit from the latest features and security updates. However, ensure to test the updates in a non-production environment first.<\/p>\n<\/li>\n<\/ol>\n<h2>What are Distributed Key-Value Stores<\/h2>\n<p>Before diving deeper into the usage of etcd, it&#8217;s important to understand the concept of distributed key-value stores and their importance in system administration.<\/p>\n<p>A key-value store is a simple database that uses an associative array as the fundamental data model where each key is associated with one and only one value in a collection. This data structure is designed to store, retrieve, and manage associative arrays.<\/p>\n<pre><code class=\"language-bash line-numbers\"># Example of a key-value pair\n\nKey: 'Username'\nValue: 'admin'\n<\/code><\/pre>\n<p>In this example, &#8216;Username&#8217; is the key and &#8216;admin&#8217; is the value. This pair can be stored in a key-value store and retrieved using the key.<\/p>\n<p>A distributed key-value store extends this concept across multiple machines, ensuring that the data is always available even if a single machine fails. This is achieved through data replication and partitioning.<\/p>\n<pre><code class=\"language-bash line-numbers\"># Example of data replication in a distributed key-value store\n\nMachine 1:\nKey: 'Username'\nValue: 'admin'\n\nMachine 2:\nKey: 'Username'\nValue: 'admin'\n<\/code><\/pre>\n<p>In this example, the same key-value pair is stored on two different machines. If Machine 1 fails, the data can still be retrieved from Machine 2.<\/p>\n<h2>System Administration and etcd<\/h2>\n<p>Etcd plays a crucial role in system administration as a distributed key-value store. It is used to hold and manage configuration details and service discovery, making it an essential component in distributed systems.<\/p>\n<p>Etcd provides a reliable way to store data across a cluster of machines. This data is accessible to all nodes in the cluster, which makes etcd a great choice for implementing distributed systems coordination primitives like leader election, distributed locks, and distributed barriers.<\/p>\n<p>Etcd is also used by Kubernetes as a backing store for all cluster data. It&#8217;s the place where Kubernetes stores all its cluster state, including the configuration data of the cluster, the state of the system, and the metadata about the deployed applications.<\/p>\n<p>In conclusion, understanding the concept of distributed key-value stores and their implementation in etcd is crucial for effective system administration. This knowledge forms the basis for installing and using etcd on Linux, which we will explore in the following sections.<\/p>\n<h2>Practical Uses of Key-Value Stores<\/h2>\n<p>Distributed key-value stores like etcd are not just for system administration. They play a pivotal role in the architecture of large-scale applications. The ability to store, retrieve, and manage data across a cluster of machines makes them a powerful tool for maintaining consistency and high availability.<\/p>\n<h3>Data Replication and Consistency<\/h3>\n<p>One of the key advantages of distributed key-value stores is data replication. By storing the same data on multiple machines, they ensure that the data remains available even if one machine fails. This is crucial for large-scale applications that need to be up and running 24\/7.<\/p>\n<pre><code class=\"language-bash line-numbers\"># Example of data replication in a distributed key-value store\n\nMachine 1:\nKey: 'Username'\nValue: 'admin'\n\nMachine 2:\nKey: 'Username'\nValue: 'admin'\n<\/code><\/pre>\n<p>In this example, the same key-value pair is stored on two different machines. If Machine 1 fails, the data can still be retrieved from Machine 2.<\/p>\n<p>However, data replication also raises the issue of consistency. If the data is updated on one machine, it needs to be updated on all the other machines as well. This is where etcd shines. It uses the Raft consensus algorithm to ensure that the data remains consistent across all machines.<\/p>\n<h3>Exploring Related Concepts<\/h3>\n<p>If you&#8217;re interested in learning more about distributed systems and key-value stores, you might want to explore related concepts like data partitioning, consensus algorithms, and distributed transactions. These concepts provide a deeper understanding of how distributed systems work and how they maintain consistency and availability.<\/p>\n<h3>Further Resources for Mastering etcd<\/h3>\n<p>There are many resources available online to learn more about etcd and distributed key-value stores. Here are a few recommendations:<\/p>\n<ol>\n<li><a class=\"wp-editor-md-post-content-link\" href=\"https:\/\/github.com\/etcd-io\/etcd\" target=\"_blank\" rel=\"noopener\">CoreOS etcd GitHub Repository<\/a>: The official GitHub repository of etcd where you can find the source code, issues, and discussions related to etcd.<\/p>\n<\/li>\n<li>\n<p><a class=\"wp-editor-md-post-content-link\" href=\"https:\/\/etcd.io\/docs\/\" target=\"_blank\" rel=\"noopener\">etcd Documentation<\/a>: The official documentation of etcd provides a comprehensive guide on how to install, use, and troubleshoot etcd.<\/p>\n<\/li>\n<li>\n<p><a class=\"wp-editor-md-post-content-link\" href=\"http:\/\/book.mixu.net\/distsys\/\" target=\"_blank\" rel=\"noopener\">Distributed systems for fun and profit<\/a>: This book provides a great introduction to distributed systems, including key-value stores and consensus algorithms.<\/p>\n<\/li>\n<\/ol>\n<h2>Recap: etcd Linux Quickstart<\/h2>\n<p>In this comprehensive guide, we&#8217;ve explored the ins and outs of installing and using etcd, a distributed key-value store, on Linux systems. We&#8217;ve delved deep into the world of distributed key-value stores, discussing the role of etcd in system administration and its importance in large-scale applications.<\/p>\n<p>We began with the basics, guiding you through the process of installing etcd on Linux using a package manager. We then ventured into more advanced territory, demonstrating how to install etcd from source code, and how to install specific versions of etcd. We also discussed how to use etcd, providing you with basic commands to get started.<\/p>\n<p>Moving further, we explored alternative approaches to installing etcd, such as using Docker and Kubernetes. We also discussed common issues you might encounter when installing and using etcd and provided solutions to help you overcome these challenges.<\/p>\n<p>Here&#8217;s a quick comparison of the installation methods we&#8217;ve discussed:<\/p>\n<table>\n<thead>\n<tr>\n<th>Method<\/th>\n<th>Advantages<\/th>\n<th>Disadvantages<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Package Manager<\/td>\n<td>Easy, quick, managed by the system<\/td>\n<td>Limited versions, not always up-to-date<\/td>\n<\/tr>\n<tr>\n<td>Source Code<\/td>\n<td>Latest version, more control<\/td>\n<td>Requires Go, more steps<\/td>\n<\/tr>\n<tr>\n<td>Docker<\/td>\n<td>Isolated, easy to manage and update<\/td>\n<td>Requires Docker, not as integrated with the system<\/td>\n<\/tr>\n<tr>\n<td>Kubernetes<\/td>\n<td>Scalable, managed by Kubernetes<\/td>\n<td>Requires Kubernetes, more complex<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Whether you&#8217;re just starting out with etcd or you&#8217;re looking to level up your system administration skills, we hope this guide has given you a deeper understanding of etcd and its capabilities.<\/p>\n<p>With its efficient management of key-value pairs and its crucial role in distributed systems, etcd is a powerful tool for system administration. Now, you&#8217;re well equipped to install and use etcd on Linux. Happy coding!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Enhancing system reliability and fault tolerance on Linux servers at IOFLOOD is important to maintain the infrastructure of our customer&#8217;s dedicated servers. While working to improve our systems, we have found that installing etcd alleviates the process of managing shared configuration data and coordinating distributed applications. This article aims to share our tips and processes [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":20808,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-7642","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux","cat-3-id","has_thumb"],"_links":{"self":[{"href":"https:\/\/ioflood.com\/blog\/wp-json\/wp\/v2\/posts\/7642","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ioflood.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ioflood.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ioflood.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ioflood.com\/blog\/wp-json\/wp\/v2\/comments?post=7642"}],"version-history":[{"count":11,"href":"https:\/\/ioflood.com\/blog\/wp-json\/wp\/v2\/posts\/7642\/revisions"}],"predecessor-version":[{"id":20699,"href":"https:\/\/ioflood.com\/blog\/wp-json\/wp\/v2\/posts\/7642\/revisions\/20699"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ioflood.com\/blog\/wp-json\/wp\/v2\/media\/20808"}],"wp:attachment":[{"href":"https:\/\/ioflood.com\/blog\/wp-json\/wp\/v2\/media?parent=7642"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ioflood.com\/blog\/wp-json\/wp\/v2\/categories?post=7642"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ioflood.com\/blog\/wp-json\/wp\/v2\/tags?post=7642"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}