Methods and apparatus to automate deployments of software defined data centers based on automation plan and user-provided parameter values
A disclosed example method to automate deployment of a software defined data center includes generating, by executing an instruction with at least one processor, a task list based on tasks provided in an automation plan to deploy the software defined data center; determining, by executing an instruction with the at least one processor, dependencies between the tasks prior to executing the tasks; determining, by executing an instruction with the at least one processor, whether a resource that is to be an output of a first one of the tasks exists before execution of the first one of the tasks; removing, by executing an instruction with the at least one processor, the first one of the tasks from the task list when the resource exists before execution of the first one of the tasks; generating an execution schedule, by executing an instruction with the at least one processor, based on the dependencies and ones of the tasks remaining in the task list; and executing, with the at least one processor, the ones of the tasks based on the execution schedule to deploy the software defined data center.
1. A system to automate user deployment of a software defined data center based on an automation plan generated by a service provider and accessible by a user, the system comprising:
memory;
programmable circuitry;
instructions in the system to program the programmable circuitry to:
generate a task list based on the automation plan and user-provided parameter values;
determine dependencies between tasks in the task list prior to executing the tasks;
identify first and second tasks in the task list, the first task to allocate a resource, the second task to execute after the resource is allocated;
configure a third task in the task list to allocate the resource before the first task to remove a first dependency of the second task on the first task;
rearrange an execution order of the tasks in the task list by changing a second dependency between the tasks in the task list when at least one of the tasks is unnecessary to deploy the software defined data center;
associate user-provided parameter values for user-configurable parameters with corresponding ones of the tasks from the task list;
generate an execution schedule based on the dependencies, at least some of the tasks in the task list, task metadata, and the user-provided parameter values, the execution schedule to alter execution of the automation plan to modify deployment of the software defined data center without recompiling the automation plan; and
execute the at least some of the tasks in the task list based on the execution schedule to deploy the software defined data center.
2. The system of claim 1 , wherein the programmable circuitry is to generate the task list without receiving any line of code via any user input from the user.
3. The system of claim 1 , wherein the automation plan is generated by the service provider independent of a need of a customer to deploy the software defined data center, and the automation plan is to be subsequently accessible by the customer when the customer is to deploy the software defined data center.
4. The system of claim 1 , wherein the programmable circuitry is to access the automation plan as a pre-prepared automation plan before the task list is generated, the task list based on the user-provided parameter values without receiving any line of code via any user input for the pre-prepared automation plan after accessing the pre-prepared automation plan.
5. The system of claim 1 , wherein the programmable circuitry is to coordinate execution of the at least some of the tasks in the task list by a server node to automatically deploy the software defined data center.
6. The system of claim 1 , wherein the automation plan is to configure a virtual appliance, and the programmable circuitry is to execute a fourth task from the task list corresponding to a second automation plan to configure core components of the software defined data center, the core components including a hypervisor, a network virtualizer, and a virtual storage area network.
7. The system of claim 1 , wherein the programmable circuitry is to facilitate partial execution of a virtual infrastructure deployment of the software defined data center, the partial execution to execute the automation plan for a duration of a first lifecycle phase and cease execution of the automation plan when a second lifecycle phase is reached.
8. At least one non-transitory computer readable medium comprising instructions to automate user deployment of a software defined data center based on an automation plan generated by a service provider and accessible by a user, the instructions, when executed, cause programmable circuitry to at least:
generate a task list based on the automation plan and a user-provided parameter value;
determine dependencies between tasks in the task list prior to executing the tasks;
identify first and second tasks in the task list, the first task to allocate a resource, the second task to execute after the resource is allocated;
configure a third task in the task list to allocate the resource, the third task to execute before the first task to remove a first dependency of the second task on the first task;
rearrange an execution order of the tasks in the task list by changing a second dependency between the tasks in the task list when at least one of the tasks is unnecessary to deploy the software defined data center;
associate the user-provided parameter value for a user-configurable parameter with a corresponding one of the tasks from the task list;
generate an execution schedule based on the dependencies, at least some of the tasks in the task list, task metadata, and the user-provided parameter value, the execution schedule to alter execution of the automation plan to modify deployment of the software defined data center without recompiling the automation plan; and
execute the at least some of the tasks in the task list based on the execution schedule to deploy the software defined data center.
9. The at least one non-transitory computer readable medium of claim 8 , wherein the instructions are further to cause the programmable circuitry to generate the task list without receiving any line of code via any user input from the user.
10. The at least one non-transitory computer readable medium of claim 9 , wherein the instructions are further to cause the programmable circuitry to access the automation plan as a pre-prepared automation plan before generating the task list, the task list based on the user-provided parameter value without receiving any line of code via any user input for the pre-prepared automation plan after accessing the pre-prepared automation plan.
11. The at least one non-transitory computer readable medium of claim 8 , wherein the instructions are to cause the programmable circuitry to generate the execution schedule and execute the tasks in the task list at a single server node.
12. The at least one non-transitory computer readable medium of claim 8 , wherein the automation plan is to configure a virtual appliance, and the instructions are further to cause the programmable circuitry to execute a fourth task from the task list corresponding to a second automation plan to configure core components of the software defined data center, the core components including a hypervisor, a network virtualizer, and a virtual storage area network.
13. The at least one non-transitory computer readable medium of claim 8 , wherein the instructions are further to cause the programmable circuitry to coordinate execution of the at least some of the tasks in the task list by a server node to automatically deploy the software defined data center.
14. The non-transitory computer readable medium of claim 8 , wherein the instructions are to cause the programmable circuitry to facilitate partial execution of the automation plan, the partial execution to execute the automation plan to deploy the software defined data center and cease execution of the automation plan before configuration of the software defined data center.
15. A method to automate user deployment of a software defined data center based on an automation plan generated by a service provider and accessible by a user, the method comprising:
generating, by executing a first instruction of machine-executable instructions with programmable circuitry, a task list based on the automation plan and user-provided parameter values;
determining, by executing a second instruction of the machine-executable instructions with the programmable circuitry, dependencies between tasks in the task list prior to executing the tasks;
identifying, by executing a third instruction of the machine-executable instructions with the programmable circuitry, first and second tasks in the task list, the first task to allocate a resource, the second task to execute after the resource is allocated;
configuring, by executing a fourth instruction of the machine-executable instructions with the programmable circuitry, a third task in the task list to allocate the resource, the third task to execute before the first task to remove a first dependency of the second task on the first task;
rearranging, by executing a fifth instruction of the machine-executable instructions with the programmable circuitry, an execution order of the tasks in the task list by changing a second dependency between the tasks in the task list when at least one of the tasks is unnecessary to deploy the software defined data center;
associating, by executing a sixth instruction of the machine-executable instructions with the programmable circuitry, the user-provided parameter values for user-configurable parameters with corresponding tasks from the task list;
generating, by executing a seventh instruction of the machine-executable instructions with the programmable circuitry, an execution schedule based on the dependencies, at least some of the tasks in the task list, task metadata, and the user-provided parameter values, the execution schedule to alter execution of the automation plan to modify deployment of the software defined data center without recompiling the automation plan; and
executing, with the programmable circuitry, the at least some of the tasks in the task list based on the execution schedule to deploy the software defined data center.
16. The method of claim 15 , wherein the automation plan includes compiled second machine-executable instructions.
17. The method of claim 15 , further including generating the task list without receiving any line of code via any user input from the user.
18. The method of claim 15 , wherein the automation plan is generated by the service provider independent of a need of a customer to deploy the software defined data center, and the automation plan is to be subsequently accessible by the customer when the customer is to deploy the software defined data center.
19. The method of claim 15 , further including coordinating execution of the at least some of the tasks in the task list by a server node to automatically deploy the software defined data center.
20. The method of claim 15 , wherein the automation plan is to configure a virtual appliance, and further including executing a fourth task from the task list corresponding to a second automation plan to configure core components of the software defined data center, the core components including a hypervisor, a network virtualizer, and a virtual storage area network.
21. The method of claim 15 , further including accessing, responsive to a request by the user, the automation plan from a plan repository.
22. The method of claim 15 , further including facilitating partial execution of the automation plan during deployment of the software defined data center, the partial execution to execute the automation plan for a duration of a first lifecycle phase and cease execution of the automation plan when a second lifecycle phase is reached.