Feature #3860

Updated by Greg Sutcliffe almost 7 years ago

Razor does use tags and policies to define rules which assigns OS and hostname. We can add also assigning puppet classes (host groups) and we can do fully automated provisioning too.

-- from 7910 --

In Foreman, we can easily implement automated discovery by creating new model called DiscoveryRule with:

- name: name a the rule
- query: scoped_search expression
- host group: associated host group
- hostname: safemode expression to generate hostname (e.g. "node#{facts[:mac]}")
- max count: maximum allocation for this rule
- priority: integer giving rule priorities
- enabled: temporary disable a rule

For each discovered node, our plugin would execute query for each rule sorted by given priority. If a rule matches, host group is associated, host created and node rebooted for provisioning. Counter for each rule is increased and if it hits maximum count, query is no longer active. To speed up queries, we will add "and hostname = 'discovered_host_name'" to each query.

In the UI, we will need to create:

- rules CRUD
- re-apply automated provisioning button on the Discovered Hosts

Foreman core integration require to decrease counter when a host is deleted. For fluent user experience, we may want to add new button Delete and Reboot so users are able to return machines back to pool easily.