{"id":8142,"date":"2021-10-05T17:10:36","date_gmt":"2021-10-05T11:40:36","guid":{"rendered":"https:\/\/opstree.com\/blog\/\/?p=8142"},"modified":"2021-10-12T16:49:35","modified_gmt":"2021-10-12T11:19:35","slug":"percona-postgresql-through-awsesomeosm-ansible-role","status":"publish","type":"post","link":"https:\/\/opstree.com\/blog\/2021\/10\/05\/percona-postgresql-through-awsesomeosm-ansible-role\/","title":{"rendered":"Setup Percona Postgresql Through the Awsesome(OSM) Ansible Role"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"909\" height=\"237\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2021\/09\/image-3.png?w=909\" alt=\"\" class=\"wp-image-8186\" \/><\/figure>\n\n\n\n<p>Percona is known for its software solutions for most Databases. It gives a single solution with the best and most critical enterprise components from the open-source community. <\/p>\n\n\n\n<p>In terms of monitoring, it provides <strong>Percona Monitoring and Management<\/strong> (PMM) tool which is a best-of-breed monitoring solution. It helps you reduce complexity, optimise performance, and improve the security of your business-critical database environments.<\/p>\n\n\n\n<p class=\"has-text-align-justify\">Percona is a well-known solution for MySQL databases, including monitoring and performance tools that help manage and gain insight into open source database environments. It also provides an XtraBackup tool for MySQL which ease the problem of incremental backup of DB efficiently.<\/p>\n\n\n\n<!--more-->\n\n\n\n<h4 class=\"wp-block-heading\">Percona for PostgreSQL<\/h4>\n\n\n\n<p class=\"has-text-align-justify\">For PostgreSQL, it gives the best and most critical enterprise components in a single distribution by providing the extensions to solve essential practical tasks efficiently.  A few of them are listed below:<\/p>\n\n\n\n<ul><li><a rel=\"noreferrer noopener\" href=\"https:\/\/www.pgaudit.org\/\" target=\"_blank\">pgAudit<\/a> provides detailed session or object audit logging via the standard PostgreSQL logging facility<\/li><li><a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/pgaudit\/set_user\" target=\"_blank\">pgAudit set_user<\/a> &#8211; The <code>set_user<\/code> part of <code>pgAudit<\/code> extension provides an additional layer of logging and control when unprivileged users must escalate themselves to superuser or object owner roles in order to perform needed maintenance tasks.<\/li><li><a rel=\"noreferrer noopener\" href=\"https:\/\/pgbackrest.org\/\" target=\"_blank\">pgBackRest<\/a> is a backup and restore solution for PostgreSQL<\/li><li><a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/percona\/pg_stat_monitor\" target=\"_blank\">pg_stat_monitor<\/a> collects and aggregates statistics for PostgreSQL and provides histogram information.<\/li><\/ul>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Percona PostgreSQL with OSM Ansible role<\/strong><\/h3>\n\n\n\n<p>Our <a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/OT-OSM\/Percona-PostgreSQL\" target=\"_blank\">OT-OSM Ansible role <\/a>will automate the installation and configuration of PostgreSQL DB on Ubuntu 18 and above.<br>Running this role will perform the following tasks on Ansible hosts:<\/p>\n\n\n\n<ul><li>Install PostgreSQL with Percona support for version 11 or above<\/li><li>Cluster Configuration for PostgreSQL on machines<\/li><li>Create User\/Database with custom privileges provided by the user<\/li><li>Add extension tools supported by Percona<\/li><\/ul>\n\n\n\n<h5 class=\"wp-block-heading\"><strong>Points to note before running role on target machines<\/strong><\/h5>\n\n\n\n<p><strong>Variables<\/strong><\/p>\n\n\n\n<p>Role has defined variables at <strong>default<\/strong> or <strong>vars<\/strong> location to externalise some configuration and make role more reusable. <br>At <strong><code>default<\/code><\/strong><\/p>\n\n\n\n<ul id=\"block-cdadfa5d-283b-4e7f-bb2c-7a47ee162d99\"><li>PostgreSQL configuration<br> Variables used for PostgreSQL connection settings and version<\/li><\/ul>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"268\" height=\"99\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2021\/09\/image-26.png?w=268\" alt=\"\" class=\"wp-image-8430\" \/><\/figure><\/div>\n\n\n\n<ul id=\"block-cdadfa5d-283b-4e7f-bb2c-7a47ee162d99\"><li>Database creation configuration<br>Variables used to create DB with a set of options used in PostgreSQL like <strong>Collate<\/strong>, <strong>Ctype<\/strong>, <strong>max_concurrent_connection<\/strong> etc.<\/li><\/ul>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"329\" height=\"327\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2021\/09\/image-27.png?w=329\" alt=\"\" class=\"wp-image-8432\" \/><\/figure><\/div>\n\n\n\n<ul id=\"block-cdadfa5d-283b-4e7f-bb2c-7a47ee162d99\"><li>User creation configuration<br>Variables used to create users in  PostgreSQL.<\/li><\/ul>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"314\" height=\"262\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2021\/09\/image-28.png?w=314\" alt=\"\" class=\"wp-image-8434\" \/><\/figure><\/div>\n\n\n\n<ul id=\"block-cdadfa5d-283b-4e7f-bb2c-7a47ee162d99\"><li>Replication configuration<br>Variables used to configure replication in DB<\/li><\/ul>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"219\" height=\"87\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2021\/09\/image-29.png?w=219\" alt=\"\" class=\"wp-image-8445\" \/><\/figure><\/div>\n\n\n\n<p>At <strong><code>vars<\/code><\/strong><\/p>\n\n\n\n<ul><li>PostgreSQL extension details<br>Variables used to define a list of Percona extensions for PostgreSQL<\/li><\/ul>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"328\" height=\"111\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2021\/09\/image-30.png?w=328\" alt=\"\" class=\"wp-image-8448\" \/><\/figure><\/div>\n\n\n\n<h5 class=\"wp-block-heading\"><strong>Usages<\/strong><\/h5>\n\n\n\n<p>There are multiple ways of executing the role according to the requirement <\/p>\n\n\n\n<ul><li>To run complete role<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-verse has-white-color has-dark-gray-background-color has-text-color has-background\"># ansible-playbook -i hosts site.yml<\/pre>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<p>This will install PostgreSQL and configure replication on servers with database and user creation when set true with values defined at <code>defaults\/main.yml<\/code><\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-jetpack-slideshow aligncenter\" data-effect=\"slide\"><div class=\"wp-block-jetpack-slideshow_container swiper-container\"><ul class=\"wp-block-jetpack-slideshow_swiper-wrapper swiper-wrapper\"><li class=\"wp-block-jetpack-slideshow_slide swiper-slide\"><figure><img loading=\"lazy\" decoding=\"async\" width=\"1288\" height=\"582\" alt=\"\" class=\"wp-block-jetpack-slideshow_image wp-image-8461\" data-id=\"8461\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2021\/09\/installation.png?w=1024\" \/><\/figure><\/li><li class=\"wp-block-jetpack-slideshow_slide swiper-slide\"><figure><img loading=\"lazy\" decoding=\"async\" width=\"1286\" height=\"346\" alt=\"\" class=\"wp-block-jetpack-slideshow_image wp-image-8462\" data-id=\"8462\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2021\/09\/configuration.png?w=1024\" \/><\/figure><\/li><li class=\"wp-block-jetpack-slideshow_slide swiper-slide\"><figure><img loading=\"lazy\" decoding=\"async\" width=\"1290\" height=\"545\" alt=\"\" class=\"wp-block-jetpack-slideshow_image wp-image-8464\" data-id=\"8464\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2021\/09\/replication-1.png?w=1024\" \/><\/figure><\/li><li class=\"wp-block-jetpack-slideshow_slide swiper-slide\"><figure><img loading=\"lazy\" decoding=\"async\" width=\"1284\" height=\"352\" alt=\"\" class=\"wp-block-jetpack-slideshow_image wp-image-8465\" data-id=\"8465\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2021\/09\/replication-2.png?w=1024\" \/><\/figure><\/li><\/ul><a class=\"wp-block-jetpack-slideshow_button-prev swiper-button-prev swiper-button-white\" role=\"button\"><\/a><a class=\"wp-block-jetpack-slideshow_button-next swiper-button-next swiper-button-white\" role=\"button\"><\/a><a aria-label=\"Pause Slideshow\" class=\"wp-block-jetpack-slideshow_button-pause\" role=\"button\"><\/a><div class=\"wp-block-jetpack-slideshow_pagination swiper-pagination swiper-pagination-white\"><\/div><\/div><\/div>\n\n\n\n<ul><li>To create database in PostgreSQL<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-verse has-white-color has-dark-gray-background-color has-text-color has-background\"># ansible-playbook -i hosts site.yml --tags \"create_database\"<\/pre>\n\n\n\n<p>This will create DB in PostgreSQL with details mentioned in list at <code>defaults\/main.yml<\/code><\/p>\n\n\n\n<div class=\"wp-block-jetpack-slideshow aligncenter\" data-effect=\"slide\"><div class=\"wp-block-jetpack-slideshow_container swiper-container\"><ul class=\"wp-block-jetpack-slideshow_swiper-wrapper swiper-wrapper\"><li class=\"wp-block-jetpack-slideshow_slide swiper-slide\"><figure><img loading=\"lazy\" decoding=\"async\" width=\"888\" height=\"190\" alt=\"\" class=\"wp-block-jetpack-slideshow_image wp-image-8469\" data-id=\"8469\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2021\/09\/image-36.png?w=888\" \/><\/figure><\/li><\/ul><a class=\"wp-block-jetpack-slideshow_button-prev swiper-button-prev swiper-button-white\" role=\"button\"><\/a><a class=\"wp-block-jetpack-slideshow_button-next swiper-button-next swiper-button-white\" role=\"button\"><\/a><a aria-label=\"Pause Slideshow\" class=\"wp-block-jetpack-slideshow_button-pause\" role=\"button\"><\/a><div class=\"wp-block-jetpack-slideshow_pagination swiper-pagination swiper-pagination-white\"><\/div><\/div><\/div>\n\n\n\n<ul><li>To create users in PostgreSQL<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-verse has-white-color has-dark-gray-background-color has-text-color has-background\">ansible-playbook -i hosts site.yml --tags \"create_user\"<\/pre>\n\n\n\n<p>This will create users in PostgreSQL with name mentioned in the list at <code>defaults\/main.yml<\/code><\/p>\n\n\n\n<div class=\"wp-block-jetpack-slideshow aligncenter\" data-effect=\"slide\"><div class=\"wp-block-jetpack-slideshow_container swiper-container\"><ul class=\"wp-block-jetpack-slideshow_swiper-wrapper swiper-wrapper\"><li class=\"wp-block-jetpack-slideshow_slide swiper-slide\"><figure><img loading=\"lazy\" decoding=\"async\" width=\"866\" height=\"405\" alt=\"\" class=\"wp-block-jetpack-slideshow_image wp-image-8472\" data-id=\"8472\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2021\/09\/image-37.png?w=866\" \/><\/figure><\/li><\/ul><a class=\"wp-block-jetpack-slideshow_button-prev swiper-button-prev swiper-button-white\" role=\"button\"><\/a><a class=\"wp-block-jetpack-slideshow_button-next swiper-button-next swiper-button-white\" role=\"button\"><\/a><a aria-label=\"Pause Slideshow\" class=\"wp-block-jetpack-slideshow_button-pause\" role=\"button\"><\/a><div class=\"wp-block-jetpack-slideshow_pagination swiper-pagination swiper-pagination-white\"><\/div><\/div><\/div>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Conclusion<\/strong><\/h4>\n\n\n\n<p class=\"has-text-align-justify\">The scope of role is the basic implementation of PostgreSQL Database with best practices for installation, configuration, read replica and user creation. For more information, you can go through the <a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/OT-OSM\/Percona-PostgreSQL\/blob\/master\/README.md\" target=\"_blank\">README.md<\/a>.<br>Further, we will upgrade role with cluster failover and CIS Compliant configuration.<\/p>\n\n\n\n<p class=\"has-text-align-justify\">Let us know in the comment section about your experience with role and you can also look at other Ansible roles published by Opstree OSM at<\/p>\n\n\n\n<ul><li><a rel=\"noreferrer noopener\" href=\"https:\/\/galaxy.ansible.com\/opstree_devops\" target=\"_blank\">Ansible Galaxy<\/a><\/li><li><a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/OT-OSM\" target=\"_blank\">GitHub<\/a><\/li><\/ul>\n\n\n\n<p><strong>Logo References<\/strong><\/p>\n\n\n\n<p>https:\/\/galaxy.ansible.com\/<\/p>\n\n\n\n<p>https:\/\/www.postgresql.org\/<\/p>\n\n\n\n<p>https:\/\/www.percona.com\/<\/p>\n\n\n\n<p> <\/p>\n\n\n\n<p><strong> <strong>Blog Pundit: <\/strong><\/strong><a href=\"https:\/\/opstree.com\/blog\/\/author\/naveenverma023\/\"><strong> <\/strong><\/a><a rel=\"noreferrer noopener\" href=\"https:\/\/opstree.com\/blog\/\/author\/bhupendersinghb5dca0b393\/\" target=\"_blank\"><strong>Bhupender Singh<\/strong><\/a> and <strong>Sanjeev Pandey<a rel=\"noreferrer noopener\" href=\"https:\/\/opstree.com\/blog\/\/author\/adeel109\/\" target=\"_blank\"> <\/a><\/strong><\/p>\n\n\n\n<p><a href=\"https:\/\/www.opstree.com\/contact-us?utm_source=blog&amp;utm_medium=wordpress&amp;utm_campaign=Percona_PostgreSQL_through_Awsesome%28OSM%29_Ansible+Role\" target=\"_blank\" rel=\"noreferrer noopener\">Opstree <\/a>is an End to End DevOps solution provider<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button is-style-fill\"><a class=\"wp-block-button__link\" href=\"https:\/\/www.opstree.com\/contact-us\" target=\"_blank\" rel=\"noreferrer noopener\">CONTACT US<\/a><\/div>\n<\/div>\n\n\n\n<p class=\"has-text-align-center\"><strong>Connect Us <\/strong><\/p>\n\n\n\n<ul class=\"wp-block-social-links aligncenter is-content-justification-right is-layout-flex wp-container-core-social-links-is-layout-1 wp-block-social-links-is-layout-flex\"><li class=\"wp-social-link wp-social-link-linkedin  wp-block-social-link\"><a href=\"https:\/\/www.linkedin.com\/company\/opstree-solutions\" class=\"wp-block-social-link-anchor\" target=\"_blank\" rel=\"noopener\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M19.7,3H4.3C3.582,3,3,3.582,3,4.3v15.4C3,20.418,3.582,21,4.3,21h15.4c0.718,0,1.3-0.582,1.3-1.3V4.3 C21,3.582,20.418,3,19.7,3z M8.339,18.338H5.667v-8.59h2.672V18.338z M7.004,8.574c-0.857,0-1.549-0.694-1.549-1.548 c0-0.855,0.691-1.548,1.549-1.548c0.854,0,1.547,0.694,1.547,1.548C8.551,7.881,7.858,8.574,7.004,8.574z M18.339,18.338h-2.669 v-4.177c0-0.996-0.017-2.278-1.387-2.278c-1.389,0-1.601,1.086-1.601,2.206v4.249h-2.667v-8.59h2.559v1.174h0.037 c0.356-0.675,1.227-1.387,2.526-1.387c2.703,0,3.203,1.779,3.203,4.092V18.338z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">LinkedIn<\/span><\/a><\/li>\n\n<li class=\"wp-social-link wp-social-link-youtube  wp-block-social-link\"><a href=\"https:\/\/www.youtube.com\/channel\/UCeLma6SpNYH7jjYKSBNSexw\" class=\"wp-block-social-link-anchor\" target=\"_blank\" rel=\"noopener\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M21.8,8.001c0,0-0.195-1.378-0.795-1.985c-0.76-0.797-1.613-0.801-2.004-0.847c-2.799-0.202-6.997-0.202-6.997-0.202 h-0.009c0,0-4.198,0-6.997,0.202C4.608,5.216,3.756,5.22,2.995,6.016C2.395,6.623,2.2,8.001,2.2,8.001S2,9.62,2,11.238v1.517 c0,1.618,0.2,3.237,0.2,3.237s0.195,1.378,0.795,1.985c0.761,0.797,1.76,0.771,2.205,0.855c1.6,0.153,6.8,0.201,6.8,0.201 s4.203-0.006,7.001-0.209c0.391-0.047,1.243-0.051,2.004-0.847c0.6-0.607,0.795-1.985,0.795-1.985s0.2-1.618,0.2-3.237v-1.517 C22,9.62,21.8,8.001,21.8,8.001z M9.935,14.594l-0.001-5.62l5.404,2.82L9.935,14.594z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">YouTube<\/span><\/a><\/li>\n\n<li class=\"wp-social-link wp-social-link-github  wp-block-social-link\"><a href=\"https:\/\/github.com\/OpsTree\" class=\"wp-block-social-link-anchor\" target=\"_blank\" rel=\"noopener\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M12,2C6.477,2,2,6.477,2,12c0,4.419,2.865,8.166,6.839,9.489c0.5,0.09,0.682-0.218,0.682-0.484 c0-0.236-0.009-0.866-0.014-1.699c-2.782,0.602-3.369-1.34-3.369-1.34c-0.455-1.157-1.11-1.465-1.11-1.465 c-0.909-0.62,0.069-0.608,0.069-0.608c1.004,0.071,1.532,1.03,1.532,1.03c0.891,1.529,2.341,1.089,2.91,0.833 c0.091-0.647,0.349-1.086,0.635-1.337c-2.22-0.251-4.555-1.111-4.555-4.943c0-1.091,0.39-1.984,1.03-2.682 C6.546,8.54,6.202,7.524,6.746,6.148c0,0,0.84-0.269,2.75,1.025C10.295,6.95,11.15,6.84,12,6.836 c0.85,0.004,1.705,0.114,2.504,0.336c1.909-1.294,2.748-1.025,2.748-1.025c0.546,1.376,0.202,2.394,0.1,2.646 c0.64,0.699,1.026,1.591,1.026,2.682c0,3.841-2.337,4.687-4.565,4.935c0.359,0.307,0.679,0.917,0.679,1.852 c0,1.335-0.012,2.415-0.012,2.741c0,0.269,0.18,0.579,0.688,0.481C19.138,20.161,22,16.416,22,12C22,6.477,17.523,2,12,2z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">GitHub<\/span><\/a><\/li>\n\n<li class=\"wp-social-link wp-social-link-facebook  wp-block-social-link\"><a href=\"https:\/\/www.facebook.com\/opstree\" class=\"wp-block-social-link-anchor\" target=\"_blank\" rel=\"noopener\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M12 2C6.5 2 2 6.5 2 12c0 5 3.7 9.1 8.4 9.9v-7H7.9V12h2.5V9.8c0-2.5 1.5-3.9 3.8-3.9 1.1 0 2.2.2 2.2.2v2.5h-1.3c-1.2 0-1.6.8-1.6 1.6V12h2.8l-.4 2.9h-2.3v7C18.3 21.1 22 17 22 12c0-5.5-4.5-10-10-10z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">Facebook<\/span><\/a><\/li>\n\n<li class=\"wp-social-link wp-social-link-medium  wp-block-social-link\"><a href=\"https:\/\/medium.com\/buildpiper\" class=\"wp-block-social-link-anchor\" target=\"_blank\" rel=\"noopener\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M20.962,7.257l-5.457,8.867l-3.923-6.375l3.126-5.08c0.112-0.182,0.319-0.286,0.527-0.286c0.05,0,0.1,0.008,0.149,0.02 c0.039,0.01,0.078,0.023,0.114,0.041l5.43,2.715l0.006,0.003c0.004,0.002,0.007,0.006,0.011,0.008 C20.971,7.191,20.98,7.227,20.962,7.257z M9.86,8.592v5.783l5.14,2.57L9.86,8.592z M15.772,17.331l4.231,2.115 C20.554,19.721,21,19.529,21,19.016V8.835L15.772,17.331z M8.968,7.178L3.665,4.527C3.569,4.479,3.478,4.456,3.395,4.456 C3.163,4.456,3,4.636,3,4.938v11.45c0,0.306,0.224,0.669,0.498,0.806l4.671,2.335c0.12,0.06,0.234,0.088,0.337,0.088 c0.29,0,0.494-0.225,0.494-0.602V7.231C9,7.208,8.988,7.188,8.968,7.178z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">Medium<\/span><\/a><\/li><\/ul>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Percona is known for its software solutions for most Databases. It gives a single solution with the best and most critical enterprise components from the open-source community. In terms of monitoring, it provides Percona Monitoring and Management (PMM) tool which is a best-of-breed monitoring solution. It helps you reduce complexity, optimise performance, and improve the &hellip; <a href=\"https:\/\/opstree.com\/blog\/2021\/10\/05\/percona-postgresql-through-awsesomeosm-ansible-role\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Setup Percona Postgresql Through the Awsesome(OSM) Ansible Role&#8221;<\/span><\/a><\/p>\n","protected":false},"author":211180779,"featured_media":29900,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[28070474],"tags":[475,725155037,725154987,768739307],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2025\/11\/DevSecOps-1.jpg","jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pfDBOm-27k","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/8142"}],"collection":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/users\/211180779"}],"replies":[{"embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/comments?post=8142"}],"version-history":[{"count":24,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/8142\/revisions"}],"predecessor-version":[{"id":8677,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/8142\/revisions\/8677"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/media\/29900"}],"wp:attachment":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/media?parent=8142"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/categories?post=8142"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/tags?post=8142"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}