You are viewing an old version of this page. View the current version.
Compare with Current
View Page History
« Previous
Version 2
Next »
- User clicks "Create Image"
- PHP frontend code inserts the new rows into the image and imagerevision tables and inserts a new request
- request state is "image"
- image.deleted = 1, this prevents the new image from being available for checkout until the image creation process is done
- reservation contains image information is for the new image, not the image used as the base image
- vcld detects the new request and begins to process it
- a new image.pm object is created
- image.pm::process() is called
- image.pm::process()
- make sure image does not already exist in the image repository
- OS::capture_prepare()
- logoff user
- remove user account
- make sure DHCP is enabled on the private NIC
- disable the pagefile
- set sshd service startup to auto
- reboot
- delete the pagefile
- configure auto admin login to login as root
- copy Sysprep, drivers, and scripts to the computer
- set sshd service startup to manual so that it doesn't immediately start up when the computer the image is loaded on boots up
- provisioner::capture_prepare()
- write the currentimage.txt file on the computer
- update nodetype.tab with the new image name
- create a .tmpl file for the new image
- run 'nodeset <node> image' to instruct xCAT to save an image the next time the computer boots
- OS::capture_start()
- run sysprep.cmd
- cleans various files from the hard drive
- copies VCLprepare.cmd script to group policy logon scripts directory
- copies VCLcleanup.cmd script to group policy logoff scripts directory
- provisioner::capture_monitor()
- continuously check the size of the new image files to make sure they're growing
- continuously check the nodeset status of the computer, imaging is done when it changes to 'boot'
- create hda.mbr, hda.sfdisk, sda.mbr, sda.sfdisk files
- image.pm::process()
- update request state to completed
- provisioner::get_image_size() is called
- database tables are updated for the newly created image
- image.lastupdate timestamp = current time
- image.deleted = 0
- image.size = result from provisioner::get_image_size()
- image.name = imagerevision.imagename, this updates the image to contain the correct revision number in the name
- imagerevision.deleted = 0, this causes the image to appear in the list available for checkout
- imagerevision.datecreated = current time
- image.pm::image_creation_successful()
- email message is sent notifying the image creator that the process has completed
- email message is sent to the system administrators
- reload request is inserted into the database - the computer is reloaded with the newly created image
- image.pm::image_creation_failed()
- email message is sent notifying the image creator that the process has been delayed
- email message is sent to the system administrators notifying them that the image creation process failed
- request state is updated to maintenance, this prevents vcld from attempting to process or delete the request until an administrator has investigated the problem
- computer state is updated to maintenance, this prevents any other processes from altering or reloading the computer