“Projects” on Chef Automate provides users the ability to organize nodes into groups giving better insights into the status of the fleet and an easier way to distinguish and visualize nodes on Automate.
Projects allow for filtering and segregation of your node data with a set of rules. Users can combine multiple rules in one project. After applying the project rules, one can find the created project in a dropdown on the top right corner of the Automate dashboard. Selecting one of the projects will show the nodes mapped to the project.
Projects gives the ability to restrict users from accessing all the nodes in the fleet. Creating projects also produce policies (IAM) in the policies section. These can be assigned to specific users to receive permission to view/edit only those nodes belonging to the project(s) they have access to.
A user can create a rule to group nodes by event or node resource type.
Nodes can be grouped by one of the following methods.
We will walkthrough grouping of nodes using “Projects” by two methods
A Chef tag can be created and applied to nodes by using knife tag command or with a tag resource in a recipe file. For example, in the cookbook (in this example, ‘custom’), the below line can be added in one of the recipe files:
This recipe file can be added to an existing cookbook and then add the recipe to the run list for all the nodes that need to be tagged with it.
Create a rule targeting the tag:
Depending on the number of nodes managed by Automate, it may take time to apply all the rules. Once the project rules are applied, find the project in a dropdown on the top right corner of the screen.
If a group of nodes have a common policyfile or policygroup assigned, projects can be created accordingly with same steps as above (refer section: Grouping nodes with a tag) but choose policyfile or policygroup as the node attribute while selecting the condition. A rule that targets multiple policies and groups can be created using the “member of” check in the condition.
Nodes can be grouped in many ways depending on the organization needs. Some of the scenarios where Projects can be used are:
Here is an example of how you can segregate desktop and server nodes with Projects. To view desktops and servers separately on a single Automate instance using projects, it is recommended that the nodes be segregated by one of the following attributes.
Chef Tag-:
Chef Policy name/Policy group-:
The nodes can also be grouped based on Chef organizations and Chef servers. However, if there is no segregation in place between desktop and server nodes, moving nodes of a particular type from one server to another or moving them under a different organization is a comparatively bigger effort than simply assigning a policy or a tag for segregating desktop from server nodes. Likewise, Projects can be used for other use cases where it is necessary to distinguish or group nodes.