{"id":707,"date":"2016-07-15T22:18:05","date_gmt":"2016-07-15T16:48:05","guid":{"rendered":"https:\/\/pheonixsolutions.com\/blog\/?p=707"},"modified":"2026-08-04T08:12:25","modified_gmt":"2026-08-04T02:42:25","slug":"rundeck-failover-setup","status":"publish","type":"post","link":"https:\/\/pheonixsolutions.com\/blog\/rundeck-failover-setup\/","title":{"rendered":"Rundeck Failover Setup"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\">Introduction:<\/h3>\n\n\n\n<p>In this post, we will explain how to set up failover on Rundeck. Rundeck officially doesn&#8217;t supports failover. We tested this approach on CentOS 6 and it&#8217;s working fine. Moreover, use this approach at your own risk \ud83d\ude1b<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Prerequisites:<\/h3>\n\n\n\n<p>This post assumes that Rundeck is running on host1 and listens on port 8000. Its standalone server and using mysql database.<\/p>\n\n\n\n<p>Before moving to the post, let&#8217;s understand basic execution mode on Rundeck. There are 2 kinds of execution mode available on Rundeck<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Active Mode: Jobs, scheduled Jobs, and adhoc executions can be run.<\/li>\n\n\n\n<li>Passive Mode: No Jobs or adhoc executions can be run.<\/li>\n<\/ol>\n\n\n\n<p>We will configure Rundeck failover server in Passive mode, where no jobs will run and whenever the master server goes down, the Rundeck failover server will become a master.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Implementation<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Check whether the Rundeck master server is listening on port 8000 from the failover server<\/li>\n\n\n\n<li>If the Rundeck master responds, copy the projects and log folders and check whether the failover server is in active mode or passive mode. If the Rundeck failover server is in active mode, change it to passive mode and send notifications. If the Rundeck failover server is in Passive mode, then do nothing.<\/li>\n\n\n\n<li>If the Rundeck master doesn&#8217;t respond, switch the failover Rundeck server execution mode from Passive to Active and send notifications.<\/li>\n<\/ol>\n\n\n\n<p><strong>Fail Over Setup:<\/strong><\/p>\n\n\n\n<p>Install Rundeck on the failover server.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>$ rpm -Uvh http:\/\/repo.rundeck.org\/latest.rpm<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>$ yum install rundeck<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>&nbsp;Configure database details on the rundeck Failover server.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>$ <code>vi \/etc\/rundeck\/rundeck-config.properties<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>dataSource.url=jdbc:mysql:\/\/IPADDRESS\/rundeck?autoReconnect=true<\/p>\n\n\n\n<p>dataSource.username=rundeck<\/p>\n\n\n\n<p>dataSource.password=&lt;YOUR PASSWORD&gt;<\/p>\n\n\n\n<p>dataSource.driverClassName=com.mysql.jdbc.Driver<\/p>\n<\/blockquote>\n\n\n\n<p>Modify the rundeck port if you wish to listen on different. In our case, we used port 8000<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>$ <code>vi \/etc\/rundeck\/profile<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>RDECK_HTTP_PORT=8000<\/p>\n<\/blockquote>\n\n\n\n<p>Grant privileges to mysql user on mysql host<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>grant all on rundeck.* to &#8216;rundeck&#8217;@&#8217;FAILOVER-IPADDRESS&#8217; identified by &#8216;&lt;YOUR PASSWORD&gt;\u2019;<\/p>\n\n\n\n<p>flush privileges;<\/p>\n<\/blockquote>\n\n\n\n<p>Copy ssh key on master to failover server. Execute the below command on failover server<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>scp \/var\/lib\/rundeck\/.ssh<\/p>\n\n\n\n<p>MASTER_IP_ADDRESS:\/var\/lib\/rundeck<\/p>\n<\/blockquote>\n\n\n\n<p>Generate API key on FAILOVER SERVER. Move your Pointer to&nbsp;<strong>Rundeck -&gt; Settings -&gt; GENERATE<\/strong><\/p>\n\n\n\n<p>Provide <strong>enable_executions, disable_executions&nbsp;<\/strong> to<strong> apitoken.aclpolicy<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>$ <code>vi \/etc\/rundeck\/apitoken.aclpolicy<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>context:<\/p>\n\n\n\n<p>&nbsp; application: &#8216;rundeck&#8217;<\/p>\n\n\n\n<p>for:<\/p>\n\n\n\n<p>&nbsp; resource:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &#8211; equals:<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; kind: system<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; allow: <strong>[read,enable_executions,disable_executions]<\/strong> # allow read of system info<\/p>\n<\/blockquote>\n\n\n\n<p>Start the rundeck service on failover server.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>$ <code>\/etc\/init.d\/rundeck start<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Change active mode to passive on the failover server.<\/p>\n\n\n\n<p><em>Rundeck Server -&gt; Settings -&gt; Change Executions -&gt; Passive -&gt; Save<\/em><\/p>\n\n\n\n<p>Copy the failover script and add it to cron to run every 15 minutes.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">#!\/usr\/bin\/python\n#Author:support@pheonixsolutions.com\n#Description: Script to setup Failover\n#Schedule this script on cron to run every 15 minutes\n#Love to do in Python\n#Version:1.0\nimport os,sys,socket\nimport xml.etree.ElementTree\nimport smtplib\nimport email\nimport email.mime.text\nimport string\n# Required Variables\nPROJECT_FOLDER='\/var\/rundeck\/projects'\nLOG_FOLDER='\/var\/log\/rundeck'\nEXECUTION_LOGS='\/var\/lib\/rundeck\/logs'\nMASTER_IP_ADDRESS='&lt;MASTER-IP-ADDRESS'\nFAILOVER_IP_ADDRESS='&lt;FAILOVER-IP_ADDRESS' RUNDECK_PORT=8000 sender_mail = 'rundeck-failover@domain.tld' # Mention FROM email address recipients =['email1@domain.tld','email2@domain.tld']#Separated by Comma API_TOKEN='YOUR API TOKEN' print \"Checking whether Rundeck Master server is responding..\" check_socket=socket.socket() try: check_socket.connect((MASTER_IP_ADDRESS,RUNDECK_PORT)); #print \"Connected to %s on port %s\" % (MASTER_IP_ADDRESS, RUNDECK_PORT) # \"Syncing data from Master to Slave\" os.system('rsync -ratlz root@'+MASTER_IP_ADDRESS+':'+PROJECT_FOLDER+'\/* ' +PROJECT_FOLDER+'\/') os.system('rsync -ratlz root@'+MASTER_IP_ADDRESS+':'+LOG_FOLDER+'\/* ' +LOG_FOLDER+'\/') os.system('rsync -ratlz root@'+MASTER_IP_ADDRESS+':'+EXECUTION_LOGS+'\/* ' +EXECUTION_LOGS+'\/') os.system(\"curl -H 'X-Rundeck-Auth-Token:\"+API_TOKEN+\"' http:\/\/\"+FAILOVER_IP_ADDRESS+\":\"+str(RUNDECK_PORT)+\"\/api\/2\/system\/info&gt;\/tmp\/output_failover.xml\");\n  e = xml.etree.ElementTree.parse('\/tmp\/output_failover.xml').getroot()\n  for all_elements in e:\n    for executions in all_elements:\n      if(executions.tag =='executions'):\n        #Checking whether Failover server is active or passive\n        if(executions.get('executionMode') == 'active'):\n          os.system('curl -H \"X-Rundeck-Auth-Token:'+API_TOKEN+'\" -X POST http:\/\/'+FAILOVER_IP_ADDRESS+':'+str(RUNDECK_PORT)+'\/api\/14\/system\/executions\/disable');\n          #Sending Notifications\n          body=\"Master Server %s is up. Fail Over Server Execution Mode is Active. Disabling Active Mode on %s\\n\" %(MASTER_IP_ADDRESS,FAILOVER_IP_ADDRESS)\n          body_of_the_message= email.mime.text.MIMEText(body,'html');\n          message      = email.MIMEMultipart.MIMEMultipart('alternative')\n          message['Subject'] =\"Rundeck Fail Over Alert\"\n          message['From']    = sender_mail\n          message.attach(body_of_the_message);\n          message['To']=\",\".join(recipients)\n          server = smtplib.SMTP('localhost')\n          server.sendmail(message['From'],recipients,message.as_string())\n          server.quit()\n        elif(executions.get('executionMode') == 'passive'):\n          print \"Fail Over Server Execution Mode is Passive. Do Nothing..\";\n        else:\n          print \"Something is wrong. Please check Fail Over Server %s.\" %(FAILOVER_IP_ADDRESS)\n          body=\"Rundeck Fail Over Alert: Something is Wrong on %s\" %(FAILOVER_IP_ADDRESS)\n          body_of_the_message= email.mime.text.MIMEText(body,'html');\n          message      = email.MIMEMultipart.MIMEMultipart('alternative')\n          message['Subject'] =\"Urgent:Rundeck Fail Over Alert. Something is wrong on Failover Server\"\n          message['From']    = sender_mail\n          message['To']=\",\".join(recipients)\n          message.attach(body_of_the_message);\n          server = smtplib.SMTP('localhost')\n          server.sendmail(message['From'],recipients,message.as_string())\n          server.quit()\n#If the Master server doesn't Responds, switch the connection\nexcept socket.error, e:\n  print \"Connection Failed. Master Rundeck server failed %s\" %(MASTER_IP_ADDRESS);\n  print \"Starting Failover Server\"\n  os.system('curl -H \"X-Rundeck-Auth-Token:'+API_TOKEN+'\" -X POST http:\/\/'+FAILOVER_IP_ADDRESS+':'+str(RUNDECK_PORT)+'\/api\/14\/system\/executions\/enable');\n  body=\"Rundeck Fail Over Alert: Rundeck Master is Down %s. Failover Completed on %s. Please check \" %(MASTER_IP_ADDRESS,FAILOVER_IP_ADDRESS)\n  body_of_the_message= email.mime.text.MIMEText(body,'html');\n  message      = email.MIMEMultipart.MIMEMultipart('alternative')\n  message['From']    = sender_mail\n  message['Subject'] =\"Urgent: Rundeck Master Server %s is Down. Please check \" %(MASTER_IP_ADDRESS)\n  message.attach(body_of_the_message);\n  message['To']=\",\".join(recipients)\n  server = smtplib.SMTP('localhost')\n  server.sendmail(message['From'],recipients,message.as_string())\n  server.quit()<\/pre>\n\n\n\n<p>\u00a0<br>Add the script to cron to run every 15 minutes.<br>Stop the Rundeck server on the master and execute the copied script; you can see the failover server become Active mode.<\/p>\n\n\n\n<p>The script can be downloaded from <a href=\"https:\/\/github.com\/Pheonixsolutions\/rundeck-failover\">github<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Conclusion<\/h3>\n\n\n\n<p>This solution provides a practical failover mechanism for standalone Rundeck deployments by leveraging automated monitoring, synchronisation, and execution mode switching. While it is not an officially supported high-availability solution, it can significantly improve service continuity in environments where Rundeck availability is critical. Regular testing and monitoring are recommended to ensure the failover process operates as expected.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction: In this post, we will explain how to set up failover on Rundeck. Rundeck officially doesn&#8217;t supports failover. We tested this approach on CentOS 6 and it&#8217;s working fine. Moreover, use this approach at your own risk \ud83d\ude1b Prerequisites: This post assumes that Rundeck is running on host1 and&hellip; <a href=\"https:\/\/pheonixsolutions.com\/blog\/rundeck-failover-setup\/\" class=\"more-link read-more\" rel=\"bookmark\">Continue Reading <span class=\"screen-reader-text\">Rundeck Failover Setup<\/span><i class=\"fa fa-arrow-right\"><\/i><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":true,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[225,291,290],"tags":[294,292,293,210],"class_list":{"0":"post-707","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"hentry","6":"category-linux","7":"category-python-script","8":"category-script","9":"tag-failover","10":"tag-python","11":"tag-rundeck","12":"tag-script","13":"h-entry","15":"h-as-article"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Pheonix Solutions - We Empower Your Business Growth<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/pheonixsolutions.com\/blog\/rundeck-failover-setup\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Pheonix Solutions - We Empower Your Business Growth\" \/>\n<meta property=\"og:description\" content=\"Introduction: In this post, we will explain how to set up failover on Rundeck. Rundeck officially doesn&#8217;t supports failover. We tested this approach on CentOS 6 and it&#8217;s working fine. Moreover, use this approach at your own risk \ud83d\ude1b Prerequisites: This post assumes that Rundeck is running on host1 and&hellip; Continue Reading Rundeck Failover Setup\" \/>\n<meta property=\"og:url\" content=\"https:\/\/pheonixsolutions.com\/blog\/rundeck-failover-setup\/\" \/>\n<meta property=\"og:site_name\" content=\"PHEONIXSOLUTIONS\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/PheonixSolutions-209942982759387\/\" \/>\n<meta property=\"article:published_time\" content=\"2016-07-15T16:48:05+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-04T02:42:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/pheonixsolutions.com\/blog\/wp-content\/uploads\/2016\/09\/PX2.png\" \/>\n\t<meta property=\"og:image:width\" content=\"3837\" \/>\n\t<meta property=\"og:image:height\" content=\"2540\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@pheonixsolution\" \/>\n<meta name=\"twitter:site\" content=\"@pheonixsolution\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/rundeck-failover-setup\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/rundeck-failover-setup\\\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/#\\\/schema\\\/person\\\/0ffa33d73c869faec2d50e79c24e3503\"},\"headline\":\"Rundeck Failover Setup\",\"datePublished\":\"2016-07-15T16:48:05+00:00\",\"dateModified\":\"2026-08-04T02:42:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/rundeck-failover-setup\\\/\"},\"wordCount\":542,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/#organization\"},\"keywords\":[\"failover\",\"python\",\"rundeck\",\"script\"],\"articleSection\":[\"Linux\",\"Python\",\"Script\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/rundeck-failover-setup\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/rundeck-failover-setup\\\/\",\"url\":\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/rundeck-failover-setup\\\/\",\"name\":\"Pheonix Solutions - We Empower Your Business Growth\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/#website\"},\"datePublished\":\"2016-07-15T16:48:05+00:00\",\"dateModified\":\"2026-08-04T02:42:25+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/rundeck-failover-setup\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/rundeck-failover-setup\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/rundeck-failover-setup\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Rundeck Failover Setup\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/\",\"name\":\"Pheonix Solutions\",\"description\":\"We Empower Your Business Growth\",\"publisher\":{\"@id\":\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/#organization\",\"name\":\"PheonixSolutions\",\"url\":\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/wp-content\\\/uploads\\\/2016\\\/12\\\/logo.png\",\"contentUrl\":\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/wp-content\\\/uploads\\\/2016\\\/12\\\/logo.png\",\"width\":454,\"height\":300,\"caption\":\"PheonixSolutions\"},\"image\":{\"@id\":\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/PheonixSolutions-209942982759387\\\/\",\"https:\\\/\\\/x.com\\\/pheonixsolution\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/#\\\/schema\\\/person\\\/0ffa33d73c869faec2d50e79c24e3503\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/09bacc0294abee1322a23ab4bc6a0330dd4cb4df707dc9d0b0efeba6c109608b?s=96&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/09bacc0294abee1322a23ab4bc6a0330dd4cb4df707dc9d0b0efeba6c109608b?s=96&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/09bacc0294abee1322a23ab4bc6a0330dd4cb4df707dc9d0b0efeba6c109608b?s=96&r=g\",\"caption\":\"admin\"},\"sameAs\":[\"http:\\\/\\\/pheonixsolutions.com\\\/blog\"],\"url\":\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/author\\\/admin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Pheonix Solutions - We Empower Your Business Growth","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/pheonixsolutions.com\/blog\/rundeck-failover-setup\/","og_locale":"en_US","og_type":"article","og_title":"Pheonix Solutions - We Empower Your Business Growth","og_description":"Introduction: In this post, we will explain how to set up failover on Rundeck. Rundeck officially doesn&#8217;t supports failover. We tested this approach on CentOS 6 and it&#8217;s working fine. Moreover, use this approach at your own risk \ud83d\ude1b Prerequisites: This post assumes that Rundeck is running on host1 and&hellip; Continue Reading Rundeck Failover Setup","og_url":"https:\/\/pheonixsolutions.com\/blog\/rundeck-failover-setup\/","og_site_name":"PHEONIXSOLUTIONS","article_publisher":"https:\/\/www.facebook.com\/PheonixSolutions-209942982759387\/","article_published_time":"2016-07-15T16:48:05+00:00","article_modified_time":"2026-08-04T02:42:25+00:00","og_image":[{"width":3837,"height":2540,"url":"https:\/\/pheonixsolutions.com\/blog\/wp-content\/uploads\/2016\/09\/PX2.png","type":"image\/png"}],"author":"admin","twitter_card":"summary_large_image","twitter_creator":"@pheonixsolution","twitter_site":"@pheonixsolution","twitter_misc":{"Written by":"admin","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/pheonixsolutions.com\/blog\/rundeck-failover-setup\/#article","isPartOf":{"@id":"https:\/\/pheonixsolutions.com\/blog\/rundeck-failover-setup\/"},"author":{"name":"admin","@id":"https:\/\/pheonixsolutions.com\/blog\/#\/schema\/person\/0ffa33d73c869faec2d50e79c24e3503"},"headline":"Rundeck Failover Setup","datePublished":"2016-07-15T16:48:05+00:00","dateModified":"2026-08-04T02:42:25+00:00","mainEntityOfPage":{"@id":"https:\/\/pheonixsolutions.com\/blog\/rundeck-failover-setup\/"},"wordCount":542,"commentCount":0,"publisher":{"@id":"https:\/\/pheonixsolutions.com\/blog\/#organization"},"keywords":["failover","python","rundeck","script"],"articleSection":["Linux","Python","Script"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/pheonixsolutions.com\/blog\/rundeck-failover-setup\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/pheonixsolutions.com\/blog\/rundeck-failover-setup\/","url":"https:\/\/pheonixsolutions.com\/blog\/rundeck-failover-setup\/","name":"Pheonix Solutions - We Empower Your Business Growth","isPartOf":{"@id":"https:\/\/pheonixsolutions.com\/blog\/#website"},"datePublished":"2016-07-15T16:48:05+00:00","dateModified":"2026-08-04T02:42:25+00:00","breadcrumb":{"@id":"https:\/\/pheonixsolutions.com\/blog\/rundeck-failover-setup\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/pheonixsolutions.com\/blog\/rundeck-failover-setup\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/pheonixsolutions.com\/blog\/rundeck-failover-setup\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/pheonixsolutions.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Rundeck Failover Setup"}]},{"@type":"WebSite","@id":"https:\/\/pheonixsolutions.com\/blog\/#website","url":"https:\/\/pheonixsolutions.com\/blog\/","name":"Pheonix Solutions","description":"We Empower Your Business Growth","publisher":{"@id":"https:\/\/pheonixsolutions.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/pheonixsolutions.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/pheonixsolutions.com\/blog\/#organization","name":"PheonixSolutions","url":"https:\/\/pheonixsolutions.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/pheonixsolutions.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/pheonixsolutions.com\/blog\/wp-content\/uploads\/2016\/12\/logo.png","contentUrl":"https:\/\/pheonixsolutions.com\/blog\/wp-content\/uploads\/2016\/12\/logo.png","width":454,"height":300,"caption":"PheonixSolutions"},"image":{"@id":"https:\/\/pheonixsolutions.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/PheonixSolutions-209942982759387\/","https:\/\/x.com\/pheonixsolution"]},{"@type":"Person","@id":"https:\/\/pheonixsolutions.com\/blog\/#\/schema\/person\/0ffa33d73c869faec2d50e79c24e3503","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/09bacc0294abee1322a23ab4bc6a0330dd4cb4df707dc9d0b0efeba6c109608b?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/09bacc0294abee1322a23ab4bc6a0330dd4cb4df707dc9d0b0efeba6c109608b?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/09bacc0294abee1322a23ab4bc6a0330dd4cb4df707dc9d0b0efeba6c109608b?s=96&r=g","caption":"admin"},"sameAs":["http:\/\/pheonixsolutions.com\/blog"],"url":"https:\/\/pheonixsolutions.com\/blog\/author\/admin\/"}]}},"jetpack_shortlink":"https:\/\/wp.me\/p7F4uM-bp","jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/707","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/comments?post=707"}],"version-history":[{"count":3,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/707\/revisions"}],"predecessor-version":[{"id":10669,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/707\/revisions\/10669"}],"wp:attachment":[{"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/media?parent=707"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/categories?post=707"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/tags?post=707"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}