{"id":762,"date":"2016-07-28T07:19:44","date_gmt":"2016-07-28T01:49:44","guid":{"rendered":"https:\/\/pheonixsolutions.com\/blog\/?p=762"},"modified":"2026-09-05T10:52:45","modified_gmt":"2026-09-05T05:22:45","slug":"exportingimporting-a-job-on-rundeck","status":"publish","type":"post","link":"https:\/\/pheonixsolutions.com\/blog\/exportingimporting-a-job-on-rundeck\/","title":{"rendered":"How to Export and Import Jobs in Rundeck"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Introduction<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Rundeck is a powerful automation and orchestration platform that enables system administrators and DevOps teams to automate routine operational tasks across servers and environments. As organizations grow, there is often a need to migrate jobs between projects, replicate automation workflows across environments, or move jobs from one Rundeck server to another.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To simplify this process, Rundeck provides built-in functionality to export and import job definitions in <strong>XML<\/strong> and <strong>YAML<\/strong> formats. This feature allows administrators to back up jobs, migrate automation workflows between projects, clone jobs across environments, and maintain consistency across multiple Rundeck installations.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In this article, we will walk through the process of exporting a job from an existing Rundeck project and importing it into another project or server.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Why Export and Import Rundeck Jobs?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Exporting and importing jobs is useful in several scenarios:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Migrating jobs between Rundeck servers<\/li>\n\n\n\n<li>Moving jobs between projects<\/li>\n\n\n\n<li>Creating job backups<\/li>\n\n\n\n<li>Replicating automation workflows<\/li>\n\n\n\n<li>Deploying standardized jobs across environments<\/li>\n\n\n\n<li>Recovering jobs after accidental deletion<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Rundeck supports exporting job definitions in:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>XML format<\/li>\n\n\n\n<li>YAML format<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Both formats contain the job configuration, workflow steps, options, schedules, notifications, and other associated settings.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1: Export a Job from the Source Project<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Log in to the existing Rundeck server.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Navigate to:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Project \u2192 Jobs<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Locate the job that needs to be migrated.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">From the job actions menu, select:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Download Job Definition in XML<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">or<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Download Job Definition in YAML<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The job definition file will be downloaded to your local system.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This file contains all the information required to recreate the job on another Rundeck project or server.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2: Open the Destination Project<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Log in to the target Rundeck server or project.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Navigate to:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Rundeck \u2192 Select Project \u2192 Job Actions \u2192 Upload Definition<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This option allows you to upload previously exported job definitions.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3: Upload the Job Definition<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Select the downloaded file.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Choose the appropriate format:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>For XML files<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">XML Format<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>For YAML files<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">YAML Format<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ensure the selected format matches the exported file type.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Step 4: Configure Import Options<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">During the import process, Rundeck provides several options that determine how the job will be created.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Update Existing Job<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Select:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Update Existing Job<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">if you want the imported job to overwrite an existing job with the same UUID.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Create a New Job<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Select:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Always Create a New Job<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">if you want Rundeck to create a separate job instead of replacing an existing one.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is useful when cloning jobs or testing modifications.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Understanding UUID Options<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Every Rundeck job is assigned a unique identifier known as a <strong>UUID<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The UUID helps Rundeck distinguish one job from another.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Preserve UUID<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Choose:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Preserve UUID<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">when importing jobs to a different Rundeck server.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This maintains the original job identity and is recommended for migrations.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Remove UUIDs<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Choose:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Remove UUIDs<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">when importing jobs into the same Rundeck server.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Rundeck will generate a new UUID for the imported job and prevent conflicts with existing jobs.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Step 5: Import the Job<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">After selecting the desired options:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>Verify the file format.<\/li>\n\n\n\n<li>Verify UUID handling.<\/li>\n\n\n\n<li>Confirm overwrite or create-new behavior.<\/li>\n\n\n\n<li>Click:<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Upload<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Rundeck will process the job definition and create the job in the selected project.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Once completed, the imported job will appear in the job list and can be executed immediately.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Best Practices<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">When migrating jobs between environments:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Export a backup before making changes.<\/li>\n\n\n\n<li>Use YAML for easier version control and readability.<\/li>\n\n\n\n<li>Preserve UUIDs when migrating to another server.<\/li>\n\n\n\n<li>Remove UUIDs when cloning jobs on the same server.<\/li>\n\n\n\n<li>Verify node filters and credentials after importing.<\/li>\n\n\n\n<li>Test imported jobs before using them in production.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">Exporting and importing Rundeck jobs is a simple yet powerful feature that helps administrators migrate automation workflows between projects and servers with minimal effort. By leveraging XML or YAML job definitions, organizations can standardize automation processes, maintain backups, and efficiently deploy jobs across multiple environments. Understanding UUID handling and import options ensures smooth migrations while avoiding job conflicts and configuration issues.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Frequently Asked Questions (FAQ)<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>1. Which format should I use: XML or YAML?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Both formats are supported by Rundeck.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>XML is commonly used for traditional exports.<\/li>\n\n\n\n<li>YAML is more human-readable and easier to maintain in version control systems such as Git.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">For DevOps workflows, YAML is generally preferred.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>2. What happens if I preserve the UUID while importing into the same server?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If a job with the same UUID already exists, Rundeck may overwrite the existing job or generate conflicts depending on the selected import options.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For importing duplicate jobs into the same server, it is recommended to remove UUIDs.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>3. Can I export and import multiple jobs at once?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Yes. Rundeck allows exporting multiple jobs and entire project job definitions. This is useful when migrating complete automation environments between servers.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Related Articles<\/h2>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>How to Reset the SA User Password of a Microsoft SQL Server Instance on a Windows Server with Plesk<\/strong><br>Learn how to recover and reset SQL Server administrator credentials in a Windows hosting environment.<br><a href=\"https:\/\/pheonixsolutions.com\/blog\/how-to-reset-the-sa-user-password-of-a-microsoft-sql-server-instance-on-a-windows-server-with-plesk\/\">https:\/\/pheonixsolutions.com\/blog\/how-to-reset-the-sa-user-password-of-a-microsoft-sql-server-instance-on-a-windows-server-with-plesk\/<\/a><\/li>\n\n\n\n<li><strong>How to Install and Configure NSClient++ to Monitor Windows Servers Using Nagios<\/strong><br>Monitor Windows servers effectively by integrating NSClient++ with Nagios.<br><a href=\"https:\/\/pheonixsolutions.com\/blog\/how-to-install-and-configure-nsclient-to-monitor-the-windows-server-on-nagios\/\">https:\/\/pheonixsolutions.com\/blog\/how-to-install-and-configure-nsclient-to-monitor-the-windows-server-on-nagios\/<\/a><\/li>\n\n\n\n<li><strong>How to Change the Backup Location in Plesk for Windows Server<\/strong><br>Learn how to relocate backup storage and optimize disk space management in Plesk.<br><a href=\"https:\/\/pheonixsolutions.com\/blog\/how-to-change-the-location-for-backup-files-in-plesk-for-windows-server\/\">https:\/\/pheonixsolutions.com\/blog\/how-to-change-the-location-for-backup-files-in-plesk-for-windows-server\/<\/a><\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction Rundeck is a powerful automation and orchestration platform that enables system administrators and DevOps teams to automate routine operational [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"_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","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[1022],"tags":[],"class_list":["post-762","post","type-post","status-publish","format-standard","hentry","category-web-architecture","psol-cat-web-architecture"],"jetpack_publicize_connections":[],"jetpack_shortlink":"https:\/\/wp.me\/phn2x7-ci","jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/762","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=762"}],"version-history":[{"count":2,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/762\/revisions"}],"predecessor-version":[{"id":11399,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/762\/revisions\/11399"}],"wp:attachment":[{"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/media?parent=762"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/categories?post=762"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/tags?post=762"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}