# Overview of Projects

# Introduction

Projects are a core element of Rundeck, Runbook Automation and Process Automation. Most of the elements that you interact with, such as Jobs, Nodes and Commands will be contained within the context of a Project. Individual Projects are created to serve the needs of a particular team or to contain a set of related Jobs or Nodes. Access to each Project can be controlled through Access Control.

# Steps for Getting Started with a new Project

# Step 1: Create a new Project

To get started, the first step is to create a new Project. To do so, you need to be logged in as admin or a Full User. In addition to jobs and nodes, the project contains specific configurations like node executor and file copier.

# Step 2: Add your first node

The next step is to add a remote node on the Project to dispatch commands and jobs against them. Generally, nodes are added by defining node sources which might gather information from existing sources like AWS, Ansible or Service Now’s CMDB.

# Step 3: Add a key to Rundeck Key Storage

To access remote Linux nodes, the server needs a private SSH key to trust the Rundeck server. This step adds the private key to Rundeck Key Storage. Over time, passwords and keys needed for target nodes should be added to Key Storage in this same way.

# Step 4: Create a new job dispatched to example remote node

Create a new job with an example command step (e.g: whoami), go to "nodes" section and enter the node name as a filter, then save the job and run it.

# Step 5: Add a new user

By default, Rundeck creates an admin user. A good practice is to add new users to run jobs and limit some Rundeck functions.

# Step 6: Add a new user/role based ACL focused on the new Project

The new user is full restricted by default, now let's create an ACL focused on that user to access and execute the Project's jobs. The Following ACL definition illustrates this:

description: project context.
 project: ProjectEXAMPLE
   - allow: [run,read]
   - allow: [read,view,update,run]
   - allow: [read,run]
 username: my_new_user

description: app context.
 application: 'rundeck'
 - allow: read
     name: ProjectEXAMPLE
    - allow: [read]
 username: my_new_user

Now enter using the new user's credentials and you can run jobs contained in this Project.