{"id":49360,"date":"2025-05-18T17:05:06","date_gmt":"2025-05-18T17:05:06","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=49360"},"modified":"2025-05-18T17:05:44","modified_gmt":"2025-05-18T17:05:44","slug":"rundeck-assignments-linux","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/rundeck-assignments-linux\/","title":{"rendered":"Rundeck Assignments 1 &#8211; Linux"},"content":{"rendered":"\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Rundeck Student Assignments (Local Node Only)<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">&#8212;<\/h3>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Assignment 1: Hello World Job<\/strong><\/h3>\n\n\n\n<p><strong>Objective:<\/strong> Learn to create and execute your first Rundeck job.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Instructions:<\/strong>\n<ul class=\"wp-block-list\">\n<li>Create a project named <code>starter-project<\/code><\/li>\n\n\n\n<li>Inside it, create a job named <code>hello-world<\/code><\/li>\n\n\n\n<li>Add a single <strong>script step<\/strong>: <code>echo \"Hello from Rundeck!\"<\/code><\/li>\n\n\n\n<li>Run the job on the <strong>local node<\/strong><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Expected Outcome:<\/strong><br>The job should execute successfully and display the output in the log.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Assignment 2: Disk Usage Check<\/strong><\/h3>\n\n\n\n<p><strong>Objective:<\/strong> Monitor disk usage using <code>df -h<\/code> on the local system.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Instructions:<\/strong>\n<ul class=\"wp-block-list\">\n<li>Create a job named <code>disk-check<\/code><\/li>\n\n\n\n<li>Add a step that runs: <code>df -h > \/tmp\/disk_report.txt<\/code><\/li>\n\n\n\n<li>Add another step to print the contents of the file<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Bonus:<\/strong> Schedule this job to run every day at 9:00 AM<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Assignment 3: Create a Backup Job<\/strong><\/h3>\n\n\n\n<p><strong>Objective:<\/strong> Back up a directory to a tar.gz file.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Instructions:<\/strong>\n<ul class=\"wp-block-list\">\n<li>Create a job called <code>backup-home<\/code><\/li>\n\n\n\n<li>Ask the user to input the folder name via <strong>job option<\/strong><\/li>\n\n\n\n<li>Use a script step: <code>tar -czf \/tmp\/${option.folder}.tar.gz \/home\/${option.folder}<\/code><\/li>\n\n\n\n<li>Run it using <code>rundeck<\/code> user permissions (or sudo if needed)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Expected Outcome:<\/strong><br>A <code>.tar.gz<\/code> file appears in <code>\/tmp\/<\/code>.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Assignment 4: Write and Use a Job Option<\/strong><\/h3>\n\n\n\n<p><strong>Objective:<\/strong> Learn how to use user-provided input in jobs.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Instructions:<\/strong>\n<ul class=\"wp-block-list\">\n<li>Create a job named <code>greet-user<\/code><\/li>\n\n\n\n<li>Add a job <strong>option<\/strong>: <code>username<\/code> (text input)<\/li>\n\n\n\n<li>Script Step: <code>echo \"Welcome, ${option.username}! Your job ran at $(date)\"<\/code><\/li>\n\n\n\n<li>Run the job and enter a custom name<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Expected Outcome:<\/strong><br>Personalized greeting message in the job log.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Assignment 5: System Health Check Job<\/strong><\/h3>\n\n\n\n<p><strong>Objective:<\/strong> Chain multiple system checks into a workflow.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Instructions:<\/strong>\n<ul class=\"wp-block-list\">\n<li>Create a job called <code>health-check<\/code><\/li>\n\n\n\n<li>Add <strong>workflow steps<\/strong>:\n<ol class=\"wp-block-list\">\n<li><code>uptime<\/code><\/li>\n\n\n\n<li><code>free -m<\/code><\/li>\n\n\n\n<li><code>who<\/code><\/li>\n\n\n\n<li><code>df -h<\/code><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Add a final step to write output to <code>\/tmp\/health_summary.txt<\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Bonus:<\/strong> Email or Slack the results (if configured)<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83c\udfc1 Extra Credit Ideas (Still Local Only)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use environment variables inside scripts.<\/li>\n\n\n\n<li>Capture job output and reuse it in a follow-up step.<\/li>\n\n\n\n<li>Trigger one job from another using the \u201cJob Reference\u201d step.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Rundeck Student Assignments (Local Node Only) &#8212; Assignment 1: Hello World Job Objective: Learn to create and execute your first Rundeck job. Assignment 2: Disk Usage Check Objective: Monitor disk&#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[2],"tags":[],"class_list":["post-49360","post","type-post","status-publish","format-standard","hentry","category-uncategorised"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/49360","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=49360"}],"version-history":[{"count":3,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/49360\/revisions"}],"predecessor-version":[{"id":49363,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/49360\/revisions\/49363"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=49360"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=49360"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=49360"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}