QuickBuild 5.0 introduces the Cloud Profile concept to support launching build agents on demand into cloud environment. A cloud profile defines characteristics of the build agent and knows how to launch the build agent. Build agents launched by the same cloud profile will have the same characteristics including operating system, installed software,
environments, system and user attributes etc. So if you have builds with different agent requirements, you will need to define multiple cloud profiles. After a cloud profile is defined, QuickBuild will try to launch a temporal agent to grab agent system and user attributes and store them into the profile. Internally QuickBuild treats cloud profiles as virtual agents, and in case there is no existing agents satisfying requirements of a build step, QuickBuild will match these virtual agents against the step. If a match is found, QuickBuild will launch a concrete agent using the profile to run the step. A launched build agent will be terminated automatically if it is idle for certain period of time, and the administrator can also terminate them manually if necessary.
Define cloud profile
Cloud profiles need to be defined by administrators in Grid/Cloud Profiles page like below:
After pressing the add button, QuickBuild will present the profile definition screen as below:
Then you can select desired cloud provider via Node Launcher Setting in the screen and define how to launch agent in that cloud. QuickBuild will do a test launch of the defined cloud profile to grab build agent characteristics including system and user attributes to form the virtual node. The test launch screen is as below:
The test launch should normally complete within two or three minutes. If successful, QuickBuild will present below screen to user:
Use cloud profiles
Once cloud profiles are defined and test launch passed, they will be used as virtual nodes to match node requirement of steps if no existing agents matches. You may also define grid resources to match characteristics of certain cloud profiles, so that agents referenced by these profiles can be launched on demand if the resource is exhausted. For a particular cloud profile, launched nodes will be listed in active nodes tab of the profile like below:
Nodes listed here will be terminated automatically if it is not being used by any steps for the timeout value defined by the profile, and you may also terminate them manually as demonstrated in the screenshot.
From time to time, you might see odd entries in inactive node list like below:
These entries are created by cloud profiles in order to auto-authenticate launched nodes and the unknown fields will be filled by info of launched nodes when they are active. So do not remove them in normal cases.
Diagnose cloud profile issues
- If test launch fails, you may check the server log to see detailed message about the launch error.
- If test launch does not report any error but just sit there never completes, you may follow below steps to examine the status:
- Check at cloud provider side to see if the test agent has been launched successfully.
- If test agent has been launched, login to the agent to check QuickBuild agent console log to see if there are any errors being printed. The agent console log can be found in <agent install dir>/logs directory.
- If no obvious errors found in agent console log, check Grid/Active Nodes page at QuickBuild server side to see if the launched node appears there. If yes, most probably the node is launched with an image already containing the authentication token, which is NOT suggested. The fix is simple, just unauthorize the launched node and the test launch should be successful shortly.
- If build step is in WAITING_NODE status, and relevant cloud profile does not launch node as expected, please check if virtual node represented by the profile really matches the step. To verify, you may launch a node manually at cloud provider side to see if it can be picked up by the step.
- If cloud profile takes too long to launch an agent, please check if the agent tries to update plugins when it starts up. If yes, please re-create the agent image for the profile after plugins have been updated. Note that you should first unauthorize the agent before creating the image; otherwise, test launch for your updated profile will never complete as described above.